我正在寻找一种挂接自定义bash完成功能的方法。问题是,我希望此完成功能不仅用于特定命令,而且要用于所有命令。
这甚至可能吗?环顾了一段时间,我找不到任何在线资源。
将问题减少到最琐碎的情况:是否可以始终对字符串" foo"?
完成选项卡的完成表示echo f<tab>
将扩展到echo foo
,ls fo<tab>
将扩展到ls foo
对于上下文:我正在尝试实施类似于http://blog.plenz.com/2012-01/zsh-complete-words-from-tmux-pane-pane.html,但我正在开始担心这是不可能的。
您可以使用complete
命令的-D
选项:
suggest_hello()
{
COMPREPLY=( hello )
return 0
}
complete -D -F suggest_hello
现在,每当我键入echo h<Tab>
时,都会获得echo hello
。
$ help complete
complete: ...
...
-D apply the completions and actions as the default for commands
without any specific completion defined
...