vim编辑器的使用

目的

为什么写这个,为了总结一下vim编辑器的使用方法,命令,和过程,更有效的使用vim编辑器。同时,也可以帮助其他人和接触学习vim。

使用vim编辑器有一段时间了,坚持用vim编辑器是个了不起的事情。我学习vim编辑器是2019的4月份开始学vim编辑器,最开始是背一个vim的命令键盘图,背到熟,花了一周时间背熟。接着还用百度云盘搜到一个2小时的视频教学课程,名字叫做编辑器之神vim-从入门到精通,进行自我提升。最好就是下载gvim到电脑上操练。遇到不同的就百度查询,用笔记记住命令。。比如折叠代码,快速注释代码块,本文件查找代码,替换功能,显示文件树,切换Tab栏,对vue文件语法高亮,弹出代码提示,复制粘贴,切换模式,快速选择区,快速删除,快速复制,重复上一个命令,添加标注和跳到某一个标注等等。用好这些命令,就可以应付前端工作上的代码编辑了。我把全局文件查找和替换和跑项目,函数名跳转交给了vscode,写起代码来就是开激光枪,噔噔噔,完美!!!


vim编辑器的使用_第1张图片
vim_drill_small.jpg

vim的特点

定位

快速定位--同一个文件

  1. 向上,向下翻页
    Ctrl +d 向下翻页 Ctrl +u向上翻页 按住不放就是莎莎莎的下来或者向上。
  2. 跳到特定的某一行
    平时写代码的时候,报错了,会有提示到那一行,比如50行。输入:50回车带那一行。比起鼠标滚轮快多了。
  3. 文尾文首
    命令模式下,输入gg,跳到文首;输入G跳到文尾。都是瞬间的事。
  4. 添加标注,跳到某标注
    写代码的时候,我们有时需要在两个或者多个地方来回撤换,不断的换和看逻辑,命名等等。m1 ma就可以添加标注1和a,` +1就可以跳到1标注。反正一个代码文件你添加多少个标注都可以。任你愉快的跳转。
  5. 命令模式下,hjkl分别是向左下上右移动光标。

快速定位--不同文件

  1. 这个应该是可以安装插件来实现。不建议用插件,因为记得东西又多了一层,尽量选择使用无插件的Vim。我平时就是使用Vim自带的:Te来打开文件树,通过文件树上下来打开不同的文件。等你用Te打开多几次文件,你会发现你多项目的结构变得越来越熟悉。
    gt是向右切换标签页,gT是向左切换标签页。5gt就是跳到当前打开标签页的第五个,如果没有第五个,就没效果。同理15gt跳到15标签页。
"vim tab页显示序号
set guitablabel=%N:%M%t" Show tab numbers

再也不用数数了,直接想跳哪个标签页就哪个标签页。ngt的事情;可以支持20+tab页;

  1. 函数名跳转
    交给vscode,懒得安装插件。
  2. 项目全局搜索和全局替换
    交给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个键,想想都笑了。

宏的使用(后来加的)

宏其实就是把你一次或者多次修改代码的操作记录下来,实现多次的重复运行。改一个地方的代码,其他相似的地方需要同样的改动,这时候就可以用到宏了。
有时候编程需要多步简单重复的操作。比如编程枚举值的添加,就好像我在平安外包做的一个项目,进件证件类型需要大量的枚举值,后台给我的数据和我要的Json对象值不一致。这时候怎么办,如果是一个一个的修改,需要2到3小时,都是无脑的编辑步奏,很烦的,且容易出错。如果是使用vim的宏命令,15分钟就可以搞好,而且出错率低。(当然没法保证100%,因为后台的每一行的数据没法保证一模一样,如果是一模一样,就可以保证100%。)

按q+一个字母开始录制,再次按q就可以结束。运行宏就是@+该字母。也可以16+@+该字母,就是执行宏16次,很快速的实现自动写代码。哈哈。真的是自动写代码,那种感觉好神奇的。

//js   如果代码是这样的结构,特别适合使用宏
            merLicenseType, //可供选择的商户证件类型数据
            merLicenseType1, //可供选择的商户证件类型数据
            merLicenseType2, //可供选择的商户证件类型数据
            merLicenseType3, //可供选择的商户证件类型数据
            merLicenseType4, //可供选择的商户证件类型数据
            merLicenseType5, //可供选择的商户证件类型数据

注释

代码可以写得丑,但是注释不能省,合理的注释让自己和别人方便,否则以后没有人看的懂你的代码,是永远永远。vim怎么注释呢?vscode里面注释很简单,ctrl / 就可以快速加上。
vim 注释javascript ctrl v 进入可视块模式,j或者k选中多行, 按 I 输入 // 就可以了。
注释 html 在需要注释的那一块第一行,行首插入
注释 css 和注释html 一样,只不过插入的是 /* 和 */
这也是没办法的事了,为了可以快速的用vim编辑,也只有接受它的缺点。

多行插入

有时候,写代码的时候,需要在相邻的多行的同一个位置插入相同的代码,这时候,vim的多行插入就起到很大的作用了。ctrl v进入可视块模式,j或者k选中多行,h和l移动到你需要的x位置,按大写的I进入插入模式,然后就是改代码。其实上面说的注释就是类似的操作。

缩进

再也不是tab缩进了,而是<> 掌管了缩进和反缩进;选中所需要的代码行,就可以反缩进/缩进操作了。缩进后可以结合.来重复上一个操作,快速多次缩进。

文件对比

合并代码出错,写代码忘记写了哪些功能或者利用加密工具(md5或者sha1)生成的2个字符串需要对比的时候,就需要文件对比。我一直知道vim是有文件对比这个功能,然而很无视它。一直是用网页版的,突然有一个这个网页版的被公司内网禁用了,同事给我推荐Beyond Compare 4,好是好却需要安装破解。其实有个很好的方法,就是在同一个文件夹新建2个或者安放2个需要对比的文件,用vim打开其中一个,执行:diffsplit 第二个文件名+后缀。(执行':vert diffsplit 第二个文件名+后缀'就是水平2个窗口)就可以很容易的看到需要的效果。对于vim来说就是文件对比就是执行一个命令,不需要其他的(安装,下载或者外网),简单粗暴。

皮肤,颜色

在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编辑器的使用_第2张图片
279759ee3d6d55fb3f43e5ff6f224f4a21a4dd66.png

vim的无插件操作(推荐)
vim无插件操作

我的vim配置
我的vim配置

最后,欢迎关注我的公众号。

公众号二维码.jpg

你可能感兴趣的:(vim编辑器的使用)