多年来,我一直想找到一个解决办法。
由于这个原因,我在Vim中操作文件的效率要比在bash中高得多。
如果我有
file_12390983421
file_12391983421
file_12340983421
file_12390986421
在bash中,键入file_1-〉tab,它显然列出了:
file_12390983421 file_12391983421 file_12340983421 file_12390986421
这是一个可怕的无聊和痛苦的工作。
vim中的相同序列将一次循环一个文件。
请有人告诉我如何在bash中做到这一点,或者如果有另一个shell可以做到这一点,我明天会切换。
5条答案
按热度按时间watbbzwu1#
默认情况下,
TAB
绑定到complete
readline命令。您所需的行为将改为menu-complete
。您可以通过编辑~/.inputrc
来更改readlines设置。要重新绑定TAB
,请添加以下行:有关详细信息,请参阅
man bash
中的READLINE
部分。qxsslcnc2#
对于bash〉= 4,你可能会喜欢这些设置,你可以直接在命令行中尝试,如果你喜欢的话,可以把它们放到你的
~/.bash_profile
中。此设置类似于Vim的
set wildmode=longest:full:list,full
我从Unix & Linux站点上的this question中提取了这些设置。
顺便说一下,既然你在这里,这里有一些其他伟大的绑定:
这意味着,如果键入
ssh<Up>
,它将循环显示以前运行ssh
的行如果你不喜欢你得到的,你可以用Ctrl-KCtrl-U清除这行
我从AskUbuntu上的this question中提取了这些设置。
f3temu5u3#
在
您也可以考虑添加
这样,您将保留当前的Tab功能,并使bash在一列中显示可能的选项。
你会得到
你可以从这个The GNU Readline Library网站获得最新的
readline
库。woobm2wo4#
多亏了“某事”,我找到了最适合我的方法:
保持正常的bash选项卡完成,然后在需要时使用ctl-f循环使用menu-complete
将以下内容放入.inputrc文件中:
fwzugrvs5#
根据我的经验,在某事的答案中提供的解决方案从来没有对我完全有效过。DR**:将
set -o vi
添加到您的~/.bashrc
。当结合vi键绑定使用menu-complete时,我必须确保我的
~/.bashrc
具有:对于我的
~/.inputrc
来说,仅仅拥有以下内容是远远不够的:我的猜测是,
set editing-mode
和set keymap
不知怎么地破坏了TAB: ...
的设置,但我还没有彻底研究文档来弄清楚为什么会出现这种情况。