Terminal - 快捷键相关操作

1. 常用快捷键

BTW,以下快捷键在Linux下和Mac下的行为有些许差异,在不同终端,比如xshell和iterm2的某些行为也是不一样,需要注意做适当处理,比如在~/.zshrc或iterm2的管理设置中进行相关快捷键的自定义

1.1. 光标移动

到行首:ctrl + a
到行尾:ctrl + e
字符前进:ctrl + f , 类似左方向键
字符后退:ctrl + b , 类似右方向键
单词前进:esc + f , 需要按esc,然后再按f
单词后退:esc + b , 需要按esc,然后再按b
光标下移半页: ctrl+d
光标上移半页: ctrl+b

1.2. 历史操作

上一条命令:ctrl + p
搜索命令历史:ctrl + r
历史剪贴板:ctrl+;
剪切板历史:⌘ + shift + h

1.3. 裁剪、粘贴字符操作

// 删除操作
删除光标之前的字符:ctrl + h (相当于delete键)
删除光标之后的字符:ctrl + d

// 裁剪单词
删除光标之前的一个单词:ctrl + w 
删除光标之后的一个单词:esc+d

// 裁剪更多的字符
删除光标到行尾的字符:ctrl + k
删除光标到行首的字符:ctrl + u (MAC下的zsh中默认为删除整行,后面有如何修改)

// 粘贴
复制裁剪的内容:ctrl+y

1.4. 大小写转换

字符转成大写 esc + u
字符转成小写 esc + l

1.5. 字符交换

交换光标前的最后两个字符: ctrl+t
交换光标前的两个单词:esc+ t

1.6. 清屏

清屏1:ctrl + l (清屏)
清屏2:command + r (下一屏)

1.7. 复制+粘贴

复制+粘贴:ctrl + shift + v

2. 如何在zsh中绑定和bash中一致的快捷键

2.1. zsh和bash还有一定的差别,在zsh中的修复,重新绑定key

// bindkey
bindkey "^U"    backward-kill-line
bindkey "^u"    backward-kill-line
bindkey "^[l"   down-case-word
bindkey "^[L"   down-case-word

// alt+<- | alt+->
bindkey "^[f" forward-word
bindkey "^[b" backward-word

// ctrl+<- | ctrl+->
bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word

2.2. 查看组合键

  • 运行cat,然后输入组合键
  • 查看zsh line editor:https://web.cs.elte.hu/local/texinfo/zsh/zsh_10.html

3. MAC下基于alt+<-和alt->光标前后快速移动的效果

在MAC中的使用Iterm2,如果不想通过上述通过修改~/.zshrc方式,也可以基于Iterm的系统配置修改:

  • 取消系统的服务快捷键(alt+<-和alt+->,以及ctrl+<-和ctrl+->)
  • 设置Iterm2加载系统配置:Load Prestent >> Natural Text Editing

4. 参考