Vim使用
总结
- Vim 三种模式:命令模式(默认)→ 编辑模式(i/a/o)→ 末行模式(:)
- 常用操作:
yy复制、dd删除、u撤销、/关键词搜索、:%s/old/new/g全文替换 - 复杂文本替换推荐用 sed:文本内容替换
Vim 有三种模式,搞清楚模式切换是用好 Vim 的前提。
1. 命令模式(Normal Mode)
打开文件默认就是命令模式,用来移动光标、复制、删除、粘贴。
1.1 光标移动
| 按键 | 效果 | 场景 |
|---|---|---|
w |
跳到下一个词 | 快速跳过变量名 |
e |
跳到当前词尾 | 定位到词的末尾 |
^ 或 Shift+6 |
跳到行首 | 回到行开头 |
$ 或 Shift+4 |
跳到行尾 | 快速到行末追加内容 |
1G |
跳到文件第一行 | 回到文件顶部 |
G |
跳到文件最后一行 | 查看文件末尾日志 |
数字G |
跳到指定行 | 配合报错行号快速定位 |
1.2 复制与粘贴
| 按键 | 效果 |
|---|---|
yy |
复制当前行 |
y数字y |
复制当前行往下 N 行 |
yw |
复制一个词 |
p |
粘贴到光标下方 |
场景:改配置文件时,复制一段已有配置再修改,比手敲快多了。
1.3 删除与剪切
| 按键 | 效果 |
|---|---|
dd |
删除当前行 |
d数字d |
删除当前行往下 N 行 |
dw |
删除一个词 |
x |
删除光标处字符(相当于 Del) |
X |
删除光标前一个字符(相当于 Backspace) |
场景:删掉配置文件里某个不需要的参数块,
d数字d比一行行删快。
1.4 撤销
| 按键 | 效果 |
|---|---|
u |
撤销上一步操作 |
2. 编辑模式(Insert Mode)
按 i、a 或 o 进入,开始编辑文本,按 Esc 退回命令模式。
| 按键 | 区别 |
|---|---|
i |
在光标前插入 |
a |
在光标后插入 |
o |
在当前行下方新开一行 |
场景:
o特别适合在某行下面追加新内容,不用先跳到行尾再回车。
3. 末行模式(Command-line Mode)
命令模式下按 : 或 / 进入,用来保存、退出、搜索、替换。
3.1 保存与退出
| 命令 | 效果 |
|---|---|
:wq |
保存并退出 |
:q |
退出(文件未修改时) |
:q! |
强制退出不保存 |
3.2 显示行号
| 命令 | 效果 |
|---|---|
:set nu |
显示行号 |
:set nonu |
隐藏行号 |
场景:看日志或排查报错时,开启行号方便定位。
3.3 搜索
| 命令 | 效果 |
|---|---|
/关键词 |
向下搜索 |
n |
跳到下一个匹配 |
N |
跳到上一个匹配 |
:noh |
清除高亮 |
场景:在几百行的配置文件里找某个参数,
/参数名比肉眼扫快多了。
3.4 替换
| 命令 | 效果 |
|---|---|
:s/old/new |
替换当前行第一个匹配 |
:s/old/new/g |
替换当前行所有匹配 |
:%s/old/new/g |
替换全文所有匹配 |
场景:批量改配置里的 IP 地址或端口号,
:%s/old/new/g一条命令搞定。
如果要做更复杂的文本替换,可以用 sed:[[文本内容替换]]