一文搞定vim,从安装到入门到精通

  • NO.1 闲聊
  • NO.2 安装(不是重点!觉得这部分讲的不清楚可以去找一篇win下安装vim的文章来看,然后跳去NO.3接着看)
  • NO3. 文章核心重点-vim使用,开始实战!
    • 正常模式 (Normal-mode)
      • 控制光标
        • 光标右移,键位`l`
        • 光标左移,键位`h`
        • 光标下移,键位`j`
        • 光标上移,键位`k`
    • 可视模式 (Visual-mode)
      • 总结一下。
        • 正常模式进入方式:`esc`或者`control + [`
        • 可视模式进入方式:正常模式下按`v`
        • 删除`d`
        • 撤销`u`
        • 有撤销就有回滚,回滚是`ctrl+r`
        • 复制`y`
        • 粘贴`p`
        • 剪切`d`
      • 总结一下:上下左右,选中单词,复制粘贴,剪切,撤销我们都有了。
    • 插入模式 (Insert-mode)
      • 进入插入模式六个键位`i,I,a,A,o,O,s,S`
        • 最常用`i`
        • 插入`I`
        • 插入`A`
        • 插入`o`
        • 插入`O`(大写O)
        • 插入`s`
        • 插入`S`
        • 这样,可以说小成了,读写,插入文本,选中单词复制粘贴,剪切删除,撤销回滚,我们都会了,已经可以做文件编辑工作了,最后一个问题只剩下保存了。
    • 命令模式 (Command-mode)
      • 不保存退出`:q`,退不掉就按`:q!`强行退!
      • 保存退出`:wq`
      • 入门成功,想一想,对文件的写,读,复制粘贴,撤销回滚,剪切删除,选中单词,移动光标,保存文件,退出vim,vim四种模式切换,你是不是都会了!这样,你使用vim就如使用正常的可以用鼠标的文本编辑器一样了!
  • NO.4 vim可不是如此笨拙,既然看到这里了,你已经是半个大佬,来进阶一下吧!
    • 首先,文件多开
      • 开启两个文件,hello.c,hello.go
      • 进入命令模式,写下`ls`
      • 多文件编写,分裂窗口
        • 上下分割,先按`Ctrl + w`,再按一下`s`
        • 左右分割,先按`Ctrl + w`,再按一下`v`
        • 光标跳跃,先按`Ctrl + w`,之后,还记得我们的上下左右吗?
        • 在这个黑漆漆的窗口宇宙里,不要失去你的方向感。
        • 去右边,先按`Ctrl + w`,然后`l`
        • 去左边,先按`Ctrl + w`,然后`h`
        • 去下边,先按`Ctrl + w`,然后`j`
        • 去右边,先按`Ctrl + w`,然后`k`
        • 现在,你可以跨窗口编辑东西了。
    • 最后说一下搜索
      • 开启搜索高亮,回到正常模式,然后`:set hls`
      • 这里要提一下,命令模式的进入方式不止`:`,还有`/`
      • 关闭高亮,`:noh`
        • 你按下`n`,就会跳到下一个匹配`/`后面字符的地方
        • 我们的`/`同样支持正则表达式
      • 分屏,搜索查找,编辑文本,你都会了,它已经和一个正常的,还需要鼠标的文本编辑器大同小异了,这样,无论你被丢到哪个操纵系统里,借助vim都可以让你改造一切文件,而且你不需要鼠标,你只需要一个键盘。
  • NO.5 总结
    • 你在我的这一篇小文章里,已经学会了什么呢?回忆一下,使用vim打开文件,选中单词,切换模式,复制粘贴,剪切复制,窗口多开,搜索文字,改变vim的样式。你已经可以像正常使用普通文本编辑器一样使用vim了~
    • 最后,总结一遍,说一下我们的命令:
      • 光标右移,键位`l`
      • 光标左移,键位`h`
      • 光标下移,键位`j`
      • 光标上移,键位`k`
      • 正常模式进入方式:`esc`或者`control + [`
      • 可视模式进入方式:正常模式下按`v`
      • 删除`d`
      • 撤销`u`
      • 回滚`ctrl+r`
      • 复制`y`
      • 粘贴`p`
      • 剪切`d`
      • 进入插入模式六个键位`i,I,a,A,o,O,s,S`
      • 最常用`i`
      • 不保存退出`:q`
      • 强制不保存退出`:q!`
      • 保存退出`:wq`
      • 开启两个文件,`vim file1,file2`
      • 打开缓冲区`:ls`
      • 上下分割窗口,先按`Ctrl + w`,再按一下`s`
      • 左右分割窗口,先按`Ctrl + w`,再按一下`v`
      • 光标跳跃窗口去右边,先按`Ctrl + w`,然后`l`
      • 光标跳跃窗口去左边,先按`Ctrl + w`,然后`h`
      • 光标跳跃窗口去下边,先按`Ctrl + w`,然后`j`
      • 光标跳跃窗口去右边,先按`Ctrl + w`,然后`k`
      • 开启搜索高亮,回到正常模式,然后`:set hls`
      • 搜索`/搜索内容`
      • 关闭高亮`:noh`
      • 跳到下一个搜索`n`
      • 搜索+正则表达式示例(找到文件所有数字)`/[1-9]`

