【问题标题】:How can I make shell autocomplete the beginning of a filepath?如何使 shell 自动完成文件路径的开头?
【发布时间】:2015-04-03 02:23:43
【问题描述】:

我有一个具有深度嵌套文件夹结构的项目。大多数时候我知道我要使用的文件的名称,但是当我想编辑它时,文件夹路径太长/太复杂而无法键入,例如:

vim folder/is/deep/down/there/myfile.js

如果文件名是唯一的,有没有办法让 shell 为我自动填充路径,例如:

vim *myfile.js

按 TAB -->

vim folder/is/deep/down/there/myfile.js

我主要使用 bash,但如果它可以解决问题,我可以使用 zsh。

【问题讨论】:

  • 这个问题可能更适合Super User 然后在这里。
  • 我为每个项目创建变量,即.js1=folder/is/deep/down/there。那么vim $js1/myfile.js 处理起来也不错。我看到人们花了几个月的时间跳过篮球来让自动完成功能超越它的设计目标。只是MHO。祝你好运。
  • 感谢@shellter,如果您只有几条路径,这看起来是一个不错的解决方案。但是对于我的项目,我想要使用数十个深度嵌套的文件夹。所以给每个人起名字并记住它们并不是一件很可行的事情。

标签: bash shell vim autocomplete zsh


【解决方案1】:

我想这就是你要找的,vim 将打开目录中 myfile.js 的所有实例。 Fish shell 将允许我在不同的匹配文件中进行选项卡,但我不确定它是否适用于 bash。

vim **/myfile.js

【讨论】:

  • 这也完全适用于 zsh,默认情况下,不需要特殊选项。您可以像这样执行或按 Tab,这将使用相应文件的列表更新模式。
【解决方案2】:

在 bash 脚本中使用 locate 实用程序可能是个好主意。 调用您的 bash 脚本将文件名作为参数传递将是一个明智之举,然后使用之前命名的实用程序来查找它。 完成后,您可以简单地查找是否有 1 个或多个匹配项,如果只有一个匹配项,您可以使用 vim [match]。 显然,该脚本可以像 ./openinvim.sh myfile.js

这样调用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2011-10-03
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多