Vi/Vim 编辑文件的核心常用命令
Vi/Vim 编辑文件的核心常用命令#
一、基础模式切换(最核心)#
| 操作 | 命令 | 说明 |
|---|---|---|
| 进入插入模式(编辑文本) | i | 在光标当前位置插入(最常用) |
| 进入插入模式 | a | 在光标下一个字符后插入 |
| 进入插入模式 | o | 在光标下一行新建一行并插入 |
| 进入插入模式 | I | 跳到当前行行首插入 |
| 进入插入模式 | A | 跳到当前行行尾插入 |
| 退出插入模式(回到命令模式) | Esc | 按一次即可,编辑完必按 |
| 进入末行模式(保存/退出/查找) | : | 命令模式下按 :,底部会出现 : 提示符 |
二、文本编辑(命令模式下)#
1. 光标移动(不用鼠标!)#
| 命令 | 说明 |
|---|---|
h/j/k/l | 左/下/上/右移动(替代方向键,老手必备) |
0 | 跳到当前行行首(数字 0) |
$ | 跳到当前行行尾 |
gg | 跳到文件第一行 |
G | 跳到文件最后一行 |
5G | 跳到第 5 行(替换数字可跳任意行) |
w | 跳到下一个单词开头 |
b | 跳到上一个单词开头 |
2. 复制/粘贴/删除#
| 命令 | 说明 |
|---|---|
yy | 复制当前行(最常用,「yank」缩写) |
5yy | 复制从当前行开始的 5 行 |
p | 粘贴到光标下一行(「paste」缩写) |
P | 粘贴到光标上一行 |
dd | 删除当前行(「delete」缩写,最常用) |
5dd | 删除从当前行开始的 5 行 |
x | 删除光标所在字符(按 Delete 键效果一样) |
dw | 删除光标所在单词 |
u | 撤销上一步操作(「undo」,改错必用) |
Ctrl + r | 恢复撤销的操作(「redo」) |
3. 快速修改#
| 命令 | 说明 |
|---|---|
r | 替换光标所在字符(比如 ra 把当前字符改成 a) |
cc | 清空当前行并进入插入模式 |
cw | 清空当前单词并进入插入模式 |
三、保存/退出(末行模式下,先按 : 再输命令)#
| 命令 | 说明 |
|---|---|
:w | 保存文件(「write」,只保存不退出) |
:w test.txt | 另存为 test.txt(指定新文件名) |
:q | 退出编辑器(文件未修改时可用) |
:q! | 强制退出,放弃所有修改(改错不想保存必用) |
:wq | 保存并退出(最常用,等价于 :x) |
:x | 保存并退出(比 :wq 更智能:文件没修改时不会额外写入) |
四、查找/替换(末行模式下)#
1. 查找#
| 命令 | 说明 |
|---|---|
:/关键词 | 从光标处向下查找「关键词」(比如 :/codex 查找 codex) |
:?关键词 | 从光标处向上查找「关键词」 |
n | 跳转到下一个匹配结果 |
N | 跳转到上一个匹配结果 |
2. 替换(新手必学)#
| 命令 | 说明 |
|---|---|
:%s/旧内容/新内容/g | 全局替换(整个文件的旧内容换成新内容) 比如 :%s/codex/CODEX/g 把所有 codex 换成 CODEX |
:1,10s/旧内容/新内容/g | 替换 1-10 行的旧内容 |
:s/旧内容/新内容/g | 只替换当前行的旧内容 |
| 补充 | g 表示「全局」,不加则只替换每行第一个匹配项;加 c 表示确认替换(:%s/旧/新/gc),避免误替换 |