一vi的操作模式vi提供两种操作模式:输入模式(insertmode)和指令模式(commandmode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。
在输入模式下,按Esc键切换到指令模式下。在指令模式下,按输入指令(i、a、o等)进入输入模式。
二进入vi
$vifilename
直接键入“vi+所要编辑的文件名”,即可对指定的文件进行编辑。如果指定的文件为新文件,则提示:“Newfile”,否则显示该文件的当前内容。
$viewfilename
以只读方式打开文件filename三指令模式3.1进入输入模式
a在当前游标之后输入A在当前行之末输入i在当前游标之前输入I在当前行之首输入o在当前行之下新增一行,并在新增行输入O在当前行之上新增一行,并在新增行输入输入结束后,按Esc键退出输入模式。
3.2游标移动
h向左移动一个字元l向右移动一个字元j向下移动一个字元k向上移动一个字元b左移一个单词,至词首w右移一个单词,至词尾0移到当前行行首$移到当前行行尾+移至下一行的行首-移至上一行的行首H移至视窗的第一行M移至视窗的中间一行L移至视窗的最后一行G移至该文件的最后一行nG移至该文档的第n行n+下移n行n-上移n行
3.3视窗移动
+f视窗下卷一页+b视窗上卷一页+d视窗下卷半页+u视窗上卷半页+e视窗下卷一行+y视窗上卷一行
3.4删除操作
x删除游标所在字元X删除游标前一字元dw从游标当前位置开始向后删除一个单词db从游标当前位置开始向前删除一个单词d0从行首删除至当前游标位置d$从游标当前位置删除至行尾dd删除游标所在行D同d$
3.5修改操作
s修改游标所在字元,修改完成后按Esc键结束S修改整行内容,修改完成后按Esc键结束r替换当前游标所在字元R进入替换状态,直至按Esc键结束cw修改一个单词(从游标位置至词尾)cb修改一个单词(从词首至游标位置)cc修改整行内容,完成后按Esc键结束,同Sc0修改行首至游标位置的内容c$修改游标位置至行尾的内容~游标所在字元大小写切换
3.6指令重复在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有:
nx删除n个字元ndd删除n行ns修改n个字元
3.7取消前一动作(Undo)
u撤消上一指令的结果
3.8查找字符串
/字符串从当前游标向后查找该字符串?字符串从当前游标向前查找该字符串n从当前游标向后查找下一个字符串N从当前游标向前查找下一个字符串
3.9查看编辑状况
+g显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改
四保存与退出
:w保存,但不退出:wq保存并退出:x同:wq:q退出,如果当前文件没有保存,禁止退出:q!不保存退出:wfile1将内容保存至文件file1中,注意:此时编辑的仍为原文件:w!file1将内容覆盖保存至文件file1中,如文件file1存在,:wfile1将禁止执行
五环境设置
:set显示已设置的环境状况:setall显示所有的环境设置选项:setnu显示行号:setnonu不显示行号:setts=n设置Tab键的长度为n
六执行指令以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用“.”代替,文件最后一行可用“$”代替。
:10,20d删除第10行至第20行的内容:10d删除第10行的内容:%d删除全部内容:10,20co30将第10行至第20行的内容复制到第30行之后:10,20mo30将第10行至第20行的内容移动到第30行之后:1,$s/old/new将第1行至最后一行中的old替换成new:1,$s/^/new将第1行至最后一行的内容前面插入new:10将游标移至第10行
七重复指令
.重复上一条指令
八切换到shell状态
:sh切换到shell状态,exit返回
|
|