Как сделать так, чтобы Vim выполнял обычное (похожее на Bash) дополнение для имен файлов? - PullRequest
271 голосов
/ 09 февраля 2009

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

Ответы [ 6 ]

391 голосов
/ 09 февраля 2009

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

set wildmode=longest,list,full
set wildmenu

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

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

set wildmode=longest,list 

но полный очень удобно.

21 голосов
/ 04 ноября 2012

Самое близкое поведение к завершению Баша должно быть

set wildmode=longest:full,full

При вводе нескольких символов нажатие клавиши табуляции даст все совпадения, доступные в wildmenu. Это отличается от ответа Майкла , который открывает окно, похожее на быстрое исправление, под командной строкой.

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

6 голосов
/ 01 сентября 2016

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

6 голосов
/ 09 февраля 2009

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

4 голосов
/ 09 февраля 2009

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

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

0 голосов
/ 09 февраля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...