Lennakim

I am lennakim

0%

在shell中使用emacs快捷键

最近买了个 hhkb 白色无刻, 跟一般的键盘差别太大, 没有方向键, 在shell中移动光标太麻烦.

shell 有 editing-mode, 默认是 emacs-mode, 所以emacs快捷键在shell中生效, 故记下几个emacs快捷键.

1
2
3
ctrl+a 到行首
ctrl+e 到行尾

1
2
ctrl+u 从光标处删除到行首 #在zsh环境下失效, 解决方法已补充
ctrl+k 从光标处删除到行尾
1
2
ctrl+f 光标前移
ctrl+b 光标后退
1
2
ctrl+p shell中上一个命令, 或者 文本中移动到上一行
ctrl+n shell中下一个命令, 或者 文本中移动到下一行
1
2
ctrl+r 往后搜索历史命令
ctrl+s 往前搜索历史命令
1
2
ctrl+d 删除一个字符, 删除一个字符, 相当于通常的Delete键
ctrl+h 退格删除一个字符, 相当于通常的Backspace键
1
2
ctrl+y 粘贴
ctrl+l 清理屏幕, 类似clear

补充: 2015-01-05

解决 ctrl+u 在zsh环境下失效的问题

按照which-shortcut-in-zsh-does-the-same-as-ctrl-u-in-bash,
.zshrc 文件写入 bindkey \^U backward-kill-line 即可.

设置shell editing-mode 为 vi-mode

在shell中输入 set -o vi, 或者在shell配置文件中写入 set -o vi,
按下 Esc, 输入 hjkl 就可以在shell中移动光标了.