Bash:菜单只适用于less数比赛

使用Bash自动完成,只有在有1-2个选项的情况下,才有一种方法可以使用菜单循环来完成匹配,否则使用完整的列表?

主目录包含桌面,文档,下载,项目和公共

~$ cd D<tab><tab> # lists matches Desktop Documents Downloads ~$ cd De<tab> # completes Desktop ~$ cd P<tab> # completes Projects ~$ cd Projects<tab> # completes Public 

前者是complete行为,后者是menu-complete 。 我想要它select第二个选项,如果只有1-2个匹配,第一个如果有3个或更多。

似乎没有办法。

我知道你特别要求bash,但是如果你想给zsh一个尝试,它会在第一次按tab时使用普通的列表完成,并在第二次按下时循环可能的值。 我认为这是非常方便的,而且切换是一件不容易的事情,因为zsh与bash非常相似。

点击标签两次? 或者你是否想得到像命令那样的命令,然后在命令之后列出arg1或者arg2?

回答

你会想编辑你的/ etc / inputrc并在下面添加一行:

 "\Ci": menu-complete 

然后运行这个命令立即设置您的更改:

#:bind -f / etc / inputrc

不幸的是,我没有看到通过select的数量来限制它的方法,但是当你点击“tab”键时,你可以切换它

参考: independentchaos.com