禁用Bash的可编程自动完成功能(基于命令)


8

我的Fedora 16中的Bash似乎是根据命令本身自动完成参数。所以,如果我举例说明

cd Tab

...它只会显示目录。

然而,有太多的命令,它不知道预期的输入类型,所以有没有办法禁用此功能?

Answers:


6

取下bash-completion包裹。


您需要重新启动任何正在运行的bash实例才能使更改生效。还可以考虑sudo apt-get --purge remove bash-completion按照以下建议使用。这似乎删除了一个文件/etc引用bash否则会抱怨的与完成相关的文件。
神经病学家

8
shopt -u progcomp

将禁用基于程序的完成,TAB将再次执行常规文件/目录。您可以在shell的基础上执行此操作(或将.bashrc放入帐户中的所有shell),而不是为每个人删除bash-completion包。运行complete -r将删除所有程序完成设置,因此没有定义。这意味着如果你想再次打开它,你必须重新定义它们。然而,如果您shopt -u progcomp以前关闭它,您可以shopt -s progcomp再次运行以将其重新打开。


听起来不错,实际上禁用了它(如Q问),而不是完全删除它。也可以投入.bashrc。应该是正确答案IMO
Xen2050

5

另一种基于每个用户禁用它的方法是complete -r在您的.bashrc文件中执行。输入help complete以获取更多信息。


1

仅删除包是不够的,您还想清除文件:

sudo apt-get --purge remove bash-completion

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.