前言
vi编辑器由加州大学伯克利分校,Bill Joy 研究开发,是Linux系统中最为常见的编辑器。而且还是Linux系统自带的,不用我们自行安装。vi虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的,可以说,对一名Linux开发工程师来说,vi编辑器是必备技能。
1.概述
vi编辑器虽然没有丰富的图形界面编辑器那样点鼠标的简单操作,但含有丰富的命令,融会贯通后,操作的方便程度不亚于前者,而且还可以让我们脱离对鼠标的依赖,提高了开发效率。其中vi编辑器有三种模式,分别为命令模式、文本编辑模式和低行模式。
2.命令模式
命令模式是启动vi后进入的工作模式,并可转换为文本编辑模式和最后行模式。在该模式下,我们可以从键盘直接输入命令。部分操作如下:
①x:删除字符
②K、J、H、L:分别为将光标上、下、左、右一格
③u:取消上一次操作
④[N]dd:剪切,N表示第几行
注:当不输入N时,为仅仅剪切光标所在行
⑤ [N]yy:复制,操作类似剪切
⑥p/P:粘贴,p粘贴在下面,P粘贴在上面
⑦u:取消上一次操作
⑧i、a、o、A、O:都是进入编辑模式,具体怎么进,同学们试试就明白了
⑨ [N]G:直接到第N行
⑩G:移动光标到最后一行
3.文本编辑模式
在文本模式下,我们可以对文本进行编辑,按Ese键可以退出文本编辑模式,回到命令模式。
4.低行模式
在命令模式下,按“:”键进入最后行模式,此时vi会在屏幕的底部显示“:”符号年作为最后行模式的提示符,等待用户输入相关命令。命令执行完毕后,vi自动回到命令模式。低行模式部分命令及作用如下:
① set nonu/nu:这是一对相对的命令,功能分别为不要行号,和要行号。
② N1,N2 y/d:复制或剪切一块(可以用$表示最后一行)
③ N:把光标移到第几行
④ /string:查找字符串,从第一行开始找,?string为从最后一行开始找
拓展:n、N分别为向下、向上继续寻找。/string\>、/\<string分别为寻找以string结尾、开头的字符串,/\< string\>为全词匹配。
⑤[range]s/s1/s2/ [option]:把字符串s1替换为s2
说明:[range] 表示检索范围,省略时表示当前行。如,1,10,表示从第 1 行到 10 行。%表示整个文件,同1, $
。 .,$
从当前行到文件尾。option 表示选项:/g
表示在全局文件中进行替换。/c
表示在每次替换之前需要用户进行确认。省略时仅对每行第一个匹配串进行替换。
用例
把第2行到第10行的int改为float:
2,10s/int/float/g
把全文的int改为float:
%s/int/float