21

我正在寻找对 cd 命令的调整,以便它识别目录的拼写错误并自动完成相似的目录名称。

现在,我的设置可以识别目录的拼写错误,但不会自动完成它们。

对于目录拼写错误更正,我在以下代码中有此代码~/.bashrc

shopt -s cdspell

现在它以下列方式工作,假设我有一个名为“垃圾”的目录

vickey@home:~$ cd tras
trash
vickey@home:~/trash$ cd ..
vickey@home:~$ cd trasx
trash
vickey@home:~/trash$ pwd
/home/vickey/trash
vickey@home:~/trash$ 


vickey@home:~$ cd Trash
trash
vickey@home:~/trash$ pwd
/home/vickey/trash

但是我遇到的问题是假设我创建了一个名为 Temp 的目录并执行类似的操作

vickey@home:~$ mkdir Temp
vickey@home:~$ cd temp
Temp
vickey@home:~/Temp$ cd ..
vickey@home:~$ cd te #and tab here
test/   textin/ 

它没有显示Temp为选项。有没有让自动完成不区分大小写?

4

1 回答 1

27

完成是readline.

您可以通过以下方式启用不区分大小写的完成:

1)添加到您的~/.bashrc

bind 'set completion-ignore-case on'

或者

2)添加到您的/etc/inputrc

set completion-ignore-case on

笔记:

  • /etc/inputrc,正如@mak 评论,影响所有使用 的shell readline,而不仅仅是bash.

  • 这将使所有完成不区分大小写。

于 2012-04-05T08:31:34.433 回答