NO.1 闲聊


自1984年,乔布斯带领的苹果公司发布了麦金塔系统以后。电脑操作从命令的方式进化到了图形的方式,然而,我们作为开发者,必然要返璞归真,也必然明白所有的图形都只是对命令的封装。


vim是一个图形化时代的特立独行,作为不依靠鼠标,纯命令编辑文本的编辑器,它占据了所有的Linux系统,开发人员几乎不可能不接触vim。本文讲从安装开始讲,一直讲完基本的vim的使用方法,操作系统使用Windows,因为win作为当今地球上最普遍的操作系统,可以让大部分人都可以通过本文学会vim,学会win下vim的使用,它的命令和Linux是完全一致的,你就也可以顺便打通Linux,macOS下的vim的使用方法。如果你爱上了vim,我想即便在Windows下再也不需要Notepad++,亦或者sublime text等各种文本编辑器。这一篇的学习如果你能坚持看完,我想它给你带来的收获是前所未有。
这一篇文章看完加学会大概需要耗费你一小时,一小时可以学会使用vim,应该是相当划算的。本人为了写好这一篇内容,参考了两篇文章,一篇来自zempty这位大佬的精通 VIM ,此文就够了。另一篇是卢钧轶所写的史上最全Vim快捷键键位图 – 入门到进阶。这一篇的内容可以看作精通 VIM ,此文就够了的展开详解版,因为我会把所有的命令快捷键都截屏展示,知识骨架和精通 VIM ,此文就够了也相差不多,本人是在昨天晚上花了大约一小时通过看精通 VIM ,此文就够了,学会使用vim的,本文将进一步总结精通 VIM ,此文就够了,全文线性结构,从上往下阅读即可。



这一张键位图,每个学习vim的人基本都会看到,然而不会vim的人是没法看的,乍一看一头雾水,这一张图我不会讲的,仅供大家参考,因此下文,将由浅入深,从基本的安装开始讲,力求讲透,大家尽可放心。


NO.2 安装(不是重点!觉得这部分讲的不清楚可以去找一篇win下安装vim的文章来看,然后跳去NO.3接着看)

Linux是自带vi的,有的甚至自带vim。因此Linux就不讲了,下面讲一下win系统的vim怎么安装。

本人的vim如图。


首先,你去GitHub的vim开源项目下载它。下载最新版即可。



在Assets目录里,你可以看到.exe安装程序,.zip安装等等。本人推荐第二个,一方面这种解压安装的方式和Linux更相近,另一方面你解压后放到任何你想放的文件夹下你直接就可以用,而且删除也很方便,不需要卸载,只需要丢到回收站即可。

解压后,你会得到一个类似的文件夹。


再说一遍,安装方式,下载解压即可!


展示一下解压完后的文件夹目录。



我们主要打交道的东西,其实就是这两个。



gvim是半图形化半命令行的,你可以当作vim学习的过渡产品,而vim则是真正的纯命令,它和Linux下的vim完全一致,这将是我们最终要攻破学习的高山!


