Сделайте завершение Vim более похожим на Visual Studio.

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

  •  21-08-2019
  •  | 
  •  

Вопрос

Я хочу ВимМеню завершения будет больше похоже на меню завершения в Visual Studio.Я хочу иметь возможность написать начало переменной (или что-то, что доступно для завершения), нажать клавиши омни-завершения и получить меню завершения.Теперь я хочу, чтобы меню завершения выделяло лучшее совпадение, но не добавляло его в буфер.Теперь я хочу иметь возможность либо нажать ENTER, чтобы ввести выбранный элемент, либо ввести больше букв, чтобы еще больше отфильтровать меню завершения (возможно, выделив новый элемент в меню завершения), а затем нажать Enter, чтобы вставить.

Вики-страница/советы по адресу http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE должен это сделать, но я не могу заставить его работать.Кто-нибудь еще пробовал код из этого совета и заставил его работать так, как я описываю?

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

Решение

Указанная вики-страница содержала неработающие сопоставления.Пользователь (Spiiph) изменил код Vim на что-то, что ему казалось лучше, но было неправильным.Я отменил внесенные им изменения, и теперь inoremap утверждения должны работать.

Чтобы избежать путаницы, это ИМХО правильные команды:

inoremap <expr> <c-n> pumvisible() ? "\<lt>c-n>" : "\<lt>c-n>\<lt>c-r>=pumvisible() ? \"\\<lt>down>\" : \"\"\<lt>cr>"
inoremap <expr> <m-;> pumvisible() ? "\<lt>c-n>" : "\<lt>c-x>\<lt>c-o>\<lt>c-n>\<lt>c-p>\<lt>c-r>=pumvisible() ? \"\\<lt>down>\" : \"\"\<lt>cr>"

ПС:Когда дело дошло до использования функции завершения Vim, я обнаружил Скрипт СуперТабочень удобно.Возможно, этот сценарий также будет интересен вам в этом контексте...

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

Я использую supertab, который мне очень нравится, и, похоже, он отлично работает:

imap <expr> <Tab> pumvisible() ? "<Tab>" : "<Tab><Down>"

Для справки:Я использую Debian sid, и это работает как для vim 7.2.245, так и для моей исправленной версии 7.2.259.

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