bash – 本地命令的路径不可知自动完成

bash – path agnostic auto completion for local commands

tl;博士: 是否有可能以某种方式获得完整的命令以匹配最后一个 / 之后的最后一个标记作为命令的任何内容。 例如:

./foo 
~/foo
~/bin/foo

应全部匹配(并完成)foo 命令。

我尝试使用 complete -F _foo_complete foo 但这只处理 foo 命令在没有路径的情况下使用的情况。 IE。某处存在于路径上。

背景

我们有一个相当大的框架和一些支持很多选项的开发人员专用工具。我想为这些工具添加完成,但我不能假设它们安装到特定位置,也不能假设系统上一次只有一个二进制版本。

开发人员可能同时拥有不同版本或多个配置(调试、发布)的不同工作副本。

目前我们使用这些工具来自 ./foo … 之类的 CWD 或 ~/devel/framework/build/release/bin/foo … 之类的路径。我希望在这些情况下注册 complete -F _foo_complete foo 也能匹配 foo ,但看起来它不在我的系统上。

有可能吗?有什么建议吗?

已解决 – 这不是问题。 它不起作用是我自己的错。由于某种原因,有 complete -F _minimal ./foocomplete -F _foo_complete foo 一起注册。可能是由于在使用来自 bash-completion 包的默认完成后没有正确地采购我自己的完成。