如何动态添加 bash 选项卡补全?
How can I add bash tab completion dynamically?
我有一个类似于 git 的程序,因为 git foo
和 git-foo
都是调用它的有效方法。我有为 git foo
版本编写的基本制表符补全,我想将它用于 git-*
。但是由于各种原因,事先知道所有 git-*
命令的列表是非常重要的(事实上,这是不可能的,因为我可以随时添加新命令),所以我需要一种方法来 运行像
complete -F _my_git_completion git-*
但是该行不起作用,因为在调用当前目录中的文件时会扩展 git-*
。这没有用,因为我的文件不在当前目录中。
我依稀记得有一个钩子叫第一次尝试完成一个新的可执行文件,但我现在找不到了。有这种事吗?
好吧,原来还有这个老问题:
bash-completion - completion function defined the first time a command is invoked
所以我应该更努力地搜索。
我有一个类似于 git 的程序,因为 git foo
和 git-foo
都是调用它的有效方法。我有为 git foo
版本编写的基本制表符补全,我想将它用于 git-*
。但是由于各种原因,事先知道所有 git-*
命令的列表是非常重要的(事实上,这是不可能的,因为我可以随时添加新命令),所以我需要一种方法来 运行像
complete -F _my_git_completion git-*
但是该行不起作用,因为在调用当前目录中的文件时会扩展 git-*
。这没有用,因为我的文件不在当前目录中。
我依稀记得有一个钩子叫第一次尝试完成一个新的可执行文件,但我现在找不到了。有这种事吗?
好吧,原来还有这个老问题: bash-completion - completion function defined the first time a command is invoked 所以我应该更努力地搜索。