Vim 编辑器快捷键
备注前言:Vim 有三种基本模式
- 命令模式
- 插入模式
- 扩展命令模式
一、命令模式
启动 Vim 时默认进入
1. 返回命令模式
- Esc —— 任何模式下按 Esc 均可回到命令模式
2. 光标移动
| 快捷键 | 作用 |
|---|---|
| ← 或 h | 向左移动一格 |
| ↓ 或 j | 向下移动一行 |
| ↑ 或 k | 向上移动一行 |
| → 或 l | 向右移动一格 |
| 0 或 ^ | 移动到当前行开头 |
| $ | 移动到当前行结尾 |
| PgUp | 向上翻一页 |
| PgDn | 向下翻一页 |
| gg | 跳到文件首行 |
| G | 跳到文件末行 |
3. 翻页(页面切换)
| 快捷键 | 助记 | 作用 |
|---|---|---|
| Ctrl + f | forward | 向下翻一页 |
| Ctrl + b | backward | 向上翻一页 |
| Ctrl + u | up | 向上翻半页 |
| Ctrl + d | down | 向下翻半页 |
4. 搜索
| 快捷键 | 作用 |
|---|---|
| / | 进入搜索模式,输入关键词后回车开始搜索 |
| n | 向下继续查找下一个匹配 |
| N | 向上继续查找上一个匹配 |
5. 常用编辑操作(复制、粘贴、删除、撤销)
复制(yank)
| 快捷键 | 作用 |
|---|---|
| yy | 复制当前行 |
| nyy(n 为数字) | 复制当前行及向下共 n 行 |
| y$ | 复制从光标当前位置一直到这一行末尾的内容。 |
| yw | 复制光标所在的这一个单词 |
粘贴(paste)
| 快捷键 | 作用 |
|---|---|
| p | 在光标后粘贴复制的内容 |
| P(注意是大写) | 在光标前粘贴复制的内容 |
| np(n 为数字) | 粘贴复制的内容 n 次 |
删除(delete)
| 快捷键 | 作用 |
|---|---|
| dd | 删除当前行 |
| ndd(n 为数字) | 删除当前行及向下共 n 行 |
| dgg | 从当前行开始,向上删除至文件首行 |
| dG | 从当前行开始,向下删除至文件末行(注:原文写为 Dg,应为 dG) |
| d0 | 从光标位置删除到本行开头 |
| d$ | 从光标位置删除到本行结尾 |
撤销与重做
| 快捷键 | 作用 |
|---|---|
| u | 撤销上一步操作(undo) |
| Ctrl + r | 重做(撤销撤销) |
二、 插入模式
在命令模式下按:按下面表格快捷键进入
| 快捷键 | 英文助记 | 作用 |
|---|---|---|
| a | append | 在当前光标之后插入 |
| A | append | 在当前行末尾插入 |
| i | insert | 在当前光标位置插入 |
| I | insert | 在当前行开头插入 |
| o | open | 在当前行下方新建一行并插入 |
| O | open | 在当前行上方新建一行并插入 |
| s | switch | 删除当前光标处的字符并插入 |
| S | switch | 删除当前行所有字符并插入 |
三、扩展命令模式
在命令模式下按 : 进入,执行命令后按回车生效。
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 /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 | 粘贴复制内容 |