Завершение Word / кода в VIM - PullRequest
9 голосов
/ 28 июня 2009

Я знаю, что могу получить завершение слова через CTRL+N & CTRL+P и завершение кода через omnifunc с помощью CTRL+X CTRL+O. Я дополнительно попробовал Supertab (очень приятно), потому что я привык к TAB-завершению. Это все работало хорошо. Я хотел бы видеть возможные совпадения во время набора текста, поэтому я также попытался autocomplpop.vim , ведьма так и делает.

То, что я хотел бы выполнить, было бы сочетанием обоих вместе с небольшим поворотом: я хотел бы видеть предложения всплывающими по мере ввода текста (как с autocompop), но когда я использую TAB слово должно быть расширено только до наибольшего общего совпадения :

foo bar testor booze test baz teter
te<TAB>

После того, как я наберу te во 2-й строке, всплывающее окно должно предложить test, teter и testor.

Когда я нажимаю TAB, он ничего не должен делать, потому что нет более единой точки соприкосновения, чем te. После того, как я набрал дополнительный s и нажал TAB, он должен расшириться tes до test (потому что это наименьшее общее заземление) и до testor после 2-го TAB.

Редактировать : Я пытаюсь быть более ясным ...

  • te<TAB>
    • ничего не должен делать, потому что «мы» не знают, есть ли «т» (т. Е. 1048 * т эр) или «с» (т. Е. 1050 * с т, т. Е. 1052 *) s tor) должно следовать.
  • tes<TAB>
    • должно расшириться до test (потому что это работает как для test, так и для testor, и teter больше не является возможным совпадением).
  • test<TAB>
    • должно расшириться до testor (только возможное совпадение).

Ну, всплывающие подсказки - это просто бонус, но мне бы очень хотелось увидеть поведение TAB. Надеюсь, что я здесь не разбираюсь в эзотерике, и вы можете помочь мне с некоторыми трюками со скриптами или плагинами, чтобы приручить VIM, чтобы сделать именно это.

1 Ответ

6 голосов
/ 28 июня 2009
:set completeopt=longest,menu,preview

может быть?

(Я не уверен, если ваше заявление

"когда я нажимаю TAB, это ничего не должно делать, потому что нет более общей точки соприкосновения, чем te"

конфликтует с вашим последующим утверждением

"к тестору после 2-го TAB."

Мне кажется, что в этот момент нет более общей точки соприкосновения, чем «проверка» ... Если только вы не имеете в виду, что первая вкладка переходит к самой длинной общей позиции, а затем последующие вкладки циклически переходят между другими совпадениями, и в этом случае ты после того что у меня выше ...)

...