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

StackOverflow https://stackoverflow.com/questions/54104

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Ctrl-п (Получить предыдущий матч) и Ctrl-Н (Получить следующее совпадение) — это своего рода дополнение псевдокода.Они в основном ищут файл (назад для Ctrl-п, Нападающие за Ctrl-Н) вы редактируете (и все открытые буферы, а также если вы используете TAGS что-либо в своем TAG-файле) слова, которые начинаются с того, что вы вводите, и добавляете раскрывающийся список.Он на удивление хорошо работает с именами переменных и функций, даже если это не IntelliSense.Обычно я использую Ctrl-п поскольку переменная или функция, которую я ищу, обычно находится позади кода.Кроме того, если вы оставите ту же копию Vim открытой, она будет искать файлы, которые вы ранее открывали.

Другие советы

Vim 7 поддерживает омни-дополнение.

Например, у меня есть это в моем vimrc

autocmd FileType php set omnifunc=phpcomplete#CompletePHP

а затем, когда я нажимаю Ctrl-x Ctrl-o в режиме вставки я получаю раскрывающийся список возможностей автозаполнения.

Вот омникфункция для перла.Хотя понятия не имею, насколько хорошо это работает.

Что ж, общий механизм завершения Vim на удивление хорош: достаточно просто использовать Ctrl-N в режиме вставки.Кроме того, очень удобно завершать строки с помощью C-x C-l.

Также проверьте это vim-скрипт для Perl.

Стандарт CTRL-N и CTRL-P будет работать еще лучше, если вы добавите в файл ~/.vim/ftplugin/perl.vim следующее:

установить ключевое слово+=:

Затем он автоматически заполнит имена модулей и т. д.

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

Вам следует посмотреть плагин SuperTab:http://www.vim.org/scripts/script.php?script_id=1643Он позволяет вам выполнять завершение (либо OmniCompletion, либо обычное завершение), используя Tab и Shift-Tab вместо ^N и ^P.

Ctrl+Н

Это объясняется в книге Perl Hacks, а также о том, как выполнить завершение пакета.Настоятельно рекомендуется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top