让 BASH 的 Tab 补全填入第一场比赛?

use*_*686 16 bash autocomplete

当我按 TAB 时,有没有办法让 BASH 填充第一个匹配项,有点像 Windows 命令提示符?

(它仍应显示匹配项列表,但当我继续按 Tab 键时,它应循环显示匹配项。)

即这里的目标是能够填补任何匹配TAB键,给予足够的印刷机-就像在Windows中。

Phi*_*ath 17

将以下内容添加到您的.inputrc文件中,(确切位置因系统而异):

"\C-i": menu-complete
Run Code Online (Sandbox Code Playgroud)

这将 TAB 映射到 menu-complete,它会自动完成第一个匹配项。

然后添加(或取消注释)show-all-if-ambiguous,这会显示第一次按下 TAB 时可能完成的列表。

例如,在您的(可能).inputrc文件中:

# On RHEL 8.3 - $HOME/.inputrc
set show-all-if-ambiguous on
"\C-i": menu-complete
Run Code Online (Sandbox Code Playgroud)

或者,您可以.inputrc通过执行以下操作来设置每个会话的菜单完成(无需编辑)

bind '"\C-i" menu-complete'
Run Code Online (Sandbox Code Playgroud)


小智 5

虽然我不知道如何让这个功能与 bash 一起工作,但 zsh 默认设置了你想要的。查看oh-my-zshzsh

zsh 具有 bash 的大部分功能以及一些开箱即用的附加功能,例如仅使用选项卡进行导航和输入的能力!

大多数 linux 发行版都带有用于安装 zsh 的包。