(WSL 与 Ubuntu 18.04)
我有一些我以前使用过的配置设置,可以在互联网上的各个地方看到推荐的配置设置(更不用说 SO 了)。我已将它们放入.inputrc
我的家庭位置的文件中。
$include /etc/inputrc
# better tab completion
bind "set show-all-if-ambiguous on"
bind "set completion-ignore-case on"
# disable bell
bind "set bell-style none"
# make tab completion treat links as directories
# i.e. adds trailing slash when <tab>-ing
set mark-symlinked-directories on
我不清楚为什么bind
使用或不使用这些。网上说是图书馆bind
用的readline
。网上也说.inputrc
是针对的readline
。所以他们应该一起工作,对吗?
但是当我使用这些疯狂的事情开始在购买终端(WSL)中发生。
在一种情况下(禁用铃声),每当我在提示符下输入超过 N 个字母时,bash 就会开始set
一遍又一遍地吐出。
在另一种情况下(制表符补全),它会在我输入每个字符后输出“设置补全忽略大小写”。
如果我删除 和 引号,奇怪的行为就会停止bind
,所以我不需要知道如何来阻止这种行为。我想了解为什么有时候是这样的。有人知道这是怎么回事吗?
答案1
感谢@Kusalanada 的评论,我突然明白了,那bind
就是巴什内置于readline
.与配置.inputrc
一样readline
,它不需要也不知道 bash 内置命令。
这就是为什么bind
在 中需要.bashrc
,但在 中不需要.inputrc
。