gpt4 book ai didi

bash - 带有文件路径补全的自定义 Bash 自动补全

转载 作者:行者123 更新时间:2023-11-29 09:50:49 25 4
gpt4 key购买 nike

我正在为我维护的项目开发 bash 自动完成功能。你可以find the script here .在一些比我更了解完成 API 的贡献者的帮助下,我靠自己的一些技巧拼凑了这个。

我们现有的一切都很好用——只有一个异常(exception)。我们可以像这样管理完成

//type
pestle.phar som[TAB]

//completes to
pestle.phar some-command-name

但是,一旦我们到达此处,我们将丢失文件路径/名称完成,这是常用 bash shell 的一部分。也就是说,如果用户键入

//type
pestle.phar some-command-name /va[TAB]

我们希望它完成

//completes to the following, because var exists
pestle.phar some-command-name /var

有没有办法只告诉 complete 命令类似

Hey, in addition to everything we're telling you to do with our custom bash function, also keep your normal file path completion

如果没有,是否有一些已知的科学/样板可以在您自己的自定义基本完成函数中重新实现文件路径完成?

一些 other answersthe docs 似乎 表明 -o filenames-o bashdefault 选项应该处理这个问题——但它似乎不起作用在 OS X 10.11 上。我不确定我是否误解了 -o,或者我的完成文件中的代码是否以某种方式覆盖了 -o 行为,或者 OS X 是否正在这样做 我只是一个表现良好的 unix 东西。

另外——如果不是很明显的话——这我的第一个 deep bash completion rodeo。如果我在上面说了一些看似愚蠢/天真的事情,请告诉我。我现在可能正在找鱼,但我想自己学习在 bash completion river 中钓鱼。

最佳答案

我认为 -o default(没有 -o filenames)应该适合你。根据手册:

  • bashdefault
    Perform the rest of the default bash completions if the compspec generates no matches.
  • default
    Use readline's default filename completion if the compspec generates no matches.
  • filenames
    Tell readline that the compspec generates filenames, so it can perform any filename-specific processing (like adding a slash to directory names, quoting special characters, or suppressing trailing spaces). Intended to be used with shell functions.

(有关 -o default-o bashdefault 之间的区别,另请参阅 'complete -d -o default cd' issue。)

关于bash - 带有文件路径补全的自定义 Bash 自动补全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45778261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com