bash 中不区分大小写的完成

bash 中不区分大小写的完成

我有一个文件夹~/TestFolder。当前工作目录是主目录( ~)。

我想输入部分命令,例如,并且我希望它自动填充以在按 Tab 时cd test给出命令。cd TestFolder

我怎样才能实现这个目标?

答案1

重击

将以下内容添加到您的~/.bashrc-file 中:

bind -s 'set completion-ignore-case on'

这使得 bash 中的完成不区分大小写,正如 Gilles 在 中的回答所解释的那样 如何使 cd 参数不区分大小写?

在 Ubuntu 20.04 上使用 bash 5.0.17 进行了测试。

其他选项

我只测试了 bash 和 zsh。这是我在其他 shell 中发现的:

链接答案中的另一个选项添加set completion-ignore-case oninputrc.其他 shell 也可以使用它。根据答案,其中还讨论了是否在 bash 中使用此选项。

因此,如果不使用 bash,首先研究您的特定 shell 是个好主意(除非其他人会为其他 shell 添加经过测试的答案)。

兹什

zsh使用一个不同的行编辑器而不是 readline/inputrc。安装时,它提供了2按添加推荐的选项~/.zshrc,其中已包含以下行。它使所需的行为开箱即用:

zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za- z}' 'r:|[._-]=* r:|=* l:|=*'

在 Ubuntu 20.04 上使用 zsh 5.8 进行了测试。

这也可能有帮助:将 zsh 的制表符补全与不区分大小写相结合

相关内容