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 ./foo
与 complete -F _foo_complete foo
一起注册。可能是由于在使用来自 bash-completion
包的默认完成后没有正确地采购我自己的完成。
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 ./foo
与 complete -F _foo_complete foo
一起注册。可能是由于在使用来自 bash-completion
包的默认完成后没有正确地采购我自己的完成。