Есть ли способ включить завершение кода для Perl в vim?
Удивительно, как вы хорошо разбираетесь в vim, вы можете кодировать даже быстрее, чем стандартные IDE, такие как Eclipse. Но одна вещь, которую я действительно пропускаю, - это завершение кода, особенно для длинных имен переменных и функций.
Есть ли способ включить завершение кода для Perl в vim?
Ответы
Ответ 1
Ctrl - P (Получить предыдущее совпадение) и Ctrl - N (Get Next Match) являются своего рода завершением псевдокода. Они в основном ищут файл (Backwards для Ctrl - P, Forwards for Ctrl - N), который вы редактируете (и любые открытые буферы, и если вы используете TAGS что-либо в своем файле TAG) для слов, которые начните с того, что вы печатаете, и добавьте раскрывающийся список. Он работает на удивление хорошо для переменных и имен функций, даже если это не intellisense. Обычно я использую Ctrl - P, поскольку переменная или функция, которую я ищу, обычно находится в коде. Также, если вы сохраните ту же копию Vim open, она будет искать файлы, которые вы открыли ранее.
Ответ 2
Vim 7 поддерживает всплывающее завершение.
Например, у меня это в моем vimrc
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
а затем, когда я нажимаю Ctrl-x Ctrl-o в режиме Вставки, я получаю раскрывающийся список возможностей автозаполнения.
Здесь omnicfunc для perl. Не знаю, как хорошо это работает.
Ответ 3
Ну, общий механизм завершения Vim на удивление хорош, просто используя Ctrl-N в режиме вставки. Кроме того, завершение линии очень удобно, используя C-x C-l.
Также проверьте vim script для perl.
Ответ 4
Стандартные CTRL-N
и CTRL-P
работают еще лучше, если вы добавите следующее в свой файл ~/.vim/ftplugin/perl.vim:
set iskeyword + =:
Затем он будет автоматически заполнять имена модулей и т.д.
Ответ 5
Ctrl + N
Это объясняется в книге Perl Hacks, а также о том, как выполнить завершение пакета. Очень рекомендуется.
Ответ 6
Вы должны посмотреть на плагин SuperTab:
http://www.vim.org/scripts/script.php?script_id=1643
Это позволит вам выполнить завершение (либо OmniCompletion, либо обычное завершение), используя вкладку и shift-tab вместо ^ N и ^ P.
Ответ 7
Клип .vimrc в одном из других ответов немного ошибочен. Чтобы повернуть ключ вкладок в ключ автозаполнения, используйте этот код:
inoremap <tab> <c-r>=InsertTabWrapper()<cr>
function! InsertTabWrapper()
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\<tab>"
else
return "\<c-p>"
endif
endfunction
Вы можете найти это и множество других трюков vim в этом потоке на Perlmonks - который связывается с еще большим количеством потоков с большим количеством настроек.
Ответ 8
https://github.com/c9s/perlomni.vim