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 把光符所在字符替换成c R 覆盖本行内容 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,endm 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子命令 7、增补 (1)删除多余的回车符: ※vi中执行:g/^Ms///g,其中^M为ctrl+v和ctrl+m组和输入 ※执行dos2unix filename ※执行sed 's/^M//' test.sh > back.sh |