问题描述
当我在Ubuntu的命令行上运行各种命令并将tab-completion用于文件时。我得到的唯一文件是具有我正在运行的命令的适当扩展名的文件。例如..
xmms <tab><tab>
将列出当前目录中的所有mp3,而不列出任何jpeg。
在大多数情况下,这是非常有用的。但是,如果您想要的文件碰巧具有错误的扩展名,或者扩展名有效,但制表符完成不认为是扩展名,则它将不会列出文件或完成该文件。所以
-
有没有一种方法可以关闭此功能(无论如何,对任何文件都完全完成)。
-
如何调整对特定命令有效的扩展名。
谢谢
彼得
最佳回答
在/etc/bash.bashrc
中注释掉这些行(可能在~/.bashrc
中):
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
次佳回答
这在bash中称为”Programmable Completion”。使用<tab>
尝试完成编程,或者使用M-/
尝试默认完成(通常是文件和目录)。另请参阅:http://spikeypillow.com/item/30/catid/4
第三种回答
禁用可编程完成的最优雅方法是添加:
shopt -u progcomp
到您的.bashrc文件。有关更多详细信息,请参阅有关shopt
命令的官方文档:http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html