在Linux中有一个很重要的编译器那就是vim。vi和vim作为文本编译器,在定位上和记事本没有区别。我们可以输入指令vim code.c,就会创造出一个mycode.c的文件,并在这个文件里面进行编写代码。
如上图是code.c的文件,还没有进行任何代码编写,在vim中我们认为主要是有三种编译模式分别是1.命令模式 2.底行模式 3.插入模式。在输入vim code.c后,进入的第一个模式默认为是命令模式,如上图中出现的NORMAL标志着现在是命令模式,在VIM中将1.命令模式转变为插入模式我们只需要在键盘上面输入i就行了。
如上图是输入了i,很明显vim下面出现了INSERT(插入模式),在插入模式下我们可以按想平常记事本一样随意进行编写,这也是平常写代码的模式,在这个模式下也没什么需要注意的。要想从插入模式中退出成为命令模式只用按esc键就可以了,在又重回命令模式之后需要进入底行模式按“shift键+":"键”。
如上图,底行模式中下面会出现:,并且是(COMMAND)底行模式。在底行模式中按esc键一样可以退出到NORMAL命令模式,值得注意的是(COMMAND)底行模式不能直接转变为(INSERT)插入模式 ,同时INSERT也不可以直接转别成为COMMAND,这两种模式都需要借助NORAML来过度,可以把NORMAL看作是一个桥梁来连接三种模式的相互转换。
上面了解之后想要退出VIM应该怎么办呢?首先我们先要进入到COMMAN模式下,在底下输入q就可以了,但是平常我们在编译完成后一般输入wq就是保存并退出,但是有时候不能正常退出可以加上!,!起到的作用是强制执行,也就是说进行强制退出,写成q!。
上面了解完了之后,现在开始了解NORMAL(命令模式)中的各种命令,首先我们先在INSERT中编写一个简单的hello vim程序。
在shell中对code.c文件执行gcc命令后生成a.out文件,执行之后可以看到是可以正常输入hello vim的,没有问题,这很简单就不多说,下面开始讲NORMAL模式中的命令,值得注意的是vim中鼠标没用。
1.gg命令,可以直接将光标跳转到起始行
可以看到确实是直接跳转到第一个#
2.shift+g,同时按shift和g这两个键,可以将光标跳转到结束行的最后一个字符.
3.w和b这两个键,按住w键可以进行以单词为单位的跳转,这可比以单个字母跳转快多了。b键和w键相反也就是以单词为单位进行后退。
4.yy命令,按yy,就是我们平常的复制键,nyy就是以当前光标下,n默认是1,当n是2时也就是2yy就是复制当前光标的那一行+下一行也很简单。
5.p命令,p就是平常用的粘贴,那复制粘贴呢,就是yyp,也很简单对吧,先按yy,再p一下就是复制一行,再按一次p就是再复制一行。
6.dd命令,dd其实就是剪的命令,一次dd就是删除当前光标的所在行,但是如果dd再p呢?就是实现剪切的功能,同时nddp也是可以的,dd删除的是一整行哦。ddp实现剪切。
7.“shift+~”,shift后面跟一个~是可以把大写字母改成小写很形象吧哈哈哈哈。
8.x命令,单按x键可以进行光标之后的删除,注意shift+x可以向前删除。
9.r命令,单按r键可以在命令模式下直接进行修改,但是只能修改一个字符,shift+r就可以直接进行修改了,但是修改完了之后记得按esc键退回NORAML。
10.nG命令,也就是进行行号的跳转,例如5G就是光标直接跳转到第五行,值得注意的是必须后面跟着G,g是不可以的。
以上10条命令是NORMAL中的一些基础命令,下面介绍COMMAND底行模式中的一些命令:
1.set nu:调出行号
2.set nonu:不显示行号
3.多文件操作,下面可以看到有两个文件分别是code.c和test.c如果要进行同时操作这两个文件应该怎么办呢?
进入底行模式并且在下面输入vs+文件名,可以很明显看到1.code.c 2.test.c分别对应左右两个文件,要想操作这两个文件可以按住ctrl+ww,光标就可以在两个文件中来回跳转,这样就可以同时进行两个文件的操作了。
最后,以上的VIM界面的截图都是我经过配置之后的才有的样子,原生态VIM是没有的,vim经过配置后只会影响到自己,不会影响别人,如何配置各位自己探寻吧。
以上就是VIM初识的全部内容了。