北京治白癜风好 http://pf.39.net/bdfyy/qsnbdf/vi编辑器#分为:一般模式、编辑模式、命令模式一般模式下可以进行:移动光标的位置、删除字符、复制粘贴等编辑模式下可以进行:插入字符、删除字符等命令模式下可以进行:保存文件、退出编辑器、显示行号、将光标跳至某行等操作
vifilename#打开或新建文件,并将光标置于第一行的行首vi+nfilename#打开文件,并将光标置于第n行的行首vi+filename#打开文件,并将光标置于最后一行的行首vi+/patternfilename#打开文件,并将光标置于第一个与pattern匹配的字符串处vi-rfilename#在上次正用vi编辑时发生系统崩溃,恢复filenamevifilename....filename#打开多个文件,依次进行编辑
#一般模式space#光标右移一个字符Backspace#光标左移一个字符k或Ctrl+p#光标上移一行j或Ctrl+n#光标下移一行h#光标左移一个字符l#光标右移一个字符Enter#光标下移一行#或者使用上下左右来移动w或W#光标右移一个字至字首b或B#光标左移一个字至字首e或E#光标右移一个字至字尾回车#移动至下一行的行首-#移动到上一行的行首G#移动到文件的最后一行的行首gg#移动到文件的第一行的行首[[#同gg一个意思,移动到文件的第一行的行首]]#同G一个意思,移动到文件的最后一行的行首(#光标移至句首)#光标移至句尾{#光标移到到段落尾}#光标移到到段落头%#移动到距离光标最近的括号上去(如)、{}、[])ctrl+G#得到当前光标在文件中的第几行的位置nG#光标移至第n行尾n+#光标下移n行n-#光标上移n行n#光标移至第n行尾H#光标移至屏幕顶行M#光标移至屏幕中间行L#光标移至屏幕最后行^或数字0#光标移动到文章的开头#移动到当前行尾的位置yy#复制当前行nyy#从光标的当前行开始,往下复制多行yw#复制当前光标所在处往后的一个单词nyw#复制当前光标所在处的往后多个单词y^#从光标所在处复制到行首y#从光标所在处复制到行尾小写p#粘贴到光标的后面大写P#粘贴到光标的前面x#删除光标所在处的字符nx#删除光标所在的位置开始,后面的n个字符dd#删除光标所在位置的整行ndd#删除光标所在位置的往下n行u#撤销刚刚执行的操作U#撤销针对当前行做的所有操作dw#删除从光标开始到单词的结尾db#从光标处往前删除单词和dw相反d2w#删除从光标往后2个单词dd#删除整行daw#删除光标停留位置的整个单词#光标移到到行尾enterao#光标移动到行尾并新建一行小写字母^#光标移动到行首w或W#光标跳到下个字的开头e或E#光标跳到下个字的字尾b或B#光标回到上个字的开头#1#光标移到该行的第#个位置,如:5l,56l。dG#从光标所在位置删除到末尾ggyG#全部复制ggdG#全部删除?l#?代表数字想把光标跳至当前行的第2个位置ctrl+r#恢复上一步撤销的操作ctrl+u#向文件首翻半屏ctrl+d#向文件尾翻半屏ctrl+f#向文件尾翻一屏ctrl+b#向文件首翻一屏
split#分隔一个窗口splitfile.c#为另一个文件file.c分隔窗口nsplitfile.c#为另一个文件file.c分隔窗口,并指定其行数close#关闭窗口ctrl+w#在窗口中进行切换ctrl+L#刷新屏幕shift+#按两次键表示把当前行往左移动一个tab位置shift+#按两次键表示把当前行往右移动一个tab位置
nz+回车键#将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。z.(点号)#滚动屏幕使光标所在行移动到屏幕中间z-(减号)#滚动屏幕使光标所在行移动到屏幕最后一行ctrl+insert#复制ctrl+insert#粘贴
编辑状态下:ctrl+a#回到编辑栏的最前面ctrl+e#回到编辑栏的最后面ctrl+u#清除编辑的内容(输错的情况下)ctrl+r#搜索之前执行过的命令~#切换大小写a#从当前光标的右边进行插入i#从当前光标的左边进行插入A#从当前行的末尾进行插入(追加)I#从当前行的行首进行插入(追加)小写的o#在当前行的下面插入一行新的行大写的O#在当前行的上面插入一行新的行R#覆盖当前光标所在行以及光标后面的若干行文本r#替换光标所在处的字符J#将当前光标所在行与下面的一行合并为一行,直到按下「ESC」键为止。#更改cw#更改光标所在处的字到字尾处c#w#例如,「c3w」表示更改3个字#跳至指定的行
「ctrl」+「g」#列出光标所在行的行号。
「#G」:例如,「15G」#表示移动光标至文章的第15行行首。
#命令模式:efile_name#打开另外一个文件,将文件名作为参数:w保存文件#wnew_filename将文件另存为一个其它的文件名,可以将新的文件名作为参数;:q#退出vi编辑器(没有做任何操作的时候可以直接q命令退出)q:quit的意思#可以先执行了w命令然后再执行q命令相当于执行了wq命令:q!#不对修改做保存直接退出编辑器:wq#将文件保存后退出编辑器:.,d#全部删除(清空)如果丢弃当前文件直接打开另外一个文件,可以用:e!如果管理员修改了某些只读文件,可以用:w!强制将改动写入磁盘setnu#打开行号的显示setnonu#关闭显示行号:n#表示跳到行号为n的行,:n+表示向下跳n行:n-表示向上跳n行
#vi下的替换操作斜线和问号:/?#使用了查找命令之后,使用如下两个键快速查找:n#向下查找N#向上查找pattern是需要匹配的字符串,例如:/^nam#查找以name开始的行/name#查找以name结束的行//^name#查找^name字符串:s/name/title/#替换当前行第一个name为title:s/name/title/g#替换当前行所有name为title:n,s/name/title/#替换第n行开始到最后一行中每一行的第一个name为title:n,s/name/title/g#替换第n行开始到最后一行中每一行所有name为title#(n为数字,若n为.表示从当前行开始到最后一行):%s/name/title/#(等同于/name/s//title/)替换每一行的第一个name为title:%s/name/title/g#(等同于/name/s//title/g)替换每一行中所有name为title可以使用#或+作为分隔符,此时中间出现的/不会作为分隔符:s#name/#title/##替换当前行第一个name/为title/:%s+/oradata/apras/+/user01/apras1+(使用+来替换/):/oradata/apras/替换成/user01/apras1/:s/old/new#表示将当前行首次出现的old替换为new字符:s/old/new/g#表示将当前行中出现的所有old替换为new字符:n,ms/old/new/g#表示将从第n行开始到m行中结束,中间的所有old字符替换为new字符:%s/old/new/g#表示将整个文本中的old字符全部替换为new字符#搜索及替换命令/pattern#从光标开始处向文件尾搜索pattern?pattern#从光标开始处向文件首搜索patternn#在同一方向重复上一次搜索命令N#在反方向上重复上一次搜索命令s/p1/p2/g#将当前行中所有p1均用p2替代n1,n2s/p1/p2/g#将第n1至n2行中所有p1均用p2替代g/p1/s//p2/g#将文件中所有p1均用p2替换
#最后行方式命令n1,n2con3#将n1行到n2行之间的内容拷贝到第n3行下n1,n2mn3#将n1行到n2行之间的内容移至到第n3行下n1,n2d#将n1行到n2行之间的内容删除w#保存当前文件efilename#打开文件filename进行编辑x#保存当前文件并退出q#退出viq!#不保存文件并退出vi!