Answers:
为了使bash
当前用户不区分大小写:
在终端中运行以下shell脚本:
# If ~/.inputrc doesn't exist yet: First include the original /etc/inputrc
# so it won't get overriden
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
# Add shell-option to ~/.inputrc to enable case-insensitive tab completion
echo 'set completion-ignore-case On' >> ~/.inputrc
启动一个新的外壳程序(重新打开终端)。
在系统范围内进行更改:
# add option to /etc/inputrc to enable case-insensitive tab completion for all users
echo 'set completion-ignore-case On' >> /etc/inputrc
# you may have to use this instead if you are not a superuser:
echo 'set completion-ignore-case On' | sudo tee -a /etc/inputrc
有关详细信息,请参见man bash
。是的,它是一个很长的页面,但是bash是一个有点复杂的程序,如果您只想在该页面上搜索“不区分大小写”,请转到相关部分。人们通常一次学习bash一个选项,或者一次学习一个bash脚本,要掌握所有细微差别需要花费很长时间。您的兴趣可能会有所不同。
>>
比>
?
$include /etc/inputrc
并且set completion-ignore-case on
应该在您的〜..inputrc文件中。
打开一个终端并输入以下命令:
echo set completion-ignore-case on | sudo tee -a /etc/inputrc
输入密码。重新启动终端。
如果在某些情况下要删除不区分大小写的字母,则只需删除该set completion-ignore-case
行即可编辑/ etc / inputrc文件。
就这样。
我知道这个问题很老,但是除非您缺少某些东西,否则如果您使用bash,我想我有一个非常简单的解决方案。
echo "bind 'set completion-ignore-case on'" >> ~/.bashrc
或者只是使用您喜欢的文本编辑器添加该行。重新开始您的bash会话并享受。
bind 'set completion-ignore-case on'
应该换新的行.bashrc
您可以通过为GNU readline设置配置变量来完成此操作,该变量负责处理交互式shell中的输入。
所需的变量是completion-ignore-case
,可以直接在bash会话中使用以下命令进行设置:
bind "set completion-ignore-case on"
通过将其放入用户的~/.inputrc
文件或系统中/etc/inputrc
,可以为以后的所有bash会话启用它,以为所有用户启用它。这是readline的初始化文件。
但是请注意,如果创建~/.inputrc
,它将覆盖系统副本。(对我来说,这使我失去了一些关键的映射,例如Ctrl-Left
/ Right
。您可以通过仔细阅读/etc/inputrc
文件来查看哪些映射。)
解决此问题的方法是将代码行$include /etc/inputrc
放在的顶部~/.inputrc
,例如:
$include /etc/inputrc
set completion-ignore-case on
要应用更改,请重新启动bash或重新加载inputrc,例如使用Ctrl+x,Ctrl+r。
有关readline和inputrc的更多信息,请参见man bash
和man 3 readline
。