Подтвердить что ты не робот

Автозаполнение Vim мучительно медленное

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

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

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

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

4b9b3361

Ответ 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.