我如何使bash选项卡完成行为像vim选项卡完成并通过匹配匹配循环?
我一直在寻找这个年份的解决scheme。
由于这个原因,我在操作文件时比vim更加高效。
如果我有
file_12390983421 file_12391983421 file_12340983421 file_12390986421 在bash中,键入file_1-> tab,它显然列出:
 file_12390983421 file_12391983421 file_12340983421 file_12390986421 
这是一个可怕的公猪和痛苦的工作。
vim中的同一个序列将一次遍历一个文件。
请有人告诉我如何在bash中做到这一点,或者如果有另一个shell可以做到这一点,我会明天切换。
 默认情况下, TAB绑定到complete readline命令。 你想要的行为将是menu-complete 。 你可以通过编辑~/.inputrc来改变你的readlines设置。 要重新绑定TAB ,请添加以下行: 
 TAB: menu-complete 
 有关更多详细信息,请参阅man bash的READLINE部分。 
在之上
 # cycle forward Control-k: menu-complete # cycle backward Control-j: menu-complete-backward 
你也可以考虑加
 # display one column with matches set completion-display-width 1 
这样你将保留当前的Tabfunction,并使bash在一列中显示可能性。 所以,而不是
 file_12340983421 file_12390983421 file_12390986421 file_12391983421 
你会得到的
 file_12340983421 file_12390983421 file_12390986421 file_12391983421 
  PS您可以从GNU Readline Library网站获取最新的readline库。 
感谢@sth,我发现最适合我的是:
要保持正常的bash选项卡完成,然后使用ctl -f在需要时使用菜单完成循环
把它放在你的.inputrc文件中:
 "\Cf": menu-complete 
 根据我的经验,答案中提供的解决scheme从来没有完全为我工作。  TL; DR :将set -o vi添加到您的~/.bashrc 。 
当与vi键绑定使用菜单完成时,我必须确保
 set -o vi 
 显示在我的~/.bashrc某处。 我从来没有这样做过 
 TAB: menu-complete set editing-mode vi set keymap vi 
 在我的~/.inputrc 。 
 我的猜测是,以某种方式set editing-mode和set keymap映像打开了TAB: ...设置,但我没有彻底查看文档,以弄清楚为什么是这种情况。