Автодополнение в Vim-это мучительно медленно


большую часть времени функция автозаполнения в Vim работает хорошо для меня, но иногда кажется, что это сканирование файлов, на которые ссылается текущий файл, а затем он становится болезненно медленным, иногда требуется несколько секунд, чтобы освободить фокус обратно ко мне.

иногда Vim говорит мне просто, что это" сканирование "в других случаях, он говорит"сканирование тегов"

У меня это происходит только в файлах Ruby, и это происходит в основном, когда есть требование файл.

Я предполагаю, что это какая-то функция, которая проверяет связанные файлы для параметров автозаполнения, но мне это действительно не нужно, и я предпочел бы более быстрое автозаполнение.

3 56

3 ответа:

как я уже упоминал в комментарии, у меня была та же проблема. Вот что я нашел;

есть настройка, сообщающая VIM, где искать завершения, называется complete.

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

это значение по умолчанию. Моя проблема (была на самом деле..) 'i', который сканирует все включенные файлы. Вот две проблемы, первая,найти все эти файлы могут занять довольно много времени, особенно если вы, как и я, есть

:set path=**

вторая проблема, как только нашли, они нужно читать, и если вы используете сетевую файловую систему (я на clearcase), как поиск, так и чтение всех этих файлов могут вызвать промахи кэша, что делает его болезненно медленным.

Я удалил i на данный момент, так как у меня есть файл тегов, и чаще всего у меня также есть соответствующие файлы в моих буферах (загруженные или выгруженные), которые будут искать в результате " b " и "u".

использовать

set complete-=i

чтобы удалить i из списка, обратите внимание, что это локально буфер.

была очень похожая проблема с момента обновления до Vim 7.3 (от 7.2): я использовал (отлично) ACP плагин и в более длинных исходных файлах (C-files, 1700 LOC) всплывающее окно заняло много времени, чтобы перейти через предложения, когда я редактировал в нижней части файла.

С помощью PerformanceValidator (от Softwareverify), я узнал, что некоторые методы fold вызывались снова и снова и приводят к очень высокой загрузке процессора и медленному завершение.

мой обходной путь состоял в том, чтобы установить foldmethod (fdm) в manual. И это все решило...

есть ли у вас файл тегов для проекта, над которым вы работаете? Если вы не попытаетесь создать его с помощью exuberant-ctags, а Vim должен забрать его с помощью плагина taglist.