Vim使用

#linux

总结
  • 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)

iao 进入,开始编辑文本,按 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:[[文本内容替换]]