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

Есть ли способ включить завершение кода для Perl в vim?

Удивительно, как вы хорошо разбираетесь в vim, вы можете кодировать даже быстрее, чем стандартные IDE, такие как Eclipse. Но одна вещь, которую я действительно пропускаю, - это завершение кода, особенно для длинных имен переменных и функций.

Есть ли способ включить завершение кода для Perl в vim?

4b9b3361

Ответ 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 - который связывается с еще большим количеством потоков с большим количеством настроек.