让 BASH 的 Tab 补全填充第一个匹配项?

让 BASH 的 Tab 补全填充第一个匹配项?

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

(它仍然应该显示匹配列表,但是当我继续按 Tab 时它应该循环显示它们。)

即这里的目标是能够填写任何匹配仅有的TAB 键,如果按得足够多的话——就像在 Windows 中一样。

答案1

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

"\C-i": menu-complete

这会将 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

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

bind '"\C-i" menu-complete'

答案2

虽然我不知道如何让这个功能与 bash 一起使用,但 zsh 的默认设置正是您想要的。查看哦我的zsh桀骜

zsh 具有 bash 的大部分功能,并具有一些开箱即用的附加功能,例如仅使用 Tab 和 Enter 进行导航的能力!

大多数 Linux 发行版都附带了用于安装 zsh 的软件包。

相关内容