我正在寻找一种 Hook 自定义 bash 完成函数的方法。问题是,我希望这个完成功能不仅适用于特定命令,而且适用于所有命令。
这可能吗?找了半天,网上找不到资源。
将问题简化为最微不足道的情况:是否可以始终对字符串“foo”进行制表符补全?
含义 echo f<tab>
将扩展为 echo foo
, 和 ls fo<tab>
将扩展为 ls foo
对于上下文:我正在尝试实现类似于 http://blog.plenz.com/2012-01/zsh-complete-words-from-tmux-pane.html 的东西在 bash 中,但我开始担心这是不可能的。
最佳答案
您可以使用 -D
来做到这一点complete
的选项命令:
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
...
关于bash - 任意命令完成 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30153081/