命令模式下的vim路径自动补全

4
在vim中,如果您按下:e<tab><tab>,vim将完成一些路径。然而,我想打开a/b/c/d.cpp,我敲:e<tab><tab>,并找到了AA
我想找到AA的子目录。或者,我按下/键。
例如::e AA//BB//CC//DD.cpp 还有其他更好的方法吗?总之,我想知道在命令:e中寻找子目录的完整路径。

你的意思是类似于 :e **/DD.cpp<tab> 这样的吗? - Lieven Keersmaekers
不,我只想按目录层次结构浏览。 - geeeek
2个回答

4
命令行自动补全允许您使用通配符。 基本的*表示“任何字符”:
:e *<Tab>          " similar to plain <Tab>
:e foo*<Tab>       " completes only files starting with 'foo'

更高级的**表示“任何子目录”:
:e **/<Tab>        " completes every file under every subdirectory
                   " of the current working directory
:e **/*foo<Tab>    " completes every file ending with 'foo' under every subdirectory
                   " of the current working directory

请查看:help file-searching以获取更多信息。

顺便提一下,它应该是“命令行模式”,而“命令模式”只是“正常模式”的另一个名称。


1
这个答案基于你想要选出正确文件进行编辑的假设。
我建议在正确设置路径后使用:find。这将节省大量打字时间。
你可以通过设置:set path+=**(这将搜索子目录)开始。现在你只需要简单地执行以下命令:
:find d.cpp

vim会为您完成剩下的工作。它将找到d.cpp的路径并打开它。 很好的一点是它允许使用通配符,例如:find d.*:find *.cpp

如果您不想使用find并继续使用edit,可能有用的是:set wildmenu。这将显示所有可用选项,您可以使用tab进行迭代。


1
当我不记得目标文件时,我只想探索一下。例如<tab><tab><tab><CR><tab><CR><tab><CR>。 - geeeek
设置 wildmenu 将有所帮助。 - dlmeetei
1
感谢dlmeetei,我终于找到了我想要的。 <DOWN> - geeeek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接