配置环境变量

在这里,填一下你刚刚解压完的路径就可以。

这样,你就可以随处启动gvim和vim了。使用快捷键win+r开启这个运行窗口,你也可以像启动Java或者mvn,node等等那样,直接cmd里调用vim。启动vim就写vim,启动gvim就写gvim。

下面是几种启动方式的图片演示。




等一下,你是不是觉得gvim丑爆了。这个是可以配置的。去你的vim安装路径。

这个路径往下再点一下就是目录了,在这里创建一个叫_gvimrc的文件。


记住,没有后缀名,不是_gvimrc.txt或者什么东西,就叫_gvimrc,用记事本,Notepad++,或者vim,随便你用什么打开它,写进去set guifont=Microsoft_YaHei_Mono:h12,不生效请往下看,我会讲。

这个配置文件是约定大于配置的,类似于Spring Boot的配置,因此你只把你想改的东西写进去就行,写什么改变什么,不写就不改变,具体可以自行查阅,我在这里就只修改font,就是字体的字型和大小,其中set guifont=Microsoft_YaHei_Mono:h12中,set guifont是指令,=后面跟内容,Microsoft_YaHei_Mono是字体名称,Microsoft_YaHei_Mono是我很喜欢的一种字体,win电脑自带是没有是,是微软专门为命令行开发的字体,大家可以自行百度下载,也可以放上自己想用的字体。

如下有些是微软自带的字体,你把字体名字改了,改成你电脑有的并且支持命令行的字体就可以生效,然后h12是字体大小,我设置了12。附一个Microsoft_YaHei_Mono的下载链接,下载Microsoft YaHei Mono,我的是收费的,想要免费的可以自己百度去找。安装字体就不讲了,设置完再打开gvim就是这个样子。
还有,这个不是重点!!!我们重点是学习vim,gvim你不想设置,并无关系,后面的文章我都会用vim演示,gvim不是重点!实在想钻研,也可以参考这一篇博客园gVim设置默认主题和字体(图文详细版)。

哪怕gvim你搞不定,只要这个vim你搞定,能出来这个就可以,无论是centOS或者Ubuntu等等,你接触的vim其实都是这个!

后面你可以用gvim来编辑文件,也可以用vim来编辑文件,安装到此就讲解完毕了,可以一起帮助乌干达的可怜儿童了。

NO3. 文章核心重点-vim使用,开始实战!

先大致介绍一下vim的结构,vim分缓冲区(Buffer)和窗口 (Window ) 。

暂时不用跟着操作,先看一眼。
我们第一眼看到的就是窗口,所有的文件编辑也是在窗口进行。
在正常模式下,先按一下:,紧接着输入ls,回车,你就可以看到缓冲区。


按回车后



gvim如此,vim同样如此。


然后我们要明白,vim有四种模式:

正常模式 (Normal-mode)
插入模式 (Insert-mode)
命令模式 (Command-mode)
可视模式 (Visual-mode)

下文逐一讲解。

正常模式 (Normal-mode)

下面请跟着操作,我们先开启vim,进去你要编辑文件的文件夹下,输入

cmd C:\Users\Peter\Desktop\study\vim

总之,在cmd开启这个文件夹即可,就如同你Linux进入了一个文件夹。


对了,你可以先创建这两个文件,代码如下:

#include <stdio.h>
int main()
{printf("Hello, World!");return 0;
}
package mainimport "fmt"func main() {  fmt.Println("Hello World")
}

然后cmd输入指令

vim hello.c hello.go

你也可以

gvim hello.c hello.go

gvim对初学者更友好一点,我们就直接一步到位演示vim了,不论你用gvim或者vim,下面内容都是一样的,放心食用。



