- a 在当前光标后面插入字符
- i 在当前光标前面插入字符
- I 在当前行首插入字符
- A 在当前行尾插入字符
- o(字母)在当前光标下一行插入字符
- O(字母)在当前光标上一行插入字符
- b移动光标到当前字符串的第一个字符
- B移动光标到当前行的第一个字符(以空格分隔)
- cc 删除光标所在行并编辑
- D 删除一行
- db 删除光标前的一个字符或者单词
- de 删除光标后的一个字符或者单词
- dd 删除一样
- E 移动光标到当前行的最后一个字符
- e 移动光标到字符串的组后一个位置
- G 移动光标到行尾
- g 移动光标到行首
- h 移动光标向前一个字符
- j (Ctrl+n)移动光标向下一个字符
- k (Ctrl+P)移动光标向上一个字符
- l(字母)移动光标向后一个字符
- 0(零)移动光标到改行的行首
- M 移动光标到窗口中间的那一行
- L 移动光标到窗口的最后一行
- nG移动光标到第n行
- n+ 从光标所在的位置向后移动至n行
- n- 从光标所在的位置想向前移动至n行
- R 进入替换模式知道你按下【Esc】
- s 删除光标所在字符,并进入替换模式,直到按下【Esc】
- S 删除光标所在的一行字符并进入替换模式直到按下【Esc】
- w 移动光标到下一个位置的字符串
- x 删除光标所在字符的后一个字符
- X 删除光标所在字符的前一个字符
- H 光标移至屏幕定端
- Ctrl+u 向文件首翻半屏
- Ctrl+d 向文件尾翻半屏
- Ctrl+f 向文件尾翻一屏
- Ctrl+b 向文件首翻一屏
- nz 将第n行滚至屏幕顶部,不指定n时,则是当前行滚动到屏幕顶端
- /pattern 从光标开始处向文件尾部搜索pattern
- ?pattern 从光标开始出现想文件首搜索pattern
- n 在同一方向重复上一次搜索命令
- N 在反方向上重复上一次搜索命令
- :s/s1/s2/g 将当前行中所有s1用s2替换,g代表全部如果不写g那就替换第一个
- 找到的s1
- :n1,n2s/s1/s2/g 将n1到n2行之间的所有s1用s2替换
- :g/s1/s2/g 将文件中所有s1用s2替换
- :n1,n2 co n3 将n1,n2行的内容复制到n3行的下面,co(copy).
- :n1,n2 m n3 将n1,n2行的内容移动到n3行的下面,m(move).
- :n1,n2d 将n1到n2行的内容删除,d(del)
- :w 保存当前文件
- :x 保存并退出
- :q 退出vi
- :q! 不保存文件并退出vi
- :!command 执行shell命令 比如:!/etc/init.d/network restart
- :n1,n2 w!command 将文件中n1到n2行的内容作为command的输入并执行
- n1,n2如果不指定(w!command)则表示整个文件内容作为command的输入
- :r!command 将命令command的输入结果放到当前行
转载于:https://blog.51cto.com/xlogin/1176667