有什么方法可以让 Bash tab 不区分大小写吗?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
我正在使用 Mac OS X 10.6
答案1
更新文本/etc/inputrc
以包含
设置完成忽略大小写
然后使用^X ^R
重新加载配置。
答案2
[.]inputrc
事后看来,对比了使用与的利弊.bash_profile
。
向下划线感谢他的帮助。
笔记:Bash 中的命令行编辑由 Readline 库提供;自定义它并非易事,但值得学习;其功能包括定义自定义键盘快捷键以插入预定义的文本片段 - 请参阅命令行编辑在 Bash 参考手册中
到坚持不懈使 Bash 中的制表符补全不区分大小写:
选项 A:如果您已经拥有:
- 一个
/etc/inputrc
文件(适用于整个系统,修改需要sudo
) 和/或
~/.inputrc
文件(用户特定)和/或
你计划广泛定制 readline 库和/或希望使定制对以下对象有效:脚本当他们打电话时也是如此read -e
:
添加行
set completion-ignore-case on
到任何一个文件,具体取决于您是否希望设置对全部用户或当前的用户(如有必要,创建文件)。
使文件和目录名称完成更容易的相关命令是:
set show-all-if-ambiguous on
这样就无需按 Tab两次当有多个匹配项时。
选项 B:~/.bash_profile
或者,你可以在 OS X(或Linux)上将Readline 命令添加到用户特定文件中~/.bashrc
,方法是将它们作为单身的论点bind
内置:
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
请注意,/bind
中的命令优先于 或 中的等效命令。~/.bash_profile
~/.bashrc
/etc/inputrc
~/.inputrc
如上所述,以这种方式定义的 Readline 配置将不是生效于脚本该调用read -e
激活 Readline 支持读取用户输入。
答案3
为了避免更改所有用户的配置并避免 root 权限,请使用以下命令:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
然后重新登录或者重新加载~/.inputrc