Как сделать так, чтобы vim делал нормальное (как bash) дополнение для имен файлов?
Когда я открываю новый файл в vim и использую завершение табуляции, он завершает полное имя файла вместо частичного совпадения, как это делает bash. Есть ли возможность сделать так, чтобы завершение этой вкладки с именем файла работало больше как bash?
7 ответов
Я лично пользуюсь
set wildmode=longest,list,full
set wildmenu
Когда вы набираете первое нажатие на вкладку, оно завершится настолько, насколько это возможно, второе нажатие на вкладку предоставит список, третья и последующие вкладки будут переключаться между вариантами завершения, поэтому вы можете завершить файл без дополнительных клавиш.
bash вроде бы просто
set wildmode=longest,list
но полный очень удобно
Самое близкое поведение к завершению Баша должно быть
set wildmode=longest:full,full
Если набрать несколько символов, нажатие клавиши табуляции даст все совпадения, доступные в wildmenu
, Это отличается от ответа Майкла, который открывает окно, похожее на быстрое исправление, под командной строкой.
Затем вы можете продолжать печатать остальные символы или снова нажимать клавишу Tab, чтобы автоматически завершить первое совпадение и обвести его.
Помимо предложенного wildmode/wildmenu, vim также предлагает возможность показать все возможные дополнения с помощью Ctrl+d. Это может быть полезно для некоторых пользователей, которые сталкиваются с этим вопросом при поиске различных вариантов автозаполнения в vim, как я.
Если вы не хотите устанавливать подстановочное меню, вы всегда можете нажать Ctrl+L, когда хотите открыть файл. Ctrl+L завершит имя файла как bash завершение.
Я предполагаю, что вы используете автозаполнение в vim через Ctrl+n для поиска в текущем буфере. Когда вы используете эту команду, вы получаете список решений, просто повторите команду, чтобы перейти к следующему пункту в списке. То же самое верно для всех команд автозаполнения. Пока они заполняют все слово, вы можете продолжать перемещаться по списку, пока не дойдете до того, который хотите использовать.
Надеюсь, это полезно.
Редактировать 1: Это может быть более полезная команда: Ctrl+p. Единственное отличие состоит в том, что Ctrl+p выполняет поиск в буфере в обратном направлении, а Ctrl+n выполняет поиск в прямом направлении... Реально, они оба предоставят список с одинаковыми элементами, они могут просто появляться в другом порядке.
set wildmode=longest:full
дает вам завершение, подобное Bash:
- предложения в одной строке
- Вкладка, заполняющая только то, что точно
- Вправо / Ctrl-n | Влево / Ctrl-p для выбора предложений.
Из справки:
If you prefer the <Left> and <Right> keys to move the cursor instead
of selecting a different match, use this:
:cnoremap <Left> <Space><BS><Left>
:cnoremap <Right> <Space><BS><Right>
Попробуйте использовать: установить wildmenu. Кроме того, я не уверен, что именно вы пытаетесь. Разработайте немного больше, пожалуйста. О да, и, возможно, попробуйте эту ссылку: ссылка