Bash 中不区分大小写的制表符补全

Bash 中不区分大小写的制表符补全

有什么方法可以让 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

相关内容