本文所有命令调试环境
- 系统:mac 10.13
- terminal类型:原生terminal / iterm2
编辑器语法的简单介绍
终端中输入命令时,移动光标有两种方式,一个是 emacs,一个 vi,可以通过 set 命令来设置,默认的是 emacs 模式,也可以通过set -o emacs来显式设置
使用默认的emacs模式移动光标
搜罗了两个emacs比较好用的命令,如下:
1. 向前移动一个单词:ESC+f
2. 向后移动一个单词:ESC+b
3. 移动光标到行首:control+a
4. 移动光标到行尾:control+e
经作者实测,必须分开点击ESC和f/b才能实现向前/向后一个单词位,长按ESC+不停点击f/b并不能快速移动n个单词的光标位。
对此,原生terminal无能为力,只能ESC+f+ESC+f+ESC+f……循环。iTerm可以通过改变快捷键的方式进行优化:Preferences->Profiles->Keys中,设置左option键为Esc+即可达到联系移动的效果,如下图:
使用vi模式移动光标
- 切换到vi模式:
set -o vi
- 退出vi的编辑模式:
ESC
- 向前移动一个单词位:
w
- 向后移动一个单词位:
b
- 移动光标到行首:
^
- 移动光标到行尾:
$
开启vi 模式后,默认是 insert 模式,按下esc键进入命令模式,按下i进入insert模式。如果需要切换回emacs模式,执行
set -o emacs
即可。熟悉vi的可以自由发挥,以上几个命令只是抛砖引玉。
设置terminal的默认执行方式
- 默认shell,在创建文件~/.bash_profile,写入set -o vi
- 作者使用了zsh,所以在~/.zshrc写入了set -o vi
具体根据个人使用的shell类型配置1/2即可