Vim文件路径搜索算法

Vim文件路径搜索算法,vim,autocomplete,filepath,Vim,Autocomplete,Filepath,TLDR。如何将vim路径/文件名搜索算法从循环自动完成更改为增量自动完成。(就像在ubuntu终端中自动完成文件路径一样) 在vim中打开一个新文件进行编辑时,例如使用:vsp或:tabe按下tab键预测目标文件路径/文件的下一部分时使用的算法有我想更改的不方便的行为 例如,我有一个包含三个文件的目录: /one.txt /onetwo.txt /onetwothree.txt 当试图从同一目录中打开的vim实例中打开onetwotree.txt时,我会键入:tabe o,然后按选项卡键,v

TLDR。如何将vim路径/文件名搜索算法从循环自动完成更改为增量自动完成。(就像在ubuntu终端中自动完成文件路径一样)

在vim中打开一个新文件进行编辑时,例如使用
:vsp
:tabe
按下
tab
键预测目标文件路径/文件的下一部分时使用的算法有我想更改的不方便的行为

例如,我有一个包含三个文件的目录:

/one.txt
/onetwo.txt
/onetwothree.txt
当试图从同一目录中打开的vim实例中打开
onetwotree.txt
时,我会键入
:tabe o
,然后按
选项卡
键,vim将自动完成文件名/路径,到
:tabe one.txt
。然后我必须再次按
tab
将自动完成更改为
:tabe onetwo.txt
,然后再次按第三次以获取
:tabe onetwoo.txt
,然后再按
enter
打开文件。(算法1)
选项卡
算法具有逐个循环遍历完整路径/文件名的行为

在ubuntu终端中,搜索行为要好得多,输入
:tabe o
选项卡
只会部分自动完成,给你
:tabe one
。然后再次键入
t
tab
将自动完成从
:tabe onet
:tabe onetwo
,然后再次按
t
tab
将自动完成从
:tabe onetwot
:tabe onetwotree.txt
。(算法2)
选项卡
算法具有部分完成路径/文件名的行为

对于第一种算法,在处理大量文件时,按
选项卡
逐个循环浏览完整路径/文件名的行为可能会带来不便。在ubuntu终端
选项卡所使用的第二种算法中,autocomplete具有部分完成路径/文件名的行为,允许用户快速准确地完成路径

我意识到在这个简单的例子中,第二个算法需要再按两次键,但在非简单的例子中,许多文件在每个选项中循环是痛苦的


如何更改文件路径搜索算法?
.vimrc
中是否有指定它的设置?

来自
:h cmdline completion

如果您喜欢tcsh的自动列表完成,可以使用以下映射: :cnoremap X(其中X是要使用的命令键,是 CTRL-L和是CTRL-D)这将找到最长的匹配,然后 列出所有匹配的文件

如果您喜欢tcsh的自动列表完成,可以使用“wildmode” 选项来模拟它。例如,这将模拟自动列表=不明确: :set wildmode=longest,此列表将查找与 首先是“wildchar”,然后列出所有与下一个匹配的文件


因此,要么在命令模式下映射
,要么将
wildmode
调整为
最长列表

,您需要启用
:帮助“wildmenu”

set wildmenu
并使用
:help'wildmode'
调整其行为:

" just an example
set wildmode=longest,list

您可能没有看到它,但我引用的vim帮助文章中已经说明了这一点。我现在提取了两个相关的解决方案。谢谢,这正是我想要的。我已将此添加到我的
.vimrc