这是一份为您精心整理的 vi / vim 深度学习笔记。
这份笔记以“实战场景”为导向,特别强化了您要求的“快速移动”技巧,旨在帮助您从“只会打字”进阶到“在文本中飞舞”。
初学者必须理解 vi 的“人格分裂”:
普通模式 (Normal Mode):默认模式。按键是命令(移动、删除、复制)。
Esc 回到这里。插入模式 (Insert Mode):按键是打字。
i、a、o 等进入。命令模式 (Command Mode):屏幕底部输入指令。
:、/、? 进入。
这是 vi 效率的源泉。请强迫自己不要使用方向键。
h 左 | j 下 | k 上 | l 右
记忆法:右手食指放在 j (基准键),负责向下(最常用)。
不要一个个字符 l 过去,要按单词跳。
w (Word):跳到下一个单词开头。
b (Back):跳到上一个单词开头。
e (End):跳到当前单词的结尾。
w 快速跳过参数名。
0 (数字0):跳到绝对行首。
^ (脱字符):跳到行首第一个非空字符。
^ 比 0 好用。$:跳到行尾。
A (相当于 $ + a)。
gg:飞到文件第一行。G:飞到文件最后一行。50G:飞到第 50 行。Ctrl + f (Forward):向下翻一页。Ctrl + b (Back):向上翻一页。Ctrl + u / Ctrl + d (Up/Down):向上/向下翻半页(推荐,不易迷失视线)。
这是 vim 最快的行内移动方式。
f + 字符 (Find):向右查找当前行出现的第一个该字符,并跳过去。
listen 80; 的开头,想改 80。输入 f8,光标直接跳到 8 上。; (分号):重复上一次 f 查找(如果一行有多个目标)。
i不要只会用 Backspace 删字。
| 按键 | 含义 | 最佳场景 |
|---|---|---|
i | 光标前插入 | 修改单词拼写 |
a | 光标后插入 | 在单词末尾追加 |
o | 下方新开一行 | 写新配置项 |
O | 上方新开一行 | 插入遗漏的配置 |
x:删除当前字符 (等同于 Delete 键)。dw:删除一个单词 (Delete Word)。dd:删除整行。d$ / D:从光标删到行尾(常用于删除注释)。dG:从当前行删到文件末尾。
cw (Change Word):删除当前单词,并自动进入插入模式。
cc:删除整行并进入插入模式。
r (Replace):替换当前光标下的一个字符(不需要进入插入模式)。
True 改成 Treu 这种拼写错误,对准 u 按 re 即可。
yy:复制整行。yw:复制单词。y$:复制到行尾。p (小写):在光标后粘贴。P (大写):在光标前粘贴。实战技巧:移动代码块
dd(剪切这行)- 移动到目标位置
p(粘贴)
\* (Shift+8):光标停在某个单词上时,按 *,快速搜索该单词(超级好用)。
语法::[范围]s/旧/新/[标志]
像用鼠标选中一样操作文本。
v (小写):按字符选择(类似鼠标拖黑)。V (大写):按行选择(配合 y 复制多行,或 d 删除多行)。Ctrl + v:块选择模式(列编辑)。实战场景:批量注释
- 光标移到第一行开头。
Ctrl + v进入块模式。- 按
j向下选中多行行首。- 按
I(大写 i) 进入插入模式。- 输入
#。- 连按两次
Esc。神奇的事情发生了:所有选中行都加上了#。
u:撤销 (Undo)。Ctrl + r:重做 (Redo)。
ZZ (Shift+z+z):保存并退出(最快)。
h j k l。w 和 b:不要按着 l 键不放。d (动作) + w (范围) = dw (删除单词) 的逻辑,你就能创造出 d3w (删除3个单词) 这种命令。