Vim 编辑器快捷键
前言:Vim 有三种基本模式
| 模式 | 名称 | 进入方法 | 退出方法 |
|---|---|---|---|
| 命令模式(Normal) | 默认模式,用于浏览、复制、删除、移动光标等 | 启动 Vim 时默认进入;按 Esc 可从其他模式返回 |
按 : 进入扩展命令模式;按 i/a/o 等进入插入模式 |
| 插入模式(Insert) | 文本输入模式,可像普通编辑器一样键入内容 | 在命令模式下按 i、a、o、I、A、O、s、S 等 |
按 Esc 返回命令模式 |
| 扩展命令模式(Ex / Cmdline) | 执行保存、退出、替换、设置等命令 | 在命令模式下按 :(冒号) |
按 Esc 返回命令模式;或执行 :q、:wq、:q! 等退出 Vim |
一、命令模式(Normal Mode)
1. 进入插入模式(从命令模式切换到插入模式)
| 快捷键 | 英文助记 | 作用 |
|---|---|---|
a |
append | 在当前光标之后插入 |
A |
append | 在当前行末尾插入 |
i |
insert | 在当前光标位置插入 |
I |
insert | 在当前行开头插入 |
o |
open | 在当前行下方新建一行并插入 |
O |
open | 在当前行上方新建一行并插入 |
s |
switch | 删除当前光标处的字符并插入 |
S |
switch | 删除当前行所有字符并插入 |
2. 返回命令模式
Esc—— 任何模式下按Esc均可回到命令模式
3. 光标移动
| 快捷键 | 作用 |
|---|---|
← 或 h |
向左移动一格 |
↓ 或 j |
向下移动一行 |
↑ 或 k |
向上移动一行 |
→ 或 l |
向右移动一格 |
0 或 ^ |
移动到当前行开头 |
$ |
移动到当前行结尾 |
PgUp |
向上翻一页 |
PgDn |
向下翻一页 |
gg |
跳到文件首行 |
G |
跳到文件末行 |
4. 翻页(页面切换)
| 快捷键 | 助记 | 作用 |
|---|---|---|
Ctrl + f |
forward | 向下翻一页 |
Ctrl + b |
backward | 向上翻一页 |
Ctrl + u |
up | 向上翻半页 |
Ctrl + d |
down | 向下翻半页 |
5. 搜索
| 快捷键 | 作用 |
|---|---|
/ |
进入搜索模式,输入关键词后回车开始搜索 |
n |
向下继续查找下一个匹配 |
N |
向上继续查找上一个匹配 |
6. 常用编辑操作(复制、粘贴、删除、撤销)
复制(yank)
| 快捷键 | 作用 |
|---|---|
yy |
复制当前行 |
nyy(n 为数字) |
复制当前行及向下共 n 行 |
粘贴(paste)
| 快捷键 | 作用 |
|---|---|
p |
在光标后粘贴复制的内容 |
np(n 为数字) |
粘贴复制的内容 n 次 |
删除(delete)
| 快捷键 | 作用 |
|---|---|
dd |
删除当前行 |
ndd(n 为数字) |
删除当前行及向下共 n 行 |
dgg |
从当前行开始,向上删除至文件首行 |
dG |
从当前行开始,向下删除至文件末行(注:原文写为 Dg,应为 dG) |
d0 |
从光标位置删除到本行开头 |
d$ |
从光标位置删除到本行结尾 |
撤销与重做
| 快捷键 | 作用 |
|---|---|
u |
撤销上一步操作(undo) |
Ctrl + r |
重做(撤销撤销) |
二、扩展命令模式(末行模式)
在命令模式下按 : 进入,执行命令后按回车生效。
1. 常规操作(保存、退出、设置)
| 命令 | 英文助记 | 作用 |
|---|---|---|
:set nu |
number | 显示行号 |
:set nonu |
nonumber | 取消显示行号 |
:set paste |
paste | 设置粘贴模式(避免自动缩进干扰) |
:w |
write | 保存文件 |
:w /newfile |
write | 另存为指定文件(/newfile 为路径) |
:q |
quit | 退出(未修改时) |
:q! |
quit! | 强制退出,放弃所有修改 |
:wq |
write & quit | 保存并退出 |
2. 替换操作(s = substitute)
| 命令 | 作用 |
|---|---|
:s /old/new |
替换当前行中第一个 old 为 new |
:s /old/new/g |
替换当前行中所有 old 为 new |
:#,# s/old/new/g |
在指定行号范围(如 3,10)内替换所有 old 为 new |
:%s /old/new/g |
在整个文件范围内替换所有 old 为 new |
:#,$s/old/new/g |
从第 # 行到文件末尾替换所有 old 为 new |
三、可视化模式
| 操作类型 | 操作键 | 功能 |
|---|---|---|
| 字符选择 | v | 光标经过字符被选中 |
| 行选择 | V | 按行选择 |
| 区块选择 | Ctrl + v | 按"块"选择 |
| 复制 | y | 复制选中内容 |
| 粘贴 | p | 粘贴复制内容 |