iTerm2 如何设置以单词为单位快速移动光标?

什么是iTerm2?

iTerm2是Terminal的替代品,是iTerm的后继产品。它适用于装有macOS 10.14或更高版本的Mac。iTerm2将终端带入了您从未想过一直想要的功能,使其进入了现代时代。

要设置的原因 

我们经常会用到同一个命令,只不过参数略有不同,比如我要ping我的两个域名:

1. ping www.xiebruce.top 

2.ping chuntu.xiebruce.top

由于运行第一个命令后,有历史记录,我们只要按上方向键即可调出这条命令的历史记录,修改一下域名即可再次ping。

然而,要把www修改为chuntu,就要不断的按左方向键来把光标定位到要修改的位置,有点麻烦,这个命令还算比较短,如果比较长的命令,那将会非常麻烦。

如果用过Mac自带的“终端.app”这个软件的童鞋,可能用过按单词移动光标(option+←/→分别向左和向右以单词为单位移动光标)。

如下图所示,我分别演示了按左键和按单词快速移动的差别,毫无疑问按单词快速移动会非常方便(其实用ctrl+k可以删除光标前的一个单词,更方便),而iTerm默认是不支持按单词快速移动光标的,所以需要设置。

原理 

其实Mac自带的终端支持按单词移动光标,不是因为它比iTerm2强大,而是它默认设置了这个快捷键而已。

我们可以查看“终端.app”的偏好设置(Preferences)→描述文件(Profiles)→键盘(Keyboard),我们可以看到⌥+←和⌥+→,分别对应\033b和\033f,其中⌥代表option键,\033其实是esc键,b和f分别是backward(向后,即向左)和forward(向前,即向右)。

iTerm2 如何设置以单词为单位快速移动光标?

所以,其实按单词移动光标的快捷键,是esc+b或esc+f(注意按了一次之后,要放开esc键再按下一次,如果一直按着esc键,那么第二次按的时候就会失效)。

由于esc+b/f比较不方便,所以我们要在终端里设置两个快捷键,分别用来触发esc+b或esc+f这两个快捷键。我们可以看到,Mac自带的终端默认就已经设置了这个快捷键了,所以直接就可以用,而iTerm2默认没有设置,所以要自己设置。

iTerm2 如何设置以单词为单位快速移动光标?

开始设置 

进入iTerm的Preferences→Keys→点击右下角+号→点击click to set。

iTerm2 如何设置以单词为单位快速移动光标?

上一步点击click to set后,就可以开始按你要设置的快捷键了,我是用的option+←代表向左,option+→代表向右,按了之后它会显示,如果iTerm2的这两个快捷键已经被用了,你可以看看它是做什么用,如果是不重要的或者你用不到的可以删掉,再来设置这个。

iTerm2 如何设置以单词为单位快速移动光标?

Action里搜索esc,选择搜索到的Send Escape Sequence(即esc键,esc就是escape的缩写),iTerm2里可以让我们选esc键而不用直接写它的控制符号\033(但最终触发命令的时候,iTerm2也是会把它转成\033的)。

iTerm2 如何设置以单词为单位快速移动光标?

然后输入b或f(因为我这里是向右,所以我填f,如果是向左,就填b)。

iTerm2 如何设置以单词为单位快速移动光标?

另一个方向是完全一样的操作方法,只不过字母不同,b是backward的缩写,意思是向后,向后其实就是向左;而f是forward的缩写,意思是向前,向前就是向右。

设置完以后,就可以用option+←/→来以单词为单位,快速移动光标了,再也不用拼命按左右方向键了。

注意,如果不生效,很可能是某个配置里的快捷键覆盖了全局的快捷键,把它删掉,关闭那个窗口再重新登录即可。

iTerm2 如何设置以单词为单位快速移动光标?


上一篇:axis2 document方式调用


下一篇:MAC终端神器iterm2——告别黑白