Завершение Word / Кода в VIM
-
20-08-2019 - |
Вопрос
Я знаю, что могу добиться завершения word через CTRL+N
& CTRL+P
и завершение кода через omnifunc с CTRL+X
CTRL+O
.Я дополнительно попробовал Супертаблица (очень приятно), потому что я привык к завершению табуляции.Все это сработало как надо.Я хотел бы видеть возможные совпадения во время набора текста, поэтому я также попытался автозаполнение.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>
- ничего не следует делать, потому что "мы" не знаем, является ли 't' (teter) или буква "s" (tesт, теstor) должен следовать.
tes<TAB>
- следует расширить до
test
(потому что это работает для обоих - test и testor - и teter больше не является возможным совпадением).
- следует расширить до
test<TAB>
- следует расширить до
testor
(единственное возможное совпадение).
- следует расширить до
Что ж, всплывающее окно с предложениями - это просто бонус, но я действительно хотел бы увидеть TAB
поведение.Надеюсь, я здесь не вдаюсь в эзотерику, и вы можете помочь мне с некоторыми скриптовыми хитростями или плагинами, чтобы приручить VIM для выполнения именно этого.
Решение
:set completeopt=longest,menu,preview
может быть?
(Я не уверен, соответствует ли ваше заявление
"когда я нажимаю TAB, это ничего не должно делать, потому что нет больше точек соприкосновения, чем te".
противоречит вашему последующему заявлению
"к тестору после 2-й таблетки".
Мне кажется, что на данный момент нет более общей точки соприкосновения, чем "тест"...Если только вы не имеете в виду, что первая вкладка переходит к самой длинной точке соприкосновения, а затем последующие вкладки циклически перебирают другие совпадения, и в этом случае вам нужно то, что у меня есть выше ...)