Более быстрое завершение многофайлового ключевого слова в Vim? - PullRequest
6 голосов
/ 01 октября 2009

В поисках нирваны завершения моего python в vim я очень полюбил : «ключевые слова в текущих и включенных файлах». Это почти всегда приводит меня к длинному неприятному имени из другого модуля, что замечательно.

(Omni-завершение, очевидно, лучше, когда оно работает, но слишком часто оно сообщает, что не может найти совпадений. Хорошо, Python не Java, я понял)

Единственная проблема, связанная с этим многофайловым завершением, заключается в том, что он очень медленный: на моем нетбуке файл с разумным набором импорта может занимать до 4 или 5 секунд для анализа при каждом нажатии . Кажется, что каждый импортированный файл загружается каждый раз, когда я нажимаю . Есть ли способ кешировать файлы или ускорить этот процесс? Будет ли использование тега завершения быстрее?

1 Ответ

6 голосов
/ 01 октября 2009

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

Я лично использую complete завершение (<C-P> или <C-N> в режиме вставки.) По умолчанию оно соответствует всем словам в всех буферах ( даже буферы, которые были выгружены, то есть файлы, которые были закрыты), но это действительно быстро. Я обнаружил, что завершение работает довольно точно, даже если вы активируете его после 2-3 символов.

...