四种模式
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
等同于:wq
yy
复制当前整行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,$
存稿录入,未完待续……