Part1进入vi命令
vifilename打开或新建文件,并置光标于行首 vi+filename打开文件,并置光标与末行行首 vi+nfilename打开文件,并置光标与第n行行首 vi+/w1filename打开文件,并置光标于第一个匹配w1处 vi-rfilename上次使用vi时发生崩溃,恢复filename vifile1file2...打开多个文件,一次编辑
Part2移动光标
h或[←]或[Backspace]光标左移一个字符 l或[→]或[space]光标右移一个字符 k或[↓]或^p光标上移一个字符 j或[↑]或^n光标下移一个字符 nh 或 n[←]或 n[Backspace]光标左移 n 个字符;l, j, k类似b或B光标移至本字字首 e或E光标移至本字字尾 w或W光标移至下一个字字首 nb或nB光标移至前n个字字首 ne或nE光标移至后n个字字尾 nw或nW光标移至后n个字字首-光标上移一行 +或[Enter]光标下移一行 G光标移至末行行首 0数字0,光标移至本行行首(常用) $光标移至本行行尾 n-光标上移n行 n+或n[Enter]光标下移n行 nG光标移至第n行行首(常用) n$光标移至第n行行尾(光标移至句首 )光标移至句尾 {光标移至段首 }光标移至段尾H光标移至屏幕首行 M光标移至屏幕中间行 L光标移至屏幕末行 ^f屏幕上翻一屏(常用) ^b屏幕下翻一屏(常用) ^d屏幕上翻半屏 ^u屏幕下翻半屏
Part3删除、复制与粘贴
X向前删除一个字符(常用) x或[del]向后删除一个字符, nX向前删除n个字符 nx删除光标处及其后n-1个字符 ndw或ndW删除光标处及其后n-1个字 do删至行首 d$删至行尾 dd删除本行(常用) ndd删除本行及下n-1行(常用) d1G删除光标前字符(小心) dG删除光标后字符(小心) ^u删除输入方式下所输入的文本yy复制本行(常用) nyy复制本行及下n-1行(常用) y1G复制光标前字符 yG复制光标后字符p在下一行粘贴 P在上一行粘贴(常用) :n1,n2con3将n1行到n2行内容拷贝到第n3行下 :n1,n2mn3将n1行到n2行内容移到第n3行下 :n1,n2d删除n1行到n2行内容J合并本列与下一列 u 恢复前一个动作。(常用)
Part4查找与替换
/word在光标后查找串word(常用) ?word在光标前查找串word(常用) n在同一方向重复上次查找 N在反方向重复上次查找:s/w1/s2/g将本行中的所有w1用w2替换 :n1,n2s/w1/w2/g 在第 n1 与 n2 行间的 w1 用 w2 替换!(常用) :1,$s/w1/wd2/g 在首行与末行间的 w1 用 w2 替换!(常用) :g/w1/s//w2/g同上 :1,$s/w1/w2/gc 同上!并且提示是否取代!(常用)
Part5进入编辑模式
i光标前 I本行行首 a光标后 A本行行尾(常用) o当前行下插入一行 O当前行上插入一行(常用) r替换当前字符 R替换当前字符及其后字符,直至按ESC退出 s删除当前字符,并开始输入文本 S删除本行,并开始输入文本 ncw或ncW删除n个字,并开始输入文本 nCC删除n行,并开始输入文本 Esc退出编辑模式,回到一般模式中(常用)
Part6指令命令模式
:w保存当前文件(常用) :w!强制保存当前文件 :q退出vi(常用) :q!不保存退出vi, :wq保存后退出 :x同上 :wq!强制保存后离开(常用) :!command执行shell命令command :r!command将命令command输出放到当前行 :e! 将档案还原到最原始的状态!:wfilename将文件另存为filename文件 :n1,n2w[filename]将n1与n2间内容另存为filename文件 :rfilename在当前行下一行读入filename文件内容 :setnu显示行号 :setnonu取消行号 :sethls高亮 :setignorecase忽略大