vim 入坑指南
个人站点: 桃园 0. 前言0.1 简介vim 被誉为『编辑器之神』,与之同时代的 emacs 被誉为『神之编辑器』。可以看得出 vim 在编辑器的地位是很高的,得益于 vim 的指法,敲起代码来如行云流水。特别膜拜创始人创始出这么方便的敲代码的指法,这篇文章就是来带你入坑 vim 指法操作。 0.2 前端的我为什么要学习 vim在当今前端开发工具百花齐放的时代(VS Code、Sublime、Atom 以及 IDE Webstorm),我为什么还要介绍 20 多年前开发的一个老古董呢?在这里我想说的是出身虽然老,但是所带来的价值并没有减,一旦习惯了 vim 的指法之后,你会觉得不用 vim 操作写代码会觉得很不习惯,甚至不知道怎么操作。然而用在支持 vim 指法的编辑上写代码你会觉得如行云流水,如果再配个机械键盘,简直是享受,特别符合极客的风格。 一旦学会了 vim 的指法,会让你终身受益,至少在你敲代码的年代会收益,毫无夸张,它会让你摆脱烦人的,在敲代码的时候频繁的移动鼠标,这也是 vim 的设计理念之一 -- 脱离鼠标。 0.3 文章适用读者本篇文章比较适合前端开发者,因为我也只是用 vim 在前端领域做过一些开发,其他领域我没有发言权。 0.4 Q&AQ:你推荐 vim 是要我们完全放弃以前的编辑器而投入 vim 的怀抱吗? A:当然不是。首先 vim 的学习成本还是很高的,因为他跟平时我们用的编辑器敲代码的方式根本不同,因为它是不用鼠标的,纯键盘操作。你想想如果你在你的 vs code 上不用鼠标操作,你上下左右全靠方向键,那敲代码的速度得有多慢。而且初学者想把 vim 打造成一个自己的 IDE 还是很有难度的。所以我这里推荐的是,不管是你的 vs code、sublime等,装一个 vim 插件。我在 vs code 上试过,很爽,只不过现在投身到 emacs 的怀抱了。 虽然我用 emacs 了,我还是会装 vim 插件(Evil)。如果有兴趣,下次可以推荐一下 spacemacs 。 开题说了这么多,就是想吸引一下大家,觉得 vim 的指法是值得去学习的,接下来进入正题。 1 助记符vim 上的所有定义的快捷键都是有一定的意义的,在这里我先把常用的一些列出来。 1.1 正则表达式相关
1.2 移动类(motion)h(左)、l(右)、j(上)、k(下)、f(front)、b(back)、u(up) 1.3 操作类(operator)d(delete)、i(insert)、a(append)、c(change)、y(copy)、p(paste) 1.4 一般的缩写w(word)、s(sentence) 2 理解 vim 中三种常用模式vim 里面有好几种模式,但是因为我这里介绍的是在目前的编辑器里面装 插件,所以像命令模式这种用来保存文件、退出文件的就不介绍了。
2.1 三种模式之间的转换关系
3 教程篇当我们记住上面的助记符之后,我们就可以像写英文短语一样操作了。 vim 快捷键语法:operator[motion],例如 删两个单词就是 3.1 移动光标3.1.1 最基本的 h、j、k、l最基本的上下左右移动(跟键盘上下左右的键盘效果相同,但是往往方向键在键盘的右下方,离主键盘区较远,这个也相对比较有优势):
移动属于 motion,所以在前面加上「count」就可以移动多行了,比如向上移动 10 行,就可以 10k。往往编辑器会有行号,定位需要做个加减法,如果采用的是相对行号,用这个就比较方便。不懂相对行号的同学看下图就懂了。 3.1.2 快速移动w:光标往前移动一个词 3.1.3 快速定位在刚才介绍了通过相对行号来进行移动到行的光标,还有采用绝对定位来移动的。那就是 gg。
书签功能:这个功能也是很方便,很少有编辑器有的功能,单独列出来讲,强烈推荐。
3.1.3 屏幕滚动Ctrl + b:向上移动一屏(Foward首字母小写) 3.2 剪切、复制、粘贴
在 normal 模式下是没有删除操作的,d 这种删除也是剪切。 以上全是 normal 模式 3.3 编辑模式在前面也说了,进入编辑模式也就变成了「哑巴」vim 了,就跟一般的编辑器没什么区别了。很多人就知道用 i 可以进入,还有很多命令可以让你聪明的进入。
3.4 可视模式要是前面都学会了,可视模式就比较简单了,而且你将会经常用到这个模式。我会把这个模式称做「选择模式」,接下来我们就来探索一下是如果选择的。 其实也就两个关键的点:v(字符选择)、V(行选择) 3.4.1 v(小写 v)在 normal 模式下,按一下 v,然后可以按 l,重复按 l,你会发现右边的在一直被选中(高亮的部分)。同样的操作,按了 v,然后再练习一下按 h、j、k。 选中的目的是什么呢?就是为了进行一些编辑操作,比如删除 d (实质是剪切)、复制 y。 小提示,常常选中之后用 c 也是比较好的选择哦,剪切并进入插入模式。 3.4.2 V(大写 V)V 就是选中行,也很简单。按了 V 之后,然后按 j、k,就可以上下选择行了,然后一次性删除 d、复制 y,就比较方便。 3.5 组合操作这个功能就比较强悍了,很适用,强烈推荐。 operator 就是我们前面提到的插入(c)、剪切(d)、复制(y)以及选择(v),i 表示 scope 范围内,a 表示包含 scope 标签,scope 就是操作的范围了。 实例: 3.6 撤回、查找、替换u: 撤回上次操作(效果跟 command + z 效果一样) 这些操作一般编辑器都自带有很好的快捷键,记不住也没啥。 4 结束语我写这篇文章的目的不是为了总结什么知识点(其实当你 vim 用熟了,这些命令完全形成肌肉记忆了,根本不用记下来),或者说想发篇文章之类的,仅仅是想给 vim 做一个宣传,让更多的人接触 vim,让更多的开发者在开发上效率更高。如果你觉得这篇文章对你有帮助,请转发给更多的人让他们都了解了解。 最后想提醒的就是,对于这些快捷键,死记是很难记完的,根据我总结的一些语义话的方式去记,有公式的记公式,可能要快一点,然后就是多实践,敲多了自己就记住了。我刚开始学的时候,还不知道有那些助记符,基本完全靠死记硬背,我就是用一张纸,然后把命令手写抄到纸上,放在我的电脑旁,忘了就马上拿来看看,别说,效果还挺好的。 祝你们好运! 大家好,我是桃翁,我为自己代言! 个人微信公众号,以后尽量坚持每周一篇干货 参考文章: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |