不区分大小写的 bash 自动完成

不区分大小写的 bash 自动完成

有没有办法让 bash 中的文件/目录自动完成不区分大小写?

例如我想写:
/opt/ibm/whatever/test[TAB]

bash 将自动完成它:
/opt/IBM/Whatever/TESTfile

或者至少只有的最后test一部分TESTfile

我知道文件系统区分大小写,我只是不想记住哪些部分是大写的,我希望自动完成功能能够为我修复路径。

如果我同时拥有TESTfiletestfile,就只向我显示它们,就像 bash 今天在自动完成冲突时所做的那样。

答案1

对这个讨论再补充一点;

shopt -s nocaseglob

这会影响通配符扩展,因此 ls w* 将显示 w1.txt W1.txt。但是,据我了解,制表符补全将忽略此设置。

您可以使用 inputrc 影响制表符补全;

echo 'set completion-ignore-case On' >> /etc/inputrc 

或者(如果你的系统是这样设置的,则为 ~/.inputrc)

安德鲁

相关内容