一、开篇
vim是一个文本编辑器,在几乎所有的linux发行版中都有vi/vim编辑器,但是这个编辑器非常有特色,刚接触的时候在使用上可能会非常不习惯。
为什么在linux平台下,非要学习vim/vi,实际上并不是一定要,但是不学习vim/vi,似乎感觉就少了点linux平台下的灵魂。如果是在linux发行版中,则完全可以不使用,可以安装其他的软件替代(linux发行版也自带了一些文本编辑器:例如gedit),例如:VS Coder、Emacs等等。
但是,在嵌入式linux平台(出于成本和性能原因,会取消掉桌面环境(也可能系统启动后直接就进入应用软件了))和linux服务器上,一般就不会有桌面环境了。则会是一个冰冷的黑框框加提示字符出现在眼前,这时候,如果不懂点linux命令和vim操作,就玩不转啦。
本文主要是描述vim使用的文档,从刚接触vim的角度出发来描写。但是看完本篇文章,相信应该能对vim的常规用法熟悉了,也可以满足我们在实际工作学习中的使用需求。
Vim是vi的加强版, vi的命令基本全部可以在vim上使用,而且比vi使用起来更加容易。所以在本文中,就不对vim和vi加以区分。
二、大招上线
(2-1)怎么打开vi编辑器
在linux终端下,输入vi filename 即可,vi 是固定用法(不变),filename 是文件名称(在输入命令时需要自定义),如果打开的文件不存在,则会在内存中创建一个新的(注意是在内存中,意味着不保存就不会写入硬盘);如果打开的文件存在,则会直接以该文件内容打开。
例如:
则会创建一个iriczhao新文件:
(2-2)vi编辑器的三种模式
刚接触该编辑器的时候,鼠标点击半天没有光标提示,胡乱键盘敲一通,可能干出几个字符,也可能直接没反应,傻眼,哈嘿。
在vi编辑器中,拥有三种模式:(1)一般模式(2)编辑模式(3)命令行模式。
当刚使用vi打开一个文件时,则是处于一般模式,在一般模式下,可以使用键盘快捷移动鼠标光标进行定位;当我们按下键盘上的i或者a时(i表示从光标处的前面插入,a表示从光标的后面插入),则会从一般模式进入编辑模式,这时候则可以在里面想干啥就干啥,如果我们不想干那啥了,按下键盘上的ESC按键,就会从编辑模式回到一般模式。还有一种命令行模式,就是在一般模式下,按下键盘上的冒号(注意:条件是在一般模式下),则会从一般模式进入命令行模式。
注:一般模式下,键盘上的字母可以看做是方向标和控制命令,也是vi的灵活和强大之处。
在一般模式下,在编辑窗的左下角什么都不会显示,当我们按下一些键(例如b、e键等)会没有反应。
好啦,知道了vi编辑器的三种模式,下文就来看看一些常规的操作。
三、闯关必备
(3-1)保存文件
当我们编辑了一个文件,那肯定是要保存的,在命令行模式下,输入wq,然后按下回车键,则可以保存文件:
上图显示创建了一个名文iriczhao的文件。
如果想不保存退出vi,进入命令行模式,输入q! 后按下回车键即可。
如果想保存当前内容而不退出vi,在命令行模式下,输入w 按下回车键即可。
(3-2)移动光标
vi的强大之处,就是在一般模式下,他的光标可以使用键盘上的按键来控制(专为脱离鼠标而设计)。我们可以按上下左右键来控制光标的移动。最标准的操作则是使用H J K L来控制:
-
H:向左移动光标 -
J:向下移动光标 -
K:向上移动光标 -
L:向右移动光标
在键盘布局上,这四个字母按键在一排上,就不用跳着敲键盘(这一点非常Nice)。
(3-3)快速移动光标
除了3-2所述的移动光标方法,我们还可以快速移动光标,在一般模式下:
我们还可以定位到某一行(ngg,n指某一行的行号),例如,如果想定位到第5行,输入5gg就可以了。
(3-4)本文复制和粘贴
我们在实际工作中,最喜欢的就是复制粘贴,在Windows上,Ctrl C / Ctrl V 就可以了,在vi中,则是y表示复制,p表示粘贴。
如果我们想向下复制当前行,两次按下y键,然后按p即可将光标所在行向下复制(如果重复按p,则会重复向下复制)
如果我们想复制一段内容,在一般模式下,按下v键,然后使用光标移动键选择想要复制的内容,完成后,按一次y键,然后将光标定位到想要粘贴的行,按下p键即可将选中的内容粘贴到当前行下。
(3-5)本文删除
如果想删除某一行下的内容,在一般模式下,按下v键,然后移动光标选择想要删除的内容,按一次d即可。
如果想删除光标当前行,按下dd就可以了。
如果想删除从光标当前行开始的n行,按下ndd即可。
上述操作是在一般模式下进行的操作,但是很多时候我们需要删除多行,这时候,可以在命令行模式下指定删除范围,格式为n1,n2d ,n1为开始行,n2为结束行,d表示删除。例如如果我们想删除5-10行的内容,即可在命令行下输入5,10d 即可删除。
(3-6)编辑器撤销
在Windows上我们使用Ctrl Z 来撤销,在vi中,则是在一般模式下,按下键盘上的U键来撤销。如果我们想反撤销,按下Ctrl R 即可。
注意,当文本文件被关闭了,就不能做撤销和反撤销操作了
(3-7)编辑器查找
面对密密麻麻的文本,如果我们想查找具体的本文,我们可以在命令行模式下,输入/ 或? 来查找。例如如果我们想查找iriczhao,在命令行模式下,输入/iriczhao ,按下回车,则会从光标当前行向下查找第一个匹配项,如果接着按下N键,vi则会继续向下查找匹配项;如果我们想向上查找,需重新进入命令行模式,输入?irichao ,按下回车,则会从光标处向上查找第一个匹配项,如果接着按N键,则会继续向上查找匹配项。
(3-8)编辑器替换
如果想替换vi中的文本,可按照替换格式:%s /old/new/g 进行命令书写,%s为固定写法,old表示想要替换的文本,new表示用于替换的文本,g是固定用法,/也是固定写法。例如,如果我们想将iriczhao文本替换成xiaoSheng,其写法如下:
%s /iriczhao/xiaoSheng/g
然后按下回车键,则会将所有的iriczhao替换成xiaoSheng。
四、结尾
本文描述了vi/vim的几种常规操作,也是用得比较多的基本操作。对于学习vi/vim最好的方法,我想就是将她作为自己的默认文本编辑器,时刻使用…
|