views:

536

answers:

2

Most of the time the autocomplete feature in VIM works nicely for me, but sometimes it seems to be scanning files which the current file references, and then it becomes painfully slow, sometimes taking several seconds to release focus back to me.

Sometimes VIM tells me simply that it is "Scanning" other times, it's saying "Scanning tags"

I've only this happen in Ruby files, and it happens mostly when there is a require in the file.

My guess would be that this is some kind of feature which checks related files for autocomplete options, but I don't really need that, and would prefer quicker autocomplete.

+1  A: 

Do you have a tags file for the project you're working on? If not try generate one with exuberant-ctags and Vim should pick it up with the taglist pluglin.

Farrel
ctags -R in your project root; is the command if you are on linux
gustavgans
+3  A: 

As I mentioned in a comment I had the same problem. Here's what I found;

There's a setting telling VIM where to look for completions, called complete.

:set complete
complete=.,w,b,u,t,i

this is the default value. My problem is (was actually..) the 'i', which scans all included files. Here are two problems, first one, finding all those files might take quite a while, especially if you, like me, have

:set path=**

Second problem, once found, they need to be read, and if you're using a networked file system (I'm on clearcase) both finding and reading all those files might trigger cache misses, making it painfully slow.

I've removed the i for now, as I have a tags-file and more often than not, I also have the relevant files in my buffers (loaded or unloaded) which will be searched as a result of 'b' and 'u'.

Use

set complete-=i

to remove the i from the list, note that this is local to the buffer.

HTH.

roe