(参考http://zhidao.baidu.com/question/123161356.html

一.vi的模式
 命令模式:vi启动默认进入的模式,可进入输入模"i",或末行模式(:),除了可以完成命令的功能外,也是后两种模式的

转换点
 输入模式:即文本辑辑状态,最后一行显示"-- INSERT --"提示,按ESC返回到命令模式
 末行模式:可完成一些复杂操作,以":"开始,执行完一个末行命令后自动返回命令模式

二.基本使用
 1.vi 编辑器的启动与退出:

 (1).使用命令"vi"直接进入编辑环境
 (2).在命令模式下输入":q!",可以强行退出编辑环境,对文件修改不进行保存
 (3).以文件名作为"vi"命令的参数时,若存在此文件,则vi可对内容进行编辑,若不存在,打开以参数名命名的空文件

 2.文件操作:

 (1).打开新文件:在末行模式下":e filename"关闭当前文件并打开新文件,":e! filename 强制关闭当前文件并打开新文

件"
 (2).读取文件内容到当前文件:":r filename",读取的文件内容粘贴到当前文件光标所在行的下面
 (3)保存文件:命令为":w [filename]",如果文件已经命名,可直接使用":w"命令的参数,如果没有命名,第一次保存时需

指定文件名作为参数
 (4).另存为文件:命令为":w filename",只保存到新文件,而不更新原来文件的内容
 (5).退出vi编辑器:退出格式为":q",保存并退出为":wq",强行退出为":q!"
 
 3.光标的移动操作(命令模式下)

 (1).光标方向移动:"h"左、"l"右、"k"上、"j"下
 (2).翻页移动:"ctrl+f"前一页、"ctrl+b"后一页、"ctrl+u"前半页、"ctrl+d"后半页
 (3).行内快速跳转:"^"本行首字符、"$"本行尾字符、"w"后一单词首字母、"b"前一单词首字母、"e"后一单词尾字母;可

添加数字组合使用,例如:"3w"后三个单词首字母、"4b"前4个单词首字母、"5e"后5个单词尾字母
 (4).文件内行间跳转:显示行号":set nu",取消显示行号":set nonu","1G"跳转到首行,"G"跳转到末尾行,"#G"跳转到

第#行
 
 4.编辑操作

 (1).进行输入模式:"i"当前光标处,"a"当前光标后,"A"当前行末,"o"当前行下插入新行,"O"当前行上插入新行,"cw"

删除当前光标到所在尾部字符,"c$"删除当前光标到行尾的字符,"c^"删除当前光标(不包括)之前到行首的字符;以上记忆

如有困难,可只记"i"从命令模式进入输入模式,完成编辑后"Esc"退回到命令模式
 (2).输入模式的操作:上下左右方向进行光标移动,"Home/End"定位光标到行首行尾,"Page Up /Down"上下翻

页,"Backspace"左侧字符的删除,"Delete"删除光标位置的字符
 (3).删除操作:在命令模式下,可用以下命令完成删除操作,"x"光标处单个字符,"dd"光标所在行,"dw"当前字符到单词

尾(含空格),"de"当前字符到单词尾(不含空格),"d$"当前字符到行尾,"d^"当前字符到行首,"J"合并当前行与下一行

的内容,可添加数字配合使用,例如"3x"当前光标向右3个字符,"2dd"从当前行开始向下两行文本,"3dw"当前光标向右3个

单词,"2de"当前光标向右两个单词(保留一个空格),"5J"合并5行文本
 (4).撤销操作:在命令模式下,"u"取消最近一次操作,可重复使用,"U"取消对当前行进行的所有操作,"Ctrl+R"对"u"产

生的撤消进行恢复
 (5).复制操作:"yy"整行,"yw"光标到单词尾,"y$"光标到行尾,"y^"光标到行首;与数字组合使用,"5yy"当前及后续共5

行,"3yw"当前光标开始的3个单词;末行命令":m,ny"m行到n行之间的文本,例如:":100,200y"100行到200的内容
 (6).粘贴操作:在命令模式下,使用"p"将缓冲区中的内容粘贴到当前文档

 5.查找与替换操作(末行模式)

 (1).自上而下:":/word"查找指定的字符串,"n"查找下一个(自上而下)"N"反向查找下一个(自下而上)
 (2).自下而上:":?word"自下而上查找指定字符串,"n"查找下一个(自下而上)"N"反向查找下一个(自上而下)
 (3).普通替换:":s/old/new"由s开始,"old"指被替换的字符串,"new"替换成哪个字符串,此命令只替换当前行中第一个

匹配的字符串
 (4).行内全部替换:":s/old/new/g",当前行内所有匹配的字符串
 (5).在行区域内进行替换:":#,#s/old/new/g","#,#"表示两个行号之间的行区域,例如"3,5"表示第3行到第5行
 (6).整个文件内的替换操作:":%s/old/new/g",加%表示整篇文档,危险,慎用
 (7).使用替换确认功能:在原替换命令后加"c"可提供确认功能,例

如:":s/old/new/c",":s/old/new/gc",":#,#s/old/new/gc",":%s/old/new/gc";替换命令确认后的提示为"replace

with word (y/n/a/q/l/^E/^Y) ?",其中"y"替换,"n"放弃,"a"所有,"q"退出
 
三、编辑器的多文件操作
 
 1.多文件操作的vi启动:"vi [file1] [file2] .."后跟多个文件名作为参数即可,第一个参数显示在屏幕上,其它文件处

于编辑后台状态
 2.多文件切换命令:
 (1).显示多文件信息:":args"结果中显示打开的文件,"[]"内为当前显示文件
 (2).前后切换文件:":next"显示后一文件,":prev"显示前一文件,加"!"为强制切换,不保存当前文件
 (3).定位首文件和尾文件:":first"定位首文件,":last"定位尾文件
 (4).快速文件切换:已经用某个切换命令进行文件切换后,"Ctrl+^"可快速切换到前状态

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