OSX 终端中的制表符补全是否对目录敏感?

OSX 终端中的制表符补全是否对目录敏感?

为什么 Tab 补全在 OS X 终端中只在某些时候有效?例如cd docuTab

例如,当我在/Users/时,它工作正常。但是当我在~/时,它根本不起作用。

一旦进入,~/Documents/它又可以正常工作了。怎么回事?我输入的内容绝对足够多,可以消除子文件夹中的任何歧义。

答案1

Tab 补全区分大小写。

您的用户名通常全部小写,这就是为什么cd username在 中有效/Users,但cd docu在 中无效的原因~——文件夹名称是文件,大写

如果您想改变这种行为,请将以下几行添加到您的~/.inputrc.

$if Bash
  set completion-ignore-case On
$endif

如果您没有,~/.inputrc您可以创建一个,并使用以下命令添加上述内容:

echo "set completion-ignore-case On" >> ~/.inputrc

答案2

较新版本的 MacOS(10.15+)zsh在终端中使用,因此您需要对其进行配置。

将这些行添加到~/.zshrc

autoload -Uz compinit && compinit
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'

更多信息请点击这里: https://superuser.com/a/1092328/222897

相关内容