bash 中不区分大小写的完成

Geo*_*Do. 6 bash autocomplete case-sensitivity

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

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

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

Pau*_*ith 5

重击

\n

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

\n

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

\n

这可以在 bash 中实现不区分大小写的完成,正如 Gilles 在\n How to make cd argument case INsensitive?中的回答所解释的那样。

\n

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

\n

其他选项

\n

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

\n

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

\n

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

\n

兹什

\n

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

\n

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

\n

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

\n

这也可能有帮助:Combining zsh\xe2\x80\x99s tab finish with case insensitivity

\n