linux vi/vim的几种常规操作

嵌入式技术

1334人已加入

描述

 

一、开篇

vim是一个文本编辑器,在几乎所有的linux发行版中都有vi/vim编辑器,但是这个编辑器非常有特色,刚接触的时候在使用上可能会非常不习惯。

在linux平台下,如果不学习vim/vi,似乎感觉就少了点linux平台下的灵魂。但如果是在linux发行版中,则完全可以不使用,可以安装其他的软件替代(linux发行版也自带了一些文本编辑器:例如gedit),例如:VS Coder、Emacs等等。

但是,在嵌入式linux平台(出于成本和性能原因,会取消掉桌面环境(也可能系统启动后直接就进入应用软件了))和linux服务器上,一般就不会有桌面环境了。则会是一个冰冷的黑框框加提示字符出现在眼前,这时候,如果不懂点linux命令和vim操作,就玩不转啦。

本文主要是描述vim使用的文档,从刚接触vim的角度出发来描写。但是看完本篇文章,相信应该能对vim的常规用法熟悉了,也可以满足我们在实际工作学习中的使用需求(注:如果是vim“老鸟”,就跳过这篇文章吧)。

vim是vi的加强版, vi的命令基本全部可以在vim上使用,而且比vi使用起来更加容易。所以在本文中,就不对vim和vi加以区分。

二、大招上线

(2-1)怎么打开vi编辑器

在linux终端下,输入vi filename即可,vi是固定用法(不变),filename是文件名称(在输入命令时需要自定义),如果打开的文件不存在,则会在内存中创建一个新的(注意是在内存中,意味着不保存就不会写入硬盘);如果打开的文件存在,则会直接以该文件内容打开。

例如:

Linux则会创建一个iriczhao新文件:

Linux

(2-2)vi编辑器的三种模式

刚接触vim编辑器的时候,可能鼠标点击半天没有光标提示,胡乱键盘敲一通,也许能干出几个字符,也可能直接没反应,傻眼,嘿哈。

在vi编辑器中,拥有三种模式:(1)一般模式(2)编辑模式(3)命令行模式。

当刚使用vi打开一个文件时,则是处于一般模式,在一般模式下,可以使用键盘快捷移动鼠标光标进行定位;当我们按下键盘上的i或者a时(i表示从光标处的前面插入,a表示从光标的后面插入),则会从一般模式进入编辑模式,这时候则可以在里面想干啥就干啥,如果我们不想干那啥了,按下键盘上的ESC按键,就会从编辑模式回到一般模式。还有一种命令行模式,就是在一般模式下,按下键盘上的冒号(注意:条件是在一般模式下),则会从一般模式进入命令行模式。

注:一般模式下,键盘上的字母可以看做是方向标和控制命令,也是vi的灵活和强大之处。

  • 在三种模式下,vi界面都会有标识:

在一般模式下,在编辑窗的左下角什么都不会显示,当我们按下一些键(例如b、e键等)会没有反应。

  • 在编辑模式下,在左下角则会有提示:
Linux
  • 在命令行模式下,左下角一般会有一个冒号(:):
Linux

好啦,知道了vi编辑器的三种模式,下文就来看看一些常规的操作。

三、闯关必备

(3-1)保存文件

当我们编辑了一个文件,那肯定是要保存的,在命令行模式下,输入wq,然后按下回车键,则可以保存文件:

Linux

上图显示创建了一个名文iriczhao的文件。

如果想不保存退出vi,进入命令行模式,输入q!后按下回车键即可。

如果想保存当前内容而不退出vi,在命令行模式下,输入w按下回车键即可。

(3-2)移动光标

vi的强大之处,就是在一般模式下,他的光标可以使用键盘上的按键来控制(专为脱离鼠标而设计)。我们可以按上下左右键来控制光标的移动。最标准的操作则是使用H J K L来控制:

  • H:向左移动光标

  • J:向下移动光标

  • K:向上移动光标

  • L:向右移动光标

在键盘布局上,这四个字母按键在一排上,就不用跳着敲键盘(这一点非常Nice)。

(3-3)快速移动光标

除了3-2所述的移动光标方法,我们还可以快速移动光标,在一般模式下:

  • 如果想将光标定位到第一行:双击键盘上的g键。

  • 如果想将光标定位到最后一行:按下Shit + G键。

我们还可以定位到某一行(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最好的方法,我想就是将她作为自己的默认文本编辑器,时刻使用......

一些高级的vim命令和操作,在后面写写啦。

  审核编辑:汤梓红
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分