在 bash/readline 中,如果你想浏览一个命令,通常你会有这样的事情:
cat /home/foo/bar.txt /home/bar/baz.txt
Run Code Online (Sandbox Code Playgroud)
如果我的光标位于行尾 (^e),并且我想移回第二个参数的开头,我该如何移至(下一个/上一个)空格?
Readline 具有内置的Meta-f(forward) 和Meta-b(backwards),但它们将停在路径中的斜杠处,而不是一直移动到空白处。
vim 有W和B哪个将执行此操作,但默认情况下在 readline/bash 中未启用 vim 移动模式。
ell*_*t42 11
即使仍处于 emacs 移动模式,您也可以在 readline/bash 中使用 vim 移动命令。相关的 readline 命令是vi-fWord和vi-bWord。您可以将它们绑定到键盘快捷键,例如CTRL-f和CTRL-b中的以下内容.bash_profile:
bind '"\C-f":vi-fWord'
bind '"\C-b":vi-bWord'
Run Code Online (Sandbox Code Playgroud)
请注意,双引号很重要。
您可以通过运行来确认绑定是否正常工作 bind -p
有 Readline 命令可让您移动和处理单词,就像 shell 将它们处理拆分一样:shell-forward-word和shell-backward-word1。
如果你想它们绑定到Ctrl+ Meta+f和Ctrl+ Meta+ b,以避免覆盖现有的绑定,就可以使用
bind '"\M-\C-f": shell-forward-word'
bind '"\M-\C-b": shell-backward-word'
Run Code Online (Sandbox Code Playgroud)
在命令行上,或添加
"\M-\C-f": shell-forward-word
"\M-\C-b": shell-backward-word
Run Code Online (Sandbox Code Playgroud)
到相关inputrc文件(通常是~/.inputrc)。
根据 的设置convert-meta,\M-必须替换为\e。
1在 Bash 4.0 中引入。
| 归档时间: |
|
| 查看次数: |
2310 次 |
| 最近记录: |