我不确定我所问的问题是否可行,但我希望 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 键会循环显示这些选项。我发现“彩色”选项很有用,所以我将它们列为奖励。