You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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 + 左箭头绑定成单词向后移动:

  1. 先在终端里查你键盘的组合键对应的escape序列:按住Ctrl + v,然后按Ctrl + 左箭头,终端会输出类似^[[1;5D的字符(不同终端可能有差异,比如有的是^[O5D
  2. 打开你的Zsh配置文件~/.zshrc,添加一行:
    bindkey '^[[1;5D' backward-word
    
    把里面的^[[1;5D换成你刚才查到的序列就行
  3. 保存后执行source ~/.zshrc生效,之后按Ctrl + 左箭头就能直接跳单词了

如果你想把Ctrl + b改成单词向后移动(不推荐,因为字符级后退也常用),可以加这行:

bindkey '^b' backward-word

3. Vi模式用户的方案

如果你把Zsh改成了Vi模式(执行bindkey -v开启),那更简单:

  • ESC进入Normal模式
  • b键就能按单词向后移动,按B还能跳过标点符号,只按空格分隔的单词跳

内容的提问来源于stack exchange,提问作者TyMac

火山引擎 最新活动