Я совершенствую свои навыки работы с vim и играю с завершением, используя команду Ctrl-n. Я программирую на Perl. Когда я нахожусь в режиме вставки и нажимаю Ctrl-n, я получаю сообщение, что это «Сканирование включенного файла» внизу терминала, и похоже, что оно сканирует файлы в каталогах дистрибутива perl. Это может занять несколько секунд, прежде чем закончится. Похоже, он делает это с пакетами, которые я включил, которые закомментированы:
#use Moose;
Поэтому я должен удалить эти строки, чтобы эта функция имела какое-либо значение. Я что-то пропустил?
Я использую плагин поддержки Perl.
autocompletion
StevieD
источник
источник
let g:ctrlp_custom_ignore = { 'dir': '^/usr/' } let g:ctrln_custom_ignore = { 'dir': '^/usr/' }
Ответы:
По умолчанию, когда вы нажимаете
C-n
илиC-p
, Vim просматривает различные источники, чтобы найти кандидатов, которые будут заполнять меню завершения.Эти источники могут быть сконфигурированы с локальной
'complete'
опцией буфера .Значением этой опции является список флагов через запятую. Каждый флаг имеет свое значение, описанное в
:h 'cpt
:По умолчанию его значение равно
.,w,b,u,t,i
:Если вы обнаружите, что сканирование включенных файлов занимает слишком много времени, вы можете попробовать убрать
i
флажок из'cpt'
опции.Если вы хотите удалить его из глобального значения, чтобы по умолчанию влиять на все буферы, вы должны написать
vimrc
:Если вы хотите сделать то же самое, но только для
perl
файлов, вы можете установить autocmd внутри вашегоvimrc
:Или, лучше, вы можете создать плагин типа файла, например
~/.vim/after/ftplugin/perl.vim
, в котором вы просто напишите:Чтобы проверить, какие текущие глобальные и локальные значения вашего
'complete'
параметра и где они были установлены в последний раз, вы можете использовать эти команды:Или короче:
Если единственным источником, который вас интересует, является текущий буфер, то вместо использования
C-n
вы можете использоватьC-x C-n
. Смотрите:h i_^x^n
для получения дополнительной информации.источник
'complete'
упоминание «включенных файлов», но не ссылается на подробности о том, что это значит. Итак, читай:he include-search
. Там вы можете видеть, что'include'
опция определяет, что это значит, и'path'
используется для поиска. Они полезны для более точной настройки, чем просто включение / выключение всей функции.