覆盖每个命令的 bash 完成

Override bash completion for every command

我有一个(可能是不明智的)想法,可以根据命令历史改进制表符补全。理想情况下,我想将其应用于终端中的每个命令。

基本上我在寻找类似的东西:

complete -F _my_function *

glob 实际工作的地方。

这完全可能吗,还是我必须为我使用的每个命令手动设置它?

complete -D 定义了 "default" 完成过程,用于所有没有设置特定完成的命令。如果您希望默认值应用于所有命令,只需不要设置任何特定的完成即可。如果要删除完成,请使用 complete -r command(或 complete -r 删除所有完成)。

另见 complete -E

有关详细信息,请参阅 Bash manual