Более быстрое завершение ключевых слов для нескольких файлов в Vim?
-
19-09-2019 - |
Вопрос
В поисках своей нирваны завершения Python в vim я по-настоящему полюбил <C-x> <C-i>:«ключевые слова в текущих и включенных файлах».Почти всегда это дает мне длинное неприятное имя из другого завершенного модуля, и это здорово.
(Очевидно, что омни-дополнение лучше, когда оно работает, но слишком часто оно сообщает, что не может найти совпадений.Хорошо, Python — это не Java, я понимаю)
Единственная проблема с этим многофайловым завершением — оно очень медленное:на моем нетбуке анализ файла с разумным набором импортов может занимать до 4 или 5 секунд каждый раз, когда я нажимаю <C-x> <C-i>.Кажется, он загружает каждый импортированный файл каждый раз, когда я нажимаю <C-x> <C-i>.Есть ли способ кэшировать файлы или ускорить этот процесс?Будет ли использование завершения тегов быстрее?
Решение
Вполне возможно, что этот процесс займет некоторое время, если вы работаете над проектами с несколькими исходными файлами (vim необходимо проанализировать все включенные исходные файлы, чтобы найти больше включенных исходных файлов и построить список слов). мог используйте дополнение тегов, которое использует выходные данные ctags, чтобы сделать почти то же самое, но вам нужно будет запустить несколько тестов, чтобы определить разницу в скорости.
Я лично использую полный завершение (<C-P>
или <C-N>
в режиме вставки.) По умолчанию оно соответствует все слова в все буферы (даже буферы, которые были выгружены, т.е.файлы, которые были закрыты), но это очень быстро.Я обнаружил, что завершение тем не менее работает довольно точно, даже если вы активируете его после 2-3 символов.