Я знаю, что могу получить завершение слова через 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, чтобы сделать именно это.