2013-06-11 3 views
1

Я использую AutoComplPop с omnifunc.Как переделать автозаполнение в vim?

Вместо Enter автоматического завершения выбора в автозаполнения всплывающего окна, я хотел бы использовать Ctrl +Введите (или какой-либо другой комбинации) и имеют Enter ведут себя как обычно.

Эта последняя точка важна: если я хочу вставить возврат каретки, а всплывающее окно автозаполнения имеет что-то выделенное, мне нужно будет дважды нажать клавишу ввода.

So: Как я могу переназначить ключ автозаполнения?

ответ

1

Я не думаю, что плагин AutoComplPop ничего не делает для Введите ключ; скорее, это поведение по умолчанию, когда всплывающее окно завершения видимо. См :h popupmenu-keys:

The behavior of the <Enter> key depends on the state you are in: 
    first state:  Use the text as it is and insert a line break. 
    second state:  Insert the currently selected match. 
    third state:  Use the text as it is and insert a line break. 

Это просто, что AutoComplPop по умолчанию выбирает первый матч (который встроенный в доработках не делает).

Чтобы ответить на ваш вопрос (хотя я не в полной мере получить то, что поведение, которое вы хотите):

Там нет специального режима для всплывающего меню, вы должны использовать :help map-expr и проверьте всплывающее меню с pumvisible(). Например, чтобы сделать <Enter> завершения прерывания и вставить разрыв строки:

:inoremap <expr> <CR> pumvisible() ? '<C-e><CR>' : '<CR>' 
+0

Этот вид работ, но она не совместима с некоторыми другими плагинами (например, отвесно, который я использую религиозно). Тем не менее, я думаю, что это, скорее всего, лучший ответ. Не знаю, почему это было приостановлено. После того, как вы решили исправить проблему (с конфликтами), я просто перешел на YouCompleteMe. –

Смежные вопросы