Завершение Vim omni: продолжайте печатать, чтобы выбрать нужный элемент

Рассмотрим сценарий, когда я набрал:

file.f

Когда я набираю Ctrl-XCtrl-O, отображается всплывающее окно с многократным завершением, и выбирается первый элемент. Вот что я вижу:

file.fileno
       ---------
       fileno()  <-- highlighted
       flush()
       ---------

Обратите внимание, что текст, который я набрал ("file.f"), уже изменился на:

file.fileno

Я могу переместить выделение вниз в списке, чтобы «сбросить», нажать ENTER, и в итоге получится

f.flush()

Но я хотел бы продолжать вводить имя нужного метода вместо использования клавиш со стрелками. т.е. Я хотел бы ввести «file.f», «Ctrl-X Ctrl-O», «l» и получить либо

file.fileno
       ---------
       flush()
       ---------

or

file.fileno
       ---------
       fileno()
       flush()  <-- highlighted
       ---------

Это возможно? Может быть, нужно изменить какие-то настройки автодополнения или использовать другую комбинацию клавиш вместо Ctrl-XCtrl-O?


person alex2k8    schedule 25.01.2011    source источник


Ответы (1)


Добавьте: set completeopt+=longest в ваш файл .vimrc.

Это укажет omnicomplete вставлять только самый длинный общий текст из всех совпадений.

Для получения дополнительной информации запустите команду :help completeopt в vim.

person cledoux    schedule 26.01.2011
comment
Другой способ — нажать CTRL+P и ввести еще текст. - person alex2k8; 26.01.2011