Когда я открываю новый файл в Vim и использую завершение табуляции, он завершает полное имя файла вместо частичного сопоставления, как это делает Bash. Есть ли возможность сделать так, чтобы завершение этой вкладки с именем файла работало как Bash?
Когда я открываю новый файл в Vim и использую завершение табуляции, он завершает полное имя файла вместо частичного сопоставления, как это делает Bash. Есть ли возможность сделать так, чтобы завершение этой вкладки с именем файла работало как Bash?
Ответы:
Я лично пользуюсь
set wildmode=longest,list,full
set wildmenu
Когда вы нажимаете первую вкладку, она завершится как можно дольше. Второе нажатие на вкладку предоставит список. Третья и последующие вкладки будут переключаться между вариантами завершения, так что вы можете завершить файл без дополнительных ключей.
Bash-like будет просто
set wildmode=longest,list
но полный это очень удобно.
set wildmode=longest,5full,list
. С большим количеством результатов бесполезно, но очень удобно с немногими. Это будет прекрасно с чем-то вроде «показывать полное, только если завершение помещается на одной строке экрана»
Самое близкое поведение к завершению Баша должно быть
set wildmode=longest:full,full
Если набрать несколько символов, нажатие клавиши табуляции даст все совпадения, доступные в wildmenu
. Это отличается от ответа Майкла, который открывает окно, похожее на быстрое исправление, под командной строкой.
Затем вы можете продолжать печатать остальные символы или снова нажимать клавишу Tab, чтобы автоматически завершить первое совпадение и обвести его.
Если вы не хотите устанавливать подстановочное меню, вы всегда можете нажать Ctrl+, Lкогда хотите открыть файл. Ctrl+ Lзавершит имя файла, как завершение Bash.
<Tab>
завершает текущую строку настолько, насколько это возможно (как CTRL-L
в Vim), и <Tab><Tab>
показывает список возможных совпадений (как CTRL-D
в Vim).
Я предполагаю, что вы используете автозаполнение в Vim через Ctrl+ Nдля поиска в текущем буфере. Когда вы используете эту команду, вы получаете список решений; просто повторите команду, чтобы перейти к следующему пункту в списке. То же самое верно для всех команд автозаполнения. Пока они заполняют все слово, вы можете продолжать перемещаться по списку, пока не дойдете до того, который хотите использовать.
Это может быть более полезной командой: Ctrl+ P. Единственное отличие состоит в том, что Ctrl+ Pвыполняет поиск в буфере назад, а Ctrl+ Nищет вперед ... Реально, они оба предоставят список с одинаковыми элементами, и они могут просто появиться в другом порядке.