当我在 Ubuntu 的命令行上运行各种命令并使用制表符补全文件时。我得到的唯一文件是具有与我正在运行的命令相应的扩展名的文件。例如..
xmms <tab><tab>
将列出当前目录中的所有 mp3,但不列出任何 jpeg。
大多数情况下,这非常有用。但如果您想要的文件恰好有一个错误的扩展名,或者扩展名有效但制表符补全认为它无效,那么它就不会列出文件或完成它。所以
- 有没有办法关闭此功能(只是愚蠢地完成任何文件)。
- 如何调整对特定命令有效的扩展。
谢谢
彼得
答案1
注释掉/etc/bash.bashrc
(可能在~/.bashrc
) 中的以下几行:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
答案2
这在 Bash 中称为“可编程完成”。用于<tab>
尝试可编程完成,或用于M-/
尝试默认完成(通常是文件和目录)。另请参阅:http://spikeypillow.com/item/30/catid/4
答案3
禁用可编程完成的最优雅的方法应该是添加:
shopt -u progcomp
到你的 .bashrc 文件中。有关更多详细信息,请参阅有关该命令的官方文档shopt
:http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
答案4
我放
complete -r
作为我的最后一行.bashrc
。
这将丢弃所有已加载的完成并使 shell 再次变得“愚蠢”。