刚进来这个模式就是正常模式,无论你进入那个模式,狂按esc或者是快捷键control + [,就会退到正常模式,我们先说正常模式,个人更喜欢control + [
我们暂时不考虑其余三种模式,我们先玩正常模式,我们编辑文件,毫无疑问,剪切,删除,复制,粘贴必不可少,没有了鼠标,如何控制光标也是个问题,我们就先从控制光标说起。

控制光标

毫无疑问,你会发现鼠标也可以点光标,这种我们就不说了,有些环境是没有鼠标的,这个太常规了,然后键盘上下左右按钮也能控制光标移动,这个也不说。下面说的方法,无论你不小心进入四种模式任何一个都可以用。

光标右移,键位l

光标左移,键位h

光标下移,键位j

光标上移,键位k

好的,方向感记住,上下左右对应kjhl,和你打游戏记住wsad一样,有了这个方向感,就可以往下玩了。

下一个问题,怎么选中一个单词?这个时候我们要进入可视模式 (Visual-mode)了,后文我们将在这四种模式里来回跳跃,每一次变模式我都会说一声,大家跟上!现在我们正处在正常模式,按一下v,进入可视模式 (Visual-mode)。

可视模式 (Visual-mode)

再说一遍,可视模式进入方法,正常模式下按v。不是正常模式你就先回正常模式,按esc或者control + [,退回正常模式。

总结一下。

正常模式进入方式:esc或者control + [

可视模式进入方式:正常模式下按v


然后用我们的上下左右hjkl键移动光标,这时候你会发现你移动到哪里,就选择到了哪里。
如图,return这个单词被我选中了。

下面对这个单词做操作。

删除d


消失不见了。

撤销u


又回来了,撤销键很常用吧。

有撤销就有回滚,回滚是ctrl+r

回滚一下,撤销一下,大家自己试一试效果。

然后再按下v进入可视模式,然后hjkl这样,你想办法移动光标选中我们的单词。按一下y就会复制了。

复制y


已经复制下来了。

粘贴p

剪切d

是的,剪切还是我们的d,删除的同时会复制一份到我们的vim剪贴板。

总结一下:上下左右,选中单词,复制粘贴,剪切,撤销我们都有了。

想一下,这样你是不是就可以像用记事本一样,能粘贴复制删除撤销,这样我们编辑处理文本大概的功能都有了。然后我们要开始编辑文本了,对不对?那就是增删改查的增,输入。下面我们开始讲怎么输入。

插入模式 (Insert-mode)

下面,退回到你的正常模式,再说最后一遍,按esc,或者ctrl+[

进入插入模式六个键位i,I,a,A,o,O,s,S

最常用i

光标所在的字符之前插入需要录入的文本。

插入I

请记住,每次输入这六个键位前,请先回退到正常模式。

插入a

a 是在光标所在的字符之后插入需要录入的文本。

插入A

A 是在光标所在行的行尾插入需要录入的文本。

插入o

o 是光标所在行的下一行行首插入需要录入的文本。

插入O(大写O)

O 是光标所在行的上一行行首插入需要录入的文本。

插入s

s 删除光标所在处的字符然后插入需要录入的文本。

插入S

S 删除光标所在行,在当前行的行首开始插入需要录入的文本。

后面几个大家自己试一试。

这样,可以说小成了,读写,插入文本,选中单词复制粘贴,剪切删除,撤销回滚,我们都会了,已经可以做文件编辑工作了,最后一个问题只剩下保存了。

讲最后一种模式。

命令模式 (Command-mode)

这个模式依旧是从正常模式去进,按下:,就进来了,带着:的就是命令模式。

大家都知道这个,很多人会写错东西,都会按:q赶紧不保存退掉,防止改坏文件,毕竟新生+vim=随机字符生成器,现在不必了,写错了,记得狂按u撤销你的错误操作就行了,因此不保存退出只说一下,就不演示了。

不保存退出:q,退不掉就按:q!强行退!

保存退出:wq


因为我们刚刚打开了两个文件,它会提示你还有一个文件没保存,就是hello.go那个,没关系,我们先不管,再按一下回车,再输一下:wq,保存退出即可。


我编写的东西已经有了。到此,恭喜你,已经入门了。

入门成功,想一想,对文件的写,读,复制粘贴,撤销回滚,剪切删除,选中单词,移动光标,保存文件,退出vim,vim四种模式切换,你是不是都会了!这样,你使用vim就如使用正常的可以用鼠标的文本编辑器一样了!

NO.4 vim可不是如此笨拙,既然看到这里了,你已经是半个大佬,来进阶一下吧!

vim实际上,熟练后是一个非常高效的编辑器,因为快捷键就是比鼠标快,脱离鼠标的编辑器就是要超过离不开鼠标的编辑器!下面说说怎么提高复制粘贴,移动光标,撤销回滚,高亮查找等等。

首先,文件多开

开启两个文件,hello.c,hello.go

vim hello.c hello.go

进入命令模式,写下ls

ls是Linux一个非常常用的命令,熟悉Linux的朋友一定倍感亲切。记得ls写到:后面。


你已经进入缓冲区,可以看到文件编号,hello.c的编号是1,hello.go的编号是2,那么,继续按:(不必回到正常模式)

输入:b1,就会切换到hello.c,输入:b2,就会切换到hello.go。

下面这个我输了:b2,进入了hello.go文件。

多文件编写,分裂窗口

上下分割,先按Ctrl + w,再按一下s

左右分割,先按Ctrl + w,再按一下v


你可以看到你的光标在哪个窗口,让光标跳到别的窗口的方法是:

光标跳跃,先按Ctrl + w,之后,还记得我们的上下左右吗?

在这个黑漆漆的窗口宇宙里,不要失去你的方向感。

去右边,先按Ctrl + w,然后l

去左边,先按Ctrl + w,然后h

去下边,先按Ctrl + w,然后j

去右边,先按Ctrl + w,然后k

现在,你可以跨窗口编辑东西了。

最后说一下搜索

开启搜索高亮,回到正常模式,然后:set hls

vim是命令可以操纵一切的,你就是黑色框框里面的上帝。:set hls这是一个操纵vim本身样子的指令。

这里要提一下,命令模式的进入方式不止:,还有/


/后面就写你要搜的东西,他就会高亮显示出来。如/i

关闭高亮,:noh



都不亮了。

你按下n,就会跳到下一个匹配/后面字符的地方

我们的/同样支持正则表达式

分屏,搜索查找,编辑文本,你都会了,它已经和一个正常的,还需要鼠标的文本编辑器大同小异了,这样,无论你被丢到哪个操纵系统里,借助vim都可以让你改造一切文件,而且你不需要鼠标,你只需要一个键盘。

NO.5 总结

你在我的这一篇小文章里,已经学会了什么呢?回忆一下,使用vim打开文件,选中单词,切换模式,复制粘贴,剪切复制,窗口多开,搜索文字,改变vim的样式。你已经可以像正常使用普通文本编辑器一样使用vim了~

更多的特殊用法。
可以参考菜鸟教程vim 菜鸟教程。
或者是我学习vim时阅读的这一篇精通 VIM ,此文就够了。
后面你还需要会什么呢?例如快速移动光标,跳段尾段首,行尾行首,跳指定行,多行复制删除,宏录制等等。vim支持多种语言,也可以安装插件,其强大程度不弱于一个IDE,实际上vim官方一直也认为自己不仅仅是一个文本编辑器那么简单~

最后,总结一遍,说一下我们的命令:

光标右移,键位l

光标左移,键位h

光标下移,键位j

光标上移,键位k

正常模式进入方式:esc或者control + [

可视模式进入方式:正常模式下按v

删除d

撤销u

回滚ctrl+r

复制y

粘贴p

剪切d

进入插入模式六个键位i,I,a,A,o,O,s,S

最常用i

不保存退出:q

强制不保存退出:q!

保存退出:wq

开启两个文件,vim file1,file2

打开缓冲区:ls

上下分割窗口,先按Ctrl + w,再按一下s

左右分割窗口,先按Ctrl + w,再按一下v

光标跳跃窗口去右边,先按Ctrl + w,然后l

光标跳跃窗口去左边,先按Ctrl + w,然后h

光标跳跃窗口去下边,先按Ctrl + w,然后j

光标跳跃窗口去右边,先按Ctrl + w,然后k

开启搜索高亮,回到正常模式,然后:set hls

搜索/搜索内容

关闭高亮:noh

跳到下一个搜索n

搜索+正则表达式示例(找到文件所有数字)/[1-9]

一文搞定vim,从安装到入门到精通,助你成功入门vim相关推荐

  1. 一文搞定Nginx的安装与高可用配置

    一.Nginx安装 1.去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本 2.上传nginx到linux系统 3.安装依赖环境 (1)安装gcc环境 yum insta ...

  2. 一文搞定Centos7.x安装ELK的7.6.2版本以及Cerebro集群监控

    编程界的小学生 一.Centos7安装Elasticsearch7.6.2 1.下载 2.安装 3.进行配置 3.1.修改elasticsearch.yml 3.2.修改jvm参数 3.3.修改sys ...

  3. 一文搞定Qt读写excel以及qt读写xml数据

    一文搞定Qt读写excel以及qt读写xml数据 最终的实现效果图 RC_ICONS = logo.ico .pro文件同级目录下加入 logo.ico 图标文件,运行文件,文件的图标就被写入软件 u ...

  4. 【嵌入式开发-AD19】六文搞定Altium Designer-第一章:AD介绍及原理图库的创建

    [嵌入式开发-AD19]六文搞定Altium Designer-第一章:AD介绍及原理图库的创建 在文章的开头我想首先简单介绍一下国产全免费EDA软件,嘉立创EDA.嘉立创EDA拥有网页版和安装版两种 ...

  5. 【量化交易行情不够快?】一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写

    一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写 前言 一.准备环境分四步 1.1 给Win10装wsl2 硬件开启虚拟化 软件开启虚拟化及安装适用于Li ...

  6. php带参数单元测试_一文搞定单元测试核心概念

    基础概念 单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类.单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被 ...

  7. 【Python基础】一文搞定pandas的数据合并

    作者:来源于读者投稿 出品:Python数据之道 一文搞定pandas的数据合并 在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能 ...

  8. 一文搞定Swing和Qt按钮和文本框的创建

    一文搞定Swing和Qt按钮和文本框的创建 Qt的截图 java的 源码 package com.lujun;import java.awt.Container;import javax.swing. ...

  9. 一文搞定C#关于NPOI类库的使用读写Excel以及io流文件的写出

    一文搞定C#关于NPOI类库的使用读写Excel以及io流文件的写出 今天我们使用NPOI类库读写xlsx文件, 最终实现的效果如图所示 从太平洋官网下载相应的类库,大概4~5MB,不要从github ...

最新文章

  1. xp http文件服务器,在XP sp3下用IIS搭建http服务器总结
  2. Adebe CC 2020中文版
  3. Spring-Cloud中的网关
  4. builtins.ModuleNotFoundError: No module named ‘’scrapy.contrib‘’
  5. WPF GridControl控件的用法举例
  6. turtlebot3入门教程
  7. Zabbix监控Oracle 连接数
  8. 03_部署并访问项目,处理404,500(servlet+java bean+jsp的商城教程)
  9. 编译LibreELEC.tv,报错: ld -lz can not find -lz,原来是zlib-1.2.11没有交叉编译
  10. java 庖丁解牛_庖丁解牛 --JAVA 栈的实现
  11. 北京交通大学计算机考研906计算机专业基础初试经验分享北交大考研计算机
  12. STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)
  13. c语言用for或while计算,C语言趣味编程:使用while循环结构计算圆周率pi
  14. B BL BLX BX详解
  15. c语言中用temp程序,e__temp_c语言第02章作业.doc
  16. 【FinE】在险价值(VaR)计算
  17. GarsiaWachs算法
  18. oto餐饮app实时订单物流追踪系统架构设计(一)
  19. 短视频微信小程序界面
  20. RFID标签有哪些好处

热门文章

  1. Java将json字符串转list对象(亲测)
  2. 【vite+vue3.0】基于vite写一个将md文件渲染为js文件的插件
  3. 常用图像卷积核类型小结
  4. 绿盟给出了8大网络安全的定义
  5. NB-IOT联网通信
  6. 基于uml的大学图书馆图书信息管理系统设计实验_这里是汕头大学
  7. 使用mybatis框架分页插件报错### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax;
  8. ubuntu golang安装
  9. 【Java】用sort实现对数组的升序和降序排序
  10. 十大密码攻击及缓解措施