我的站点:桃园前端
vim 被誉为『编辑器之神』,与之同时代的 emacs 被誉为『神之编辑器』。能够看得出 vim 在编辑器的地位是很高的,得益于 vim 的指法,敲起代码来如行云流水。特别膜拜创始人创始出这么方便的敲代码的指法,这篇文章就是来带你入坑 vim 指法操做。正则表达式
在当今前端开发工具百花齐放的时代(VS Code、Sublime、Atom 以及 IDE Webstorm),我为何还要介绍 20 多年前开发的一个老古董呢?在这里我想说的是出身虽然老,可是所带来的价值并无减,一旦习惯了 vim 的指法以后,你会以为不用 vim 操做写代码会以为很不习惯,甚至不知道怎么操做。然而用在支持 vim 指法的编辑上写代码你会以为如行云流水,若是再配个机械键盘,简直是享受,特别符合极客的风格。vim
一旦学会了 vim 的指法,会让你终身受益,至少在你敲代码的年代会收益,毫无夸张, 它会让你摆脱烦人的,在敲代码的时候频繁的移动鼠标,这也是 vim 的设计理念之一 -- 脱离鼠标。微信
本篇文章比较适合前端开发者,由于我也只是用 vim 在前端领域作过一些开发,其余领域我没有发言权。app
Q:你推荐 vim 是要咱们彻底放弃之前的编辑器而投入 vim 的怀抱吗?编辑器
A:固然不是。首先 vim 的学习成本仍是很高的,由于他跟平时咱们用的编辑器敲代码的方式根本不一样,由于它是不用鼠标的,纯键盘操做。你想一想若是你在你的 vs code 上不用鼠标操做,你上下左右全靠方向键,那敲代码的速度得有多慢。并且初学者想把 vim 打形成一个本身的 IDE 仍是颇有难度的。因此我这里推荐的是,不论是你的 vs code、sublime等,装一个 vim 插件。我在 vs code 上试过,很爽,只不过如今投身到 emacs 的怀抱了。工具
虽然我用 emacs 了,我仍是会装 vim 插件(Evil)。若是有兴趣,下次能够推荐一下 spacemacs 。学习
开题说了这么多,就是想吸引一下你们,以为 vim 的指法是值得去学习的,接下来进入正题。开发工具
vim 上的全部定义的快捷键都是有必定的意义的,在这里我先把经常使用的一些列出来。spa
h(左)、l(右)、j(上)、k(下)、f(front)、b(back)、u(up)
d(delete)、i(insert)、a(append)、c(change)、y(copy)、p(paste)
w(word)、s(sentence)
vim 里面有好几种模式,可是由于我这里介绍的是在目前的编辑器里面装 插件,因此像命令模式这种用来保存文件、退出文件的就不介绍了。
当咱们记住上面的助记符以后,咱们就能够像写英文短语同样操做了。
vim 快捷键语法:[operator][count][motion],例如 删两个单词就是 d2w,operator 和 motion 我已经在前面给出来一些了。
最基本的上下左右移动(跟键盘上下左右的键盘效果相同,可是每每方向键在键盘的右下方,离主键盘区较远,这个也相对比较有优点):
移动属于 motion,因此在前面加上「count」就能够移动多行了,好比向上移动 10 行,就能够 10k。每每编辑器会有行号,定位须要作个加减法,若是采用的是相对行号,用这个就比较方便。不懂相对行号的同窗看下图就懂了。
w:光标往前移动一个词 b:光标向后移动一个词 0:移动光标到当前行首 ^:移动光标到当前行的第一个字母位置(注意与 0 的区别) $:移动光标到行尾 fx:移动光标到当前行的下一个 x 处(x为任意字母) tx:和上面一个命令相似,移动到 x 的左边一个位置 ):移动光标到下一个句子 ( :移动光标到上一个句子 {:移动光标到上一段 }:移动光标到下一段
在刚才介绍了经过相对行号来进行移动到行的光标,还有采用绝对定位来移动的。那就是 gg。 语法: [num]gg
书签功能:这个功能也是很方便,不多有编辑器有的功能,单独列出来说,强烈推荐。
在 normal 模式下是没有删除操做的,d 这种删除也是剪切。
以上全是 normal 模式
在前面也说了,进入编辑模式也就变成了「哑吧」vim 了,就跟通常的编辑器没什么区别了。不少人就知道用 i 能够进入,还有不少命令可让你聪明的进入。
要是前面都学会了,可视模式就比较简单了,并且你将会常常用到这个模式。我会把这个模式称作「选择模式」,接下来咱们就来探索一下是若是选择的。
其实也就两个关键的点:v(字符选择)、V(行选择)
在 normal 模式下,按一下 v,而后能够按 l,重复按 l,你会发现右边的在一直被选中(高亮的部分)。一样的操做,按了 v,而后再练习一下按 h、j、k。
选中的目的是什么呢?就是为了进行一些编辑操做,好比删除 d (实质是剪切)、复制 y。
小提示,经常选中以后用 c 也是比较好的选择哦,剪切并进入插入模式。
V 就是选中行,也很简单。按了 V 以后,而后按 j、k,就能够上下选择行了,而后一次性删除 d、复制 y,就比较方便。
这个功能就比较强悍了,很适用,强烈推荐。 先来记公式:operator + i|a + scope
operator 就是咱们前面提到的插入(c)、剪切(d)、复制(y)以及选择(v),i 表示 scope 范围内,a 表示包含 scope 标签,scope 就是操做的范围了。
实例: 如下若是将 i 换成 a,则会将符号也包含进去
这些操做通常编辑器都自带有很好的快捷键,记不住也没啥。
我写这篇文章的目的不是为了总结什么知识点(其实当你 vim 用熟了,这些命令彻底造成肌肉记忆了,根本不用记下来),或者说想发篇文章之类的,仅仅是想给 vim 作一个宣传,让更多的人接触 vim,让更多的开发者在开发上效率更高。若是你以为这篇文章对你有帮助,请转发给更多的人让他们都了解了解。
最后想提醒的就是,对于这些快捷键,死记是很难记完的,根据我总结的一些语义话的方式去记,有公式的记公式,可能要快一点,而后就是多实践,敲多了本身就记住了。我刚开始学的时候,还不知道有那些助记符,基本彻底靠死记硬背,我就是用一张纸,而后把命令手写抄到纸上,放在个人电脑旁,忘了就立刻拿来看看,别说,效果还挺好的。
祝大家好运!
你们好,我是桃翁,我为本身代言!
我的微信公众号,之后尽可能坚持每周一篇干货
参考文章: VIM 百度百科 如何用Vim提升开发效率