VIM 的使用
VIM 的基本模式
1. 一般模式
一进入 VIM 就是处于一般模式(命令模式),该模式下只能输入指令,不能输入文字。这些指令可能是让光标移动的指令,也可能是删除指令或取代指令。
2. 编辑模式
输入” i” 就会进入编辑模式(插入模式),此时在状态列会有INSERT字样。在该模式下才可以输入文字,按 Esc 键又会回到命令模式
3. 底行模式
输入 :就会进入底行模式,此时坐下角会有一个冒号,等待输入命令。按 Esc 键就可以返回命令模式。

VIM 的基本操作
VIM 的命令行模式操作
1. 进入插入模式
i:光标前插入在光标左侧输入正文。
I:在光标所在行的开头输入正文。
a:光标后插入在光标右侧输入正文。
A:在光标所在行的末尾输入正文。
o:在光标所在行的下一行增添新行。
O:在光标所在行的上一行增添新行。
2. 移动光标
hjkl: 左、下、上、右。
Ctrl+B:在文件中向上移动一页(相当于 PageUp 键)
Ctrl+F:在文件中向下移动一页(相当于 PageDown 键)
G: 移到文件最后。
H: 将光标移动到屏幕最上行 (Highest)
nH: 将光标移到屏幕的第 n 行。
M: 将光标移到屏幕的中间。
L: 将光标移到屏幕的最下行。
nL: 将光标移动到屏幕的倒数第 n 行。
w: 在指定行内右移光标,到下一个字的开头。
e: 在指定行内右移光标,到下一个字的末尾。
b: 在指定行内左移光标,到前一个字的开头。
0:左移光标,到本行的开头。
$:右移光标,到本行的末尾。、
^:移动光标,到本行的第一个非空字符。
3. 删除
x: 删除光标所指的当前的字符
nx: 删除光标所指的前 n 个字符
:1,#d: 删除行 1 至行 #的文字
X: 删除光标前面一个字符。
D:删除至行尾
dw: 删除光标右侧的字。
ndw: 删除光标右侧的 n 个字。
db: 删除光标左侧的字。
ndb: 删除光标左侧的 n 个字。
dd: 删除光标所在行。
ndd: 删除 n 行内容。
4. 更改
cw: 更改光标处之字到此一单词之字尾处。
c#w: 如 c3w 表示更改 3 个单词。
cc: 修改行。
5. 取代
r: 取代光标处之字符
R: 取代字符直到按 Esc 键为止。
6. 复制和粘贴
yw: 复制光标之字到字尾至缓存区。
yy: 复制光标所在之行至缓存区。
#yy: 如 5yy,复制光标所在之处以下 5 行至缓冲区。
P: 把缓冲区的资料粘贴在所在行之后。
p: 把缓冲区的资料粘贴在所在行之前。
7. 撤销
- u:undo, 复原至上一动作。
8. 重复上一个命令
- .: :重复上一个命令
VIM 的底行模式的操作
1. 退出命令
:wq 或: x,先保存再退出 VIM。
:w 或: w filename :保存 / 保存为 filename 名的文件。
:q :退出
:q! 或: quit :不保存退出 VIM。
:wq! :强制保存, 并退出。
2. 显示和取消行号
:set nu: 显示行号。
:set nonu: 不显示行号。
3. 字符搜索
:/str :正向搜索
:?str :反向搜索
:/str/ w file :正向搜索,并将第一个包含字符串 str 的行写入 file 文件
:/str1,/str2/w file :正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写入 file 文件
4. 删除正文
:d :删除光标所在行
:3 d :删除 3 行
:.,$ d :删除当前行至正文的末尾
:/str1/,str2/d :删除从字符串 str1 到 str2 的所有行。
5. 恢复文件
- :recover :恢复文件