四种模式
vi 有两种模式,命令模式和插入模式,vim 作为 vi 的增强版多了两种模式,普通模式和可视模式。
graph LR
A(普通模式) -->|i/a...| B(插入模式)
A(普通模式) -->|shift + :| C(命令模式)
A(普通模式) -->|v/V...| D(可视模式)
B -->|Esc| A
C -->|Esc| A
D -->|Esc| A
可以通过底部状态行看出所处的模式:
- ①普通模式 ,打开文件后所处的就是普通模式
- ②插入模式 ,编辑文件时的模式
- ③命令模式 ,可以查找、替换等十分丰富的操作
- ④可视模式 ,可以实现光标选择整块文字的操作
各模式间的转换方法:
- ②③④==>① 按 esc 键 (所以,没事可以多按按 esc)
- ①==>② 按 i/a 在光标前/后插入;按 I/A 在行首/尾插入;按 o/O 在当前行的下/上新建行;按 s 删除光标所在字符再插入;按 S 删除光标所在行再插入
- ①==>③ 按分号(shift + :)
- ①==>④ 按 v 可视模式 visual;按 V 可视行模式 visual line;按 ctrl+v/V 可视列模式 visual block。
普通模式
hjkl前下上后0跳转至本行头^跳转至本行前第一个非空字符g_跳转至本行最后一个非空字符$跳转至本行尾fx跳转至本行下一个字符 x 处tx跳转至本行字符 x 前一个字符1G跳转到第一行nG跳转至第 n 行G跳转到最后一行(文末)/word向下查找文字(按 n 查找下一个)?word向上查找文字(按 n 查找下一个)u撤销操作.重复上一指令ZZ等同于:wqyy复制当前整行y$复制光标后该行内容p粘贴到光标的下一行d$删除光标后该行内容dd删除整行dw删除单词d方向键删除字符4dd删除光标行及下面 4 行J光标行与下一行合并
命令模式
在:后输入以下内容,然后回车:
w保存,不退出。后可跟文件名wq保存,退出q!不保存,强制退出set number显示行号set list显示回车符和 TAB 符n1,n2 m n3移动 n1-n2 行(包括 n1,n2)到 n3 行之下n1,n2 co n3复制 n1-n2 行(包括 n1,n2)到 n3 行之下n1,n2 d删除 n1-n2 行(包括 n1,n2)行s/a/A/替换当前行找到的第一个 a 为 As/a/A/g替换当前行找到的所有 a 为 An1,n2s/a/A/g替换 n1~n2 行间所 a 为 A1,$s/a/A/g替换全文 a 为 A%s/a/A/g替换全文 a 为 A%s/\r//g删除行尾的^M
注意:
- n1 和 n2 规则:为
.时,表示当前行;$时,表示最后一行;- a 和 A 规则:
^I是 TAB,通过直接点击 TAB 键输入;允许正则表达式%等同于1,$
存稿录入,未完待续……

