Bash-подобный частичный табуляция для имен файлов в Vim

16

В Bash, когда есть несколько файлов с одинаковым префиксом, и я набираю часть префикса и нажимаю Tab, он завершает общий префикс и позволяет мне продолжать печатать, чтобы различать возможные результаты.

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

У меня часто бывает много файлов с длинным общим префиксом, и нужный мне файл не входит в число первых (например, каталог файлов проекта, содержащий, среди прочего, различные make-файлы с именем Makefile.{whatever}).

Могу ли я сделать Vim более похожим на Bash, чтобы сохранить множество нажатий клавиш?

Бонус, если это применимо и к другим дополнениям (например, значения перечисления, которые имеют одинаковый префикс)

Джон ОМ.
источник

Ответы:

16

Вы можете использовать wildmodeопцию, чтобы контролировать это.

Если вы используете :set wildmode=list:longest, вы получаете поведение, подобное bash.

Я лично предпочитаю использовать :set wildmode=list:longest,full; в этом списке будут отображаться варианты завершения, но при втором Tab нажатии вы можете переключаться между записями (и Shift+Tabциклически переключаться в обратном направлении).

Это относится ко всем дополнениям, выполненным Vim.

Видеть: :help 'wildmode'

Мартин Турной
источник
3
Не вставить режим завершения! Вам нужно completeoptдля этого.
Богатый
Благодарность! wildmode и completeopt - именно то, что я искал!
Джон ОМ.