Завершение Vim omni: продолжайте печатать, чтобы выбрать нужный элемент - PullRequest
10 голосов
/ 26 января 2011

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

file.f

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

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

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

file.fileno

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

f.flush()

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

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

или

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

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

1 Ответ

14 голосов
/ 26 января 2011

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

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

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

...