使bash的制表符完成不区分大小写[重复]


40

可能重复:
Bash中不区分大小写的制表符完成

有什么办法可以使bash中的制表符完成不区分大小写?例如,如果我有一个名为的文件,Hello.txt并尝试通过键入制表符完成它heTab那么它将无法正常工作。我将不得不通过键入He(请注意大写字母H)和来制表Tab。有什么方法可以设置bash,以便在键入时尝试用Tab键完成它时不必保留大小写吗?


我很高兴知道它可以在Linux上运行,因为另一个问题是特定于OSX的@sathya
earthmeLon 2014年

Answers:


55

.inputrc在您的主目录中创建一个名为的文件,并将以下行放入其中:

set completion-ignore-case on

然后打开一个新的外壳并尝试一下。如果系统上存在/ etc / inputrc,则通常还应该添加line $include /etc/inputrc。但是无法将其设置为条件,因此仅应在该文件存在的情况下添加它。


14
这将防止bash从中读取默认值/etc/inputrc,从而破坏使用ctrl-left / right导航之类的功能。确保添加$include /etc/inputrc您的~/.inputrc
Nicolas Marchildon

1
您也可以使用bind -f〜/ .inputrc重新加载此更改。
主教

2
我将在答案中包含@NicolasMarchildon评论,因为它应该存在
TheEpsilon'1

奇怪的是,它对我不起作用。这是我的~/.inputrcpastebin.com/WVQmrNZu
Alexey Petrenko '18年

@AlexeyPetrenko在我看来还可以。文件中是否有不可见的字符弄乱了东西?尝试使用LC_ALL=C cat -vet ~/.inputrc-进行打印-您应该在每行的末尾看到一个“ $”,但除此之外没有什么好笑的。另外,尝试一下bind -v,看看它对completion-ignore-case变量显示什么。最后,另一个Shell初始化文件中是否有可能会更改它的文件?
戈登·戴维森
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.