【问题标题】:vim path completion in command mode命令模式下的 vim 路径补全
【发布时间】:2018-10-14 11:45:21
【问题描述】:

在 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>
  • 不,我只想按层次结构探索目录。

标签: vim autocomplete


【解决方案1】:

命令行补全允许您使用通配符。

基本的* 表示“任何字符”:

: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

顺便说一下,它是“命令行模式”。 “命令模式”只是“普通模式”的别称。

【讨论】:

    【解决方案2】:

    此答案基于您希望选择正确文件进行编辑的路径的假设。

    我建议在正确设置路径后使用:find。这将节省更多的打字时间。

    您可以从设置:set path+=**开始(这也将搜索子目录)。现在你可以简单地做

    :find d.cpp
    

    vim 会为你做剩下的事情。它将找出d.cpp 的路径并打开它。 它的好处是它允许使用通配符,例如:find d.*:find *.cpp

    如果您不想使用find 并继续使用edit,那么:set wildmenu 可能会有用。这将显示您可以使用 tab

    迭代的所有可用选项

    【讨论】:

    • 当我不记得目标文件时,我只想探索。例如 .
    • 设置 wildmenu 会有所帮助
    • 感谢 dlmeetei。我终于找到了我想要的。
    猜你喜欢
    • 2013-03-05
    • 2011-04-02
    • 2011-01-23
    • 1970-01-01
    • 2012-04-30
    • 2017-02-15
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    相关资源
    最近更新 更多