如何完全禁用特定 shell 命令或别名的完成?

如何完全禁用特定 shell 命令或别名的完成?

我有以下 Bash 别名,它不带任何参数。

alias b='cd ..'

键入b<space>然后按会<tab>显示当前目录中任何路径的完成结果。我怎样才能使按下<tab>不会触发任何类型的自动完成?我已经尝试过complete -r b但没有帮助。

答案1

-bash-4.2$ alias b='cd ..'
-bash-4.2$ function nope() { :; }
-bash-4.2$ complete b -F nope
-bash-4.2$ b 

因此,完成该nope功能似乎会禁用完成功能。我们可以对此进行改进吗?

-bash-4.2$ alias b='cd ..'
-bash-4.2$ b
Display all 116 possibilities? (y or n)
-bash-4.2$ complete b -C :
-bash-4.2$ b 

看起来是这样; “nothing”:命令避免了添加不执行任何操作的函数的需要。

相关内容