Как сделать так, чтобы Vim выполнял обычное (похожее на Bash) дополнение для имен файлов?

Когда я открываю новый файл в Vim и использую завершение табуляции, он завершает полное имя файла вместо частичного сопоставления, как это делает Bash. Есть ли возможность сделать так, чтобы эта вкладка с именем файла работала как Bash?

Ответ 1

Я лично пользуюсь

set wildmode=longest,list,full
set wildmenu

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

Bash-like будет просто

set wildmode=longest,list 

но в полной мере очень удобно.

Ответ 2

Ближайшее поведение до завершения Bash должно быть

set wildmode=longest:full,full

С помощью нескольких символов, набранных один раз, нажатие одной вкладки даст все совпадения в wildmenu. Это отличается от ответа Майкл, который открывает окно, подобное quickfix, под командной строкой.

Затем вы можете продолжать печатать остальные символы или снова нажать вкладку, чтобы автоматически завершить с первым совпадением и обвести вокруг него.

Ответ 3

Если вы не хотите устанавливать подстановочное меню, вы всегда можете нажать Ctrl + L, когда хотите открыть файл. Ctrl + L завершит имя файла, как завершение Bash.

Ответ 4

Помимо предложенного wildmode/wildmenu, Vim также предлагает возможность показать все возможные дополнения, используя Ctrl + D. Это может быть полезно для некоторых пользователей, которые сталкиваются с этим вопросом при поиске различных вариантов автозаполнения в Vim, как я.

Ответ 5

Я предполагаю, что вы используете автозаполнение в Vim через Ctrl + N для поиска в текущем буфере. Когда вы используете эту команду, вы получаете список решений; просто повторите команду, чтобы перейти к следующему пункту в списке. То же самое верно для всех команд автозаполнения. Пока они заполняют все слово, вы можете продолжать перемещаться по списку, пока не дойдете до того, который хотите использовать.

Это может быть более полезная команда: Ctrl + P. Единственное отличие состоит в том, что Ctrl + P выполняет поиск в буфере в обратном направлении, а Ctrl + N выполняет поиск в прямом направлении... Реально, они оба предоставят список с одинаковыми элементами, и они могут просто появиться в другой порядок.

Ответ 6

Попробуйте использовать :set wildmenu. Кроме того, я не уверен, что именно вы пытаетесь.

Ах да, и, возможно, попробуйте эту ссылку: ссылка