目的
为什么写这个,为了总结一下vim编辑器的使用方法,命令,和过程,更有效的使用vim编辑器。同时,也可以帮助其他人和接触学习vim。
使用vim编辑器有一段时间了,坚持用vim编辑器是个了不起的事情。我学习vim编辑器是2019的4月份开始学vim编辑器,最开始是背一个vim的命令键盘图,背到熟,花了一周时间背熟。接着还用百度云盘搜到一个2小时的视频教学课程,名字叫做编辑器之神vim-从入门到精通,进行自我提升。最好就是下载gvim到电脑上操练。遇到不同的就百度查询,用笔记记住命令。。比如折叠代码,快速注释代码块,本文件查找代码,替换功能,显示文件树,切换Tab栏,对vue文件语法高亮,弹出代码提示,复制粘贴,切换模式,快速选择区,快速删除,快速复制,重复上一个命令,添加标注和跳到某一个标注等等。用好这些命令,就可以应付前端工作上的代码编辑了。我把全局文件查找和替换和跑项目,函数名跳转交给了vscode,写起代码来就是开激光枪,噔噔噔,完美!!!
vim的特点
定位
快速定位--同一个文件
- 向上,向下翻页
Ctrl +d
向下翻页Ctrl +u
向上翻页 按住不放就是莎莎莎的下来或者向上。 - 跳到特定的某一行
平时写代码的时候,报错了,会有提示到那一行,比如50行。输入:50
回车带那一行。比起鼠标滚轮快多了。 - 文尾文首
命令模式下,输入gg,跳到文首;输入G跳到文尾。都是瞬间的事。 - 添加标注,跳到某标注
写代码的时候,我们有时需要在两个或者多个地方来回撤换,不断的换和看逻辑,命名等等。m1
ma
就可以添加标注1和a,` +1就可以跳到1标注。反正一个代码文件你添加多少个标注都可以。任你愉快的跳转。 - 命令模式下,hjkl分别是向左下上右移动光标。
快速定位--不同文件
- 这个应该是可以安装插件来实现。不建议用插件,因为记得东西又多了一层,尽量选择使用无插件的Vim。我平时就是使用Vim自带的
:Te
来打开文件树,通过文件树上下来打开不同的文件。等你用Te打开多几次文件,你会发现你多项目的结构变得越来越熟悉。gt是向右切换标签页,gT是向左切换标签页。5gt就是跳到当前打开标签页的第五个,如果没有第五个,就没效果。同理15gt跳到15标签页。 - 函数名跳转
交给vscode,懒得安装插件。 - 项目全局搜索和全局替换
交给vscode,安装插件要折腾,时间成本也高,还要学那个插件。跑项目也在vscode里面跑。对,累死vscode。
几种模式--最关键
vim有命令模式,插入模式,可视模式。可以快速选择单个字母,单词,一行,多行,任意一个小块,四方形等等进行复制,粘贴,删除,只有你想不到,没有你做不到。就是这么任性。
插入模式就是平常那种编辑器的模式,没什么好说的。
下面主要是命令模式
光标移动
把光标移动到某一字母或者单词或者行,hjkl,是左下上右快速移动光标,结合上方的翻页快捷键,就是快速移动。w是每字母向前移动,b是每字母后退移动。6h,6j,6k, 6l 看看会发生什么,就是等于按了6次移动光标的方向键,光标瞬间移动6行;60,600,6000等数值都支持,爽啊。
删除
删除一行 dd 删了,说起删除一行,以前我用vscode,ctrl + d就是删除一行,后来我在上一家公司用了webstorm,这个功能没了,一直想用用不到,憋了大半年。
删除一个单词 diw 删除一大串字符串 diW 删除某个字母 x
删除多行 按V进入可视行模式下选择多行,按d
删除想删的 按v进入可视模式 选择内容,按d
前端的同学写代码,一定会接触标签。那我问一下,如果一个form里面很多字段,里面的代码有100行,我让你删除一百行,你会怎么做?第一就是手动用鼠标拖着带滚轮小心地选中那一百行,按删除键。要不就是收起折叠选中在删。如果用vim的话,我可以告诉你,很快,光标移动form标签上,dit或者dat就可以了。压根不用怕删错一行无辜的代码。
删除一对符号的内容 di该符号或者da该符号
复制
y复制某一个字母
yiw 复制一个单词
复制一行或者多行 V进入可视行模式,选中一行或者多行,y
复制一个标签的内容 yit或者yat
复制一对符号的内容 yi该符号或者ya该符号
粘贴
p或者P一个向前粘贴一个向后粘贴
5p 就是一下子粘贴5次内容,有时候写form表单每一项的Item就是需要这样子的粘贴。
提示,vim 和系统的粘贴板是分开的,用的是不同的寄存器,可以按照插件,或者引入vim文件解决一下,让它俩统一。
查找和替换(同一文件内)
查找就是按下 / +关键词,回车,按n 快速定位关键词所在的位置。
替换:%s/旧内容/新内容/g
指定特定的行: :5,15s/dog/cat/g 指定替换第五行到第15行的;就是以前有个老师课上给我讲过:vscode里面有个选中一个单词,然后按住ctrl + d多次,滴滴滴滴,就可以往下选中相同的单词,批量修改。没想到vim这种更快的比它快多了。
格式化代码
可视行模式选中要格式化的代码,按=。简单粗暴。
那个vscode记得是要同时按三个键,我想笑了。webstorm也要按2个键,想想都笑了。
注释
代码可以写得丑,但是注释不能省,合理的注释让自己和别人方便,否则以后没有人看的懂你的代码,是永远永远。vim怎么注释呢?vscode里面注释很简单,ctrl / 就可以快速加上。
vim 注释javascript ctrl v 进入可视块模式,j或者k选中多行, 按 I 输入 // 就可以了。
注释 html 在需要注释的那一块第一行,行首插入
注释 css 和注释html 一样,只不过插入的是 /* 和 */
这也是没办法的事了,为了可以快速的用vim编辑,也只有接受它的缺点。
多行插入
有时候,写代码的时候,需要在相邻的多行的同一个位置插入相同的代码,这时候,vim的多行插入就起到很大的作用了。ctrl v
进入可视块模式,j或者k选中多行,h和l移动到你需要的x位置,按大写的I进入插入模式,然后就是改代码。其实上面说的注释就是类似的操作。
缩进
再也不是tab
缩进了,而是<
和>
掌管了缩进和反缩进;选中所需要的代码行,就可以反缩进/缩进操作了。缩进后可以结合.
来重复上一个操作,快速多次缩进。
皮肤,颜色
在vim的配置文件vimrc 下加入相关的代码,百度上一堆,想什么皮肤,背景色,字号,高亮颜色,行号颜色,是否显示行号等等,都可以设置,我Github的一个仓库就有写好的配置。配了好久了。
在vimrc中指定一个皮肤vim文件,就可以快速得到该皮肤,这类的皮肤文件Github上一搜一大堆,我用的是molokai,你看看你用webstorm能有几种皮肤方案给你选?
界面
用vim的话我可以把界面调的和屏幕一样大。vscode有菜单栏,侧边栏,shell,可编辑区就变得小。我上一家公司公司的同事为了看到更多的代码,就把字体设置的比较小。这货不要眼睛啊……用 vim我就不一样了,编辑区几乎和屏幕一样大,字体还是那么大,看起代码来,爽得一匹。
look, 全屏
代码提示--缺点
代码提示没有vscode的多和全,我也不强求了,一般是按ctrl x和ctrl n出现提示,有的话就选,没有的话实在忘记了就到百度和官网上面找。一来可以提高搜索能力,二来熟悉一下技术官网。反正就是代码提示可以用ctrl c + ctrl v解决。
插件可以解决,一个插件叫autocomplete,可以帮你解决前端大多数的代码提示。但是我还是提醒尽量不要用那么多插件,能不用就不用。
有记忆
项目打开过一次,退出了,下次进去光标出现在每一个文件上次退出时的位置。其它编辑器没有这个功能。
项目再次打开,按撤销键,文件会变化一或者多次次,就是会退一或多次。因为在vimrc文件做了undir文件设置。这也是其他编辑器没有的功能。
软件内存小36m
软件就10多M,加上其他配置,插件就36M,这么多功能的情况下内存算小的了。
适合哪些人
适用于程序员,作家,写博客的人,小编,微博上的大v。只要是写代码或者写字,都是特别适用的,保证让你爱不释手。苹果系统,window 系统,Linux系统,都是通杀的。记得大学那会学嵌入式就是用的Linux下的vim,那会感觉这个编辑器无法用鼠标移动光标,压根无法适用,特别讨厌。现在看来是自己年幼无知,不是魁宝啊。以后不怕Linux系统了。
配合autohotkey使用
可以使用autohotkey把 caps lock 键改为 esc,这样子由插入模式变化到正常模式,按 caps lock 就可以了,大大提高效率。
autohotkey还可以在插入模式做出一些vim编辑器的效果,比如鼠标上下左右移动,按单词移动光标,快速删除一行,向上向下翻页,快速移动到文首,文尾等等,减少了插入模式和正常模式的切换次数,从而提高效率。
自己对vim的评价
1980年代的编辑器,至今流行,经得起时光考验的编辑器之神。像那些IDEA或者vscode,用几年了,出现一个更好用的新的替代物,又要换和学习,几年的使用习惯要抛弃。而vim却没有这样的烦恼,不愧是程序猿,作家,博客家的屠龙刀或者冲锋枪。虽然它有上述的缺点,挡不住它闪闪发光的优点,我个人是爱不释手滴。写代码我会永远永远用vim,写博客用vim或者简书呗,用简书是因为备份好,文字不容易失去(记得今年4月份我写了2个晚上的文字失去,还有上个月写了6个小时的文字失去,那种心情只有博客家才可以深刻理解);电脑,安卓,iOS都可以使用,想写就写,随想随写。
用vim有什么收获
用vim了之后,使用编辑器的思维方式和习惯都是大改了,效率一开始是很慢,比以前慢,让你想放弃,好想吐;但是熬过差不多半个月一个月之后,你就会发现效率快速提高,你的速度和用vscode可以持平,甚至速度提高10%。用了一年几年,写代码打字的速度至少提高50%,因为你的光标可以随思维而快速定位。你几乎可以不用鼠标,除了撤换软件,比如有编辑器撤换到浏览器。再说你几乎再也不用怕什么linux系统。效率提高,时间就省下来了。
vim的无插件操作(推荐)
vim无插件操作
我的vim配置
我的vim配置
最后,欢迎关注我的公众号。