Автозаполнение Vim мучительно медленное
В большинстве случаев функция автозаполнения в Vim отлично работает для меня, но иногда кажется, что она сканирует файлы, на которые ссылается текущий файл, а затем становится мучительно медленным, иногда занимает несколько секунд, чтобы вернуть фокус мне. /p >
Иногда Vim говорит мне просто, что это "Сканирование" в другое время, это говорит "Сканирование тегов"
Я только это случаюсь в файлах Ruby, и это происходит, главным образом, когда в файле содержится требование.
Я предполагаю, что это какая-то функция, которая проверяет связанные файлы для параметров автозаполнения, но мне это действительно не нужно, и я бы предпочел бы более быстрый автозаполнение.
Ответы
Ответ 1
Как я уже упоминал в комментарии, у меня была та же проблема. Вот что я нашел;
Есть параметр, указывающий VIM, где искать завершения, называется complete
.
:set complete
complete=.,w,b,u,t,i
это значение по умолчанию. Моя проблема (на самом деле..) "i", которая сканирует все включенные файлы. Вот две проблемы: первая, найти все эти файлы может занять некоторое время, особенно если у вас, как и я, есть
:set path=**
Вторая проблема, после ее обнаружения, должна быть прочитана, и если вы используете сетевую файловую систему (я нахожусь на чемодане), то поиск и чтение всех этих файлов может привести к провалу кеша, что делает его болезненно медленным.
Я удалил я на данный момент, поскольку у меня есть файл-теги и чаще всего у меня также есть соответствующие файлы в моих буферах (загруженные или выгруженные), которые будут найдены в результате "b", и 'u'.
Использование
set complete-=i
чтобы удалить я из списка, обратите внимание, что это локально для буфера.
Ответ 2
У вас была очень похожая проблема с момента обновления до Vim 7.3 (из 7.2): я использовал (отличный) плагин ACP и в более длинном источнике файлы (C файлы, 1700 LOC), всплывающее окно занимало возрасты, чтобы перескакивать с предложениями, когда я редактировал в нижней части файла.
Используя PerformanceValidator (из Softwareverify), Я узнал, что некоторые методы сбрасывания вызывались снова и снова и приводили к очень высокой загрузке процессора и медленному завершению.
Моим обходным решением было установить foldmethod
(fdm
) на manual
. И это решило это...
Ответ 3
У вас есть файл тегов для проекта, над которым вы работаете? Если не попытаться создать один с exuberant-ctags, и Vim должен поднять его с помощью taglist pluglin.