我一直想为YEARS寻找解决方案.
由于这个原因,我在操作文件时比使用bash更有效率.
如果我有
file_12390983421
file_12391983421
file_12340983421
file_12390986421
Run Code Online (Sandbox Code Playgroud)
在bash和type file_1-> tab中,它显然列出:
file_12390983421 file_12391983421 file_12340983421 file_12390986421
Run Code Online (Sandbox Code Playgroud)
这是一个可怕的工作和痛苦的工作.
vim中的相同序列将一次循环一个文件.
请有人告诉我如何在bash中执行此操作,或者如果有另一个shell可以执行此操作,我明天会切换.
sth*_*sth 81
默认情况下TAB绑定到completereadline命令.menu-complete相反,你想要的行为.您可以通过编辑更改您的阅读线设置~/.inputrc.要重新绑定TAB,请添加以下行:
TAB: menu-complete
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅中的READLINE部分man bash.
joe*_*dle 17
对于bash> = 4,您可能会喜欢以下设置:
# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete
# Display a list of the matching files
bind "set show-all-if-ambiguous on"
# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"
Run Code Online (Sandbox Code Playgroud)
此设置类似于Vim set wildmode=longest:full:list,full
我在Unix和Linux网站上从这个问题中提取了这些设置.
Joh*_*ney 14
在之上
# cycle forward
Control-k: menu-complete
# cycle backward
Control-j: menu-complete-backward
Run Code Online (Sandbox Code Playgroud)
你也可以考虑加入
# display one column with matches
set completion-display-width 1
Run Code Online (Sandbox Code Playgroud)
这样您就可以保留当前的Tab功能,并使bash在一列中显示可能性.而不是
file_12340983421 file_12390983421 file_12390986421 file_12391983421
Run Code Online (Sandbox Code Playgroud)
你会得到的
file_12340983421
file_12390983421
file_12390986421
file_12391983421
Run Code Online (Sandbox Code Playgroud)
PS您可以readline从这个GNU Readline Library网站获取最新的库.
感谢@sth我发现最适合我的方法:
要保持正常的bash选项卡完成,然后使用ctl-f在需要时使用menu-complete循环
把它放在.inputrc文件中:
"\C-f": menu-complete
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17704 次 |
| 最近记录: |