ZSH快捷键问题:如何在ZSH中按单词向后移动?
在Zsh中按单词向后移动的方法
嘿,这个痛点我太懂了!Zsh里默认的Ctrl+b确实只是按字符向后移动,要跳整个单词的话,有几个实用的方案:
1. 用默认快捷键直接用
Zsh默认(Emacs模式,这是绝大多数人的默认配置)的按单词向后移动快捷键是:
- 普通键盘:
Alt + b(按住Alt键再按b) - Mac键盘:
Option + b(按住Option键再按b)
每次按这个组合键,光标就会直接跳到上一个单词的开头,比如面对长命令tail -f /var/log/nginx/access.log | grep 192.168.1.100,从末尾按一次就能跳到192.168.1.100的前面,再按一次到grep前面,效率拉满!
2. 自定义成你习惯的Ctrl组合键
如果你更习惯用Ctrl系列的快捷键(比如不想伸手按Alt/Option),可以自定义绑定。比如把Ctrl + 左箭头绑定成单词向后移动:
- 先在终端里查你键盘的组合键对应的escape序列:按住
Ctrl + v,然后按Ctrl + 左箭头,终端会输出类似^[[1;5D的字符(不同终端可能有差异,比如有的是^[O5D) - 打开你的Zsh配置文件
~/.zshrc,添加一行:
把里面的bindkey '^[[1;5D' backward-word^[[1;5D换成你刚才查到的序列就行 - 保存后执行
source ~/.zshrc生效,之后按Ctrl + 左箭头就能直接跳单词了
如果你想把Ctrl + b改成单词向后移动(不推荐,因为字符级后退也常用),可以加这行:
bindkey '^b' backward-word
3. Vi模式用户的方案
如果你把Zsh改成了Vi模式(执行bindkey -v开启),那更简单:
- 按
ESC进入Normal模式 - 按
b键就能按单词向后移动,按B还能跳过标点符号,只按空格分隔的单词跳
内容的提问来源于stack exchange,提问作者TyMac




