单个制表符用于使 bash 完成当前行,双击显示所有可能的变体。
例如,如果我有文件(或 git 分支,或任何适合当前上下文的内容)“abc”、“abd”和“bbb”,那么如果我输入“git add a”,控制台将如下所示:
// start
id@IDANILOV /d/temp
$ git add a
然后我按下 Tab 键 - 它将当前行完成为“ab”并且不打印任何其他内容:
// after tab pressing
id@IDANILOV /d/temp
$ git add ab
如果我第二次按下 Tab - 它会显示“abc”和“abd”:
// after second tab press
id@IDANILOV /d/temp
$ git add ab
abc abd
id@IDANILOV /d/temp
$ git add ab
但经过一些更新后(或者可能是我不经意间做了一些事情) - 即使在第一次按下标签后它也会显示所有变体,这很烦人。
这种行为可以在哪里改变?
答案1
在某些 inputrc 文件 (/etc/inputrc、~/.inputrc 等) 中,有一行如下:
set show-all-if-ambiguous on
删除此行,插入到#
行首或更改on
为off
。
或者说
bind 'set show-all-if-ambiguous off'
进入你的 .bashrc
参考: http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC9