1. 移动光标
H #移到屏幕的左上角 M #移到屏幕的中间行开头 L #移到屏幕的最后一行 [ #移到文件开始位置 (双击)] #移到文件结束位置(双击):n #移到文件的第n行 Ctrl + b #屏幕上卷一个菜单 Ctrl + F #屏幕下卷一个菜单h # 将光标左移一格 l # 将光标右移一格 j # 将光标下移一格k # 将光标上移一格w # 将光标移到下一个小字的前面b # 将光标移到前一个小字的前面0 # 把光标移到当前行的第一个字符处$ # 把光标移到当前行的最后一个字符处
2. 修改内容
nx #删除由光标位置起始的n个字符(含光标位置,按一个x表示删除光标所在的字符)ndw #删除光标位置其实的n个字符组(dw删除光标所在的单词)d0 #将行的开始到光标位置的字符全部删除d$ 或D #将光标位置起始到行尾的字符全部删除ndd #将光标位置起始的n行(整行)删除(dd表示删除光标所在行):start,endd #删除文件的第start到end行rc #把光符所在字符替换成cR #覆盖本行内容u #恢复上一次的修改cw #改变光标所在单词C #改变一行光标位置以后的部分cc或S #修改一整行
3. 寻找替换
/pattern #向后寻找指定的pattern ,若遇到文件尾,则从头再开始。 ?pattern #向前寻找指定的pattern ,若遇到文件头,则从尾再开始。 n #在上次指定的方向上,再次执行N #在上次指定的方向的相反方向上,再次执行上次定义的查找:%s/old/new/g #查找所有old并替换为new:start,ends/old/new #替换指定区域
4. 编辑切换
a #在光标之后开始输入文本 A #在行尾开始输入文本 I #在光标之前开始输入文本 i #在行首第一个非空白字符前输入文本o #在光标所在行后插入一空行O #在光标所在行前插入一空行
5. 复制及移动文件
yy #把当前行放入缓冲区yw #把光标所在的单词放入缓冲区p #将缓冲区内容取到光标所在行的下面一行P #将缓冲区内容取到光标所在行的上面一行:first,last co dest #将first 到last行的数据复制到目标行(dest)下面:Start,end m dest #将start 到 end行的数据移动到目标行(dest)下:r filename #将指定文件的内容读入光标所在行下
6. 其他
vi #进入vi而不读入任何文件 vi filename #进入vi并读入指定名称的文件(新、旧文件均可)。 vi +n filename #进入vi并且由文件的第几行开始。 vi + filename #进入vi并且由文件的最后一行开始vi filename(s) #进入vi并且将各指定文件列入名单内,第一个文件先读入u #取消前一指令Ctrl + l #刷新屏幕显示:set nu #显示文件的行号,但不会存文件:set nonu #解除行号显示e! #重新装入当前文件,若当前文件有改动,则丢弃以前的改动:sh #启动sh ,从sh中返回可用exit或ctrl+d:! Command #执行命令command!! #重新执行上次的:! Command子命令