使BASH的Tab完成第一场比赛吗?


11

当我按TAB时,有什么方法可以使BASH填写第一个匹配项,有点像Windows命令提示符?

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

也就是说,这里的目标是在足够的按动的情况下,仅用 TAB键即可填写任何匹配项-例如在Windows中。

Answers:


15

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

"\C-i": menu-complete

这会将TAB映射到菜单完成,菜单自动完成第一个匹配项。

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

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

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

不,那是绝对没有像Windows命令提示符。:-)
user541686

@Mehrdad:编辑,我希望我现在知道了。
Philomath

几乎+1!这就是我想要的,但是有什么办法让它做到这一点在菜单不明确时显示菜单?(我知道可能要求太多,但我希望有可能。)
user541686 2011年

@Mehrdad:如果您要的是它,请接受它,这可以帮助人们快速获得正确的答案。至于您一次要执行这两项操作的新请求,我认为这不可能,但是谁知道呢?...但是,您可以绑定menu-complete到另一个键序列,例如"\M-s"for Meta+S,因此可以随意选择。
Philomath'7

1
你知道吗?看来它实际上确实在执行我想要的操作:首先显示菜单,然后在选项之间循环!我认为我没有在尝试过的第一台计算机上看到此消息(也许我没有注意),但它似乎运行得很好!:)(编辑:似乎您既需要此设置 也需要此设置show-all-if-ambiguous才能工作。)
user541686

4

尽管我不知道该功能是否可以与bash一起使用,但zsh附带了默认情况下的设置。查看oh-my-zshzsh

zsh具有bash的大多数功能,并具有一些开箱即用的附加功能,例如仅使用tab键即可导航的功能!

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


1
...哦,我的zsh!很有意思,我来看看...它可能会或可能不会满足我的需求。
user541686 2011年

很高兴我能帮助你。您正在使用什么发行版?我可以通过有关如何安装zsh和ohzsh的指南为您提供更深入的答案。
克里斯·纳德勒

+1我安装了zsh,看起来非常棒!如果我没有遇到任何问题,我也可以接受,谢谢!:)(我使用的是Ubuntu btw。)
user541686 2011年

太棒了,如果您只是运行apt-get install zsh,然后在此处运行oh-my-zsh的自动安装程序,那应该很好。让我知道您是否需要任何帮助来进行设置。
克里斯·纳德勒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.