一文搞定vim,从安装到入门到精通,助你成功入门vim
一文搞定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相关推荐
- 一文搞定Nginx的安装与高可用配置
一.Nginx安装 1.去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本 2.上传nginx到linux系统 3.安装依赖环境 (1)安装gcc环境 yum insta ...
- 一文搞定Centos7.x安装ELK的7.6.2版本以及Cerebro集群监控
编程界的小学生 一.Centos7安装Elasticsearch7.6.2 1.下载 2.安装 3.进行配置 3.1.修改elasticsearch.yml 3.2.修改jvm参数 3.3.修改sys ...
- 一文搞定Qt读写excel以及qt读写xml数据
一文搞定Qt读写excel以及qt读写xml数据 最终的实现效果图 RC_ICONS = logo.ico .pro文件同级目录下加入 logo.ico 图标文件,运行文件,文件的图标就被写入软件 u ...
- 【嵌入式开发-AD19】六文搞定Altium Designer-第一章:AD介绍及原理图库的创建
[嵌入式开发-AD19]六文搞定Altium Designer-第一章:AD介绍及原理图库的创建 在文章的开头我想首先简单介绍一下国产全免费EDA软件,嘉立创EDA.嘉立创EDA拥有网页版和安装版两种 ...
- 【量化交易行情不够快?】一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写
一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写 前言 一.准备环境分四步 1.1 给Win10装wsl2 硬件开启虚拟化 软件开启虚拟化及安装适用于Li ...
- php带参数单元测试_一文搞定单元测试核心概念
基础概念 单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类.单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被 ...
- 【Python基础】一文搞定pandas的数据合并
作者:来源于读者投稿 出品:Python数据之道 一文搞定pandas的数据合并 在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能 ...
- 一文搞定Swing和Qt按钮和文本框的创建
一文搞定Swing和Qt按钮和文本框的创建 Qt的截图 java的 源码 package com.lujun;import java.awt.Container;import javax.swing. ...
- 一文搞定C#关于NPOI类库的使用读写Excel以及io流文件的写出
一文搞定C#关于NPOI类库的使用读写Excel以及io流文件的写出 今天我们使用NPOI类库读写xlsx文件, 最终实现的效果如图所示 从太平洋官网下载相应的类库,大概4~5MB,不要从github ...
最新文章
- xp http文件服务器,在XP sp3下用IIS搭建http服务器总结
- Adebe CC 2020中文版
- Spring-Cloud中的网关
- builtins.ModuleNotFoundError: No module named ‘’scrapy.contrib‘’
- WPF GridControl控件的用法举例
- turtlebot3入门教程
- Zabbix监控Oracle 连接数
- 03_部署并访问项目,处理404,500(servlet+java bean+jsp的商城教程)
- 编译LibreELEC.tv,报错: ld -lz can not find -lz,原来是zlib-1.2.11没有交叉编译
- java 庖丁解牛_庖丁解牛 --JAVA 栈的实现
- 北京交通大学计算机考研906计算机专业基础初试经验分享北交大考研计算机
- STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)
- c语言用for或while计算,C语言趣味编程:使用while循环结构计算圆周率pi
- B BL BLX BX详解
- c语言中用temp程序,e__temp_c语言第02章作业.doc
- 【FinE】在险价值(VaR)计算
- GarsiaWachs算法
- oto餐饮app实时订单物流追踪系统架构设计(一)
- 短视频微信小程序界面
- RFID标签有哪些好处
热门文章
- Java将json字符串转list对象(亲测)
- 【vite+vue3.0】基于vite写一个将md文件渲染为js文件的插件
- 常用图像卷积核类型小结
- 绿盟给出了8大网络安全的定义
- NB-IOT联网通信
- 基于uml的大学图书馆图书信息管理系统设计实验_这里是汕头大学
- 使用mybatis框架分页插件报错### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax;
- ubuntu golang安装
- 【Java】用sort实现对数组的升序和降序排序
- 十大密码攻击及缓解措施