我怎样才能使 bash 完成行为像这样?

我怎样才能使 bash 完成行为像这样?

我不确定我所问的问题是否可行,但我希望 bash 在按下 Tab 键时执行以下操作:

  • 按下第一个选项卡时,展开一个常用前缀(如果没有,则跳过/发出哔哔声并且不执行任何操作,我真的不介意)
  • 按下第二下按钮,列出选项
  • 随后按下 Tab 键可循环显示这些选项

如果在整个过程中按下了除 Tab 键之外的任何键,则下一次按下 Tab 键将作为第一步。

我成功地用这个得到了一和二:

bind “set show-all-if-unmodified on”
bind ‘set menu-complete-display-prefix on’

我成功地用这个得到了一和三:

bind ‘set menu-complete-display-prefix on’
bind ‘TAB:menu-complete’

然而,将所有三个选项结合起来,结果是一和三。

我怎样才能获得期望的行为?

谢谢!

答案1

设置这些选项.inputrc非常接近:

set show-all-if-ambiguous on
set menu-complete-display-prefix on
TAB: menu-complete
set colored-completion-prefix on
set colored-stats on

它结合了第一步和第二步,当你第一次按下 TAB 键时,它会完成常见前缀,并显示可能完成的列表。随后按下 TAB 键会循环显示这些选项。我发现“彩色”选项很有用,所以我将它们列为奖励。

相关内容