vi全屏幕编辑器 vi(Visual)是以视觉为导向的全屏幕编辑器、共分为三种方式(mode): command方式: 任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有“岬”的声音;任何输入都引起立即反 映 insert方式: 任何输入的数据都置于编辑寄存器。在command方式下输入(I,a,A等),可进入insert方式,insert方式下按 ESC,可跳回command方式。 escape方式: 以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。 进入vi(在系统提示符下面输入以下指令): vi 进入vi而不读入任何文件 vi filename 进入vi并读入指定名称的文件(新、旧文件均可)。 vi +n filename进入vi并且由文件的第几行开始。 vi +filename 进入vi并且由文件的最后一行开始。 vi + /word filename 进入vi并且由文件的word这个字开始。 vi filename(s) 进入vi并且将各指定文件列入名单内,第一个文件先读入。 vedit 进入vi并且在输入方式时会在状态行显示“INSERT MODE"。 删除指令 nx删除由光标位置起始的n个字符(含光标位置,按一个x表示删除光标所在的字符) nX 删除由光标位置起始的n个字符(不含光标位置)。 ndw 删除光标位置其实的n个字符组(word)。 d0 将行的开始到光标位置的字符全部删除。 d$ 或D 将光标位置起始到行尾的字符全部删除。 ndd 将光标位置起始的n行(整行)删除(dd表示删除光标所在行)。 :start,endd 删除文件的第start到end行。 光标移动 [ 移到文件开始位置 ] 移到文件结束位置 nk向上移n行 n+向上移n行,光标在该行的起始 ni 向下移n行 n-向下移n行,光标在该行的起始 H 移到屏幕的左上角 M 移到屏幕的中间行开头 L 移到屏幕的最后一行 G 移到文件的最后一行 nG或者:n移到文件的第n行 Ctrl + u屏幕上卷半个菜单 Ctrl + d 屏幕下卷半个菜单 Ctrl + b 屏幕上卷一个菜单 Ctrl + F 屏幕下卷一个菜单 寻找指令 /text 从光标位置往下找字串text ?text 从光标位置往上找字串text n 继续找下一个字串(在输入上面的寻找指令之后使用) 寻找并且取代指令 :getxt1/s/ /text2/options 将各行的text1替换为text2 option=g表示文件中所有的text1均被取代,若未输入任何option,则只有 各行中的第一个出现的text1被取代 option=go 在屏幕显示各取代的行 option=gc 在每个字串取代之前要求确认 Start,endgtext1/s/ / text2/options 同上,只寻找并取代第start~end行。 或:Start,ends/text1/text2/options 复制及移动文件 :first,last co dest 将first 到last行的数据复制到目标行(dest)下面 :Start,endm dest将start 到 end行的数据移动到目标行(dest)下。 :r filename 将指定文件的内容读入光标所在行下。 nY 将光标所在位置开始的n行数据暂存 p 复制暂存数据在光标的下一行 P 复制暂存数据在光标的上一行 其他命令 . 重复前一指令 u 取消前一指令 Ctrl + l刷新屏幕显示 :set number 显示文件的行号,但不会存文件 :set nonumber 解除行号显示 |