Vi的3种运行模式

普通模式normal

插入模式insert

命令行cmdline

普通模式下的操作

命令 说明 命令 说明
i 从光标所在位置前开始插入文本 I 将光标移到当前行的行首,在其前面插入文本
a 用于在光标当前所在位置之后追加新文本 A 将光标移到当前行的行尾,在后面插入文本
o 将在光标所在行的下面新开一行,置于该行行首 O 将在光标所在行的上面新开一行,置于该行行首
G 将光标移至最后一行的行首 $ 移动到光标所在行的行尾
nG 光标移至第n行首 n/rc 用字符c替换光标所指向的当前/前n个字符
n/x 删除光标处的/向右的n个字符 n/dd 删除光标所在的整/当前及后n-1行
yy 将当前行的内容复制到缓冲区 p 将缓冲区的内容写到光标所在位置
/str 往右移动到有str的地方 n 向相同的方向移动到有str的地方
?str 往左移动到有str的地方 N 向相反的方向移动到有str的地方
u 取消前一次的误操作 . 再执行一次前面刚完成的某个命令
ZZ 存盘退出 ZQ 不保存退出

命令模式下的操作

命令 说明 命令 说明
:n 跳转到指定行 :/str/w file 将包含有str的行写到文件file中
:s/str1/str2/g c 将找到的第一个str1替换为str2
g所有替换 c替换询问
:n1,n2 co/m n3 将从n1开始到n2为止的所以内容复制/移动到n3后面
:d 删除当前行 :w /file 将当前编辑的内容存盘 / 写到file中
:r file 打开另一个文件file :e file 新建file文件
:f file 把当前文件改名为file文件 :!Cmd 运行shell命令cmd
:n1,n2 w ! Cmd 将n1到n2行的内容作为cmd命令输入,不指定整个文件全部输入 :r ! Cmd 将命令运行的结果写入当前行位置
:set autuindent /noautoindent 缩进/取消缩进 :set number /nonumber 编辑时显示行号/取消显示
:set ruler /noruler 显示光标所在行列位置/取消显示 :set tabstop=value 设置显示制表符的空格字符个数
:set wrapmargin=value 设置显示器的右边页,自动换行 :set / all 显示设置的所以选项/显示所有可以设置的选项

未完待续……

人们只愿看到自己想看到的一切,分不清是非对错,黑白颠倒。–Hades