Более быстрый способ перехода к определенной опции автозаполнения - PullRequest
3 голосов
/ 01 октября 2011

Скажите где-нибудь в моем буфере Vim, что у меня есть следующее:

function foo() {
    return 'funday, funky, funnel cake';
}

Теперь я хочу создать новую функцию под этим ..

Я начинаю печатать fun и нажимаю Tab , чтобы вызвать мое меню автозаполнения.В этом меню я получаю (в этом гипотетическом порядке):

funday
funnel
function
funky

Обычно я бы Ctrl + n дважды выделил function, что неничего страшного ... но что если у меня 20 результатов и я хочу получить 10-й результат очень быстро .

Есть ли какой-нибудь известный способ (или плагин) для быстрого переходак определенным значениям в меню автозаполнения Vim?


Обновление: Используя хак, я нашел способ перейти к параметрам автозаполнения X:

" j/k for up and down in autocomplete menu
inoremap <expr> j ((pumvisible())?("\<C-n>"):("j"))
inoremap <expr> k ((pumvisible())?("\<C-p>"):("k"))

" Hack to jump down x positions
inoremap <expr> 2 ((pumvisible())?("\<C-n><C-n>"):("2"))
inoremap <expr> 3 ((pumvisible())?("\<C-n><C-n><C-n>"):("3"))
inoremap <expr> 4 ((pumvisible())?("\<C-n><C-n><C-n><C-n>"):("4"))

Тем не менее, мой Vimscript является грубым.У кого-нибудь есть лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 01 июня 2013

Что касается быстрого перехода к определенному автозаполнению, у меня есть следующий рабочий процесс.

В моем .vimrc:

set completeopt=longest,menuone

Опция longest предотвращает появление первого совпаденияавтоматически выбран.Это означает, что Vim будет ждать, пока вы закончите вводить оставшуюся часть слова, и всплывающее окно завершения будет автоматически сужаться при вводе большего количества символов слова.

В вашем примере вы наберете fun, нажмите Tab , чтобы вызвать меню автозаполнения.На этом этапе вы все равно увидите:

funday
funnel
function
funky

... но теперь первый выбор (funday) больше не будет выбираться автоматически.Затем вы можете набрать «c», что сузит список до:

function

Это самый быстрый способ, который я знаю, используя чистый Vim, так или иначе.Я склонен любить чистые решения Vim, сам.:)

РЕДАКТИРОВАТЬ: Понял, что я забыл включить "menuone" в конце строки в моем файле .vimrc.Это заставляет Vim показывать меню автозаполнения, даже если было только одно совпадение.Вам понадобится либо «menuone», либо «menu» в строке set completeopt, чтобы увидеть всплывающее окно с дополнениями.

1 голос
/ 23 октября 2011

может быть, вы заинтересованы в neocomplcache плагин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...