1. 模式 (Modes)
- Normal (普通模式): 默认模式,用于导航和操作文本。
i: Insert (插入模式) - 在光标前插入文本。a: Append (追加模式) - 在光标后插入文本。I: 在当前行首插入。A: 在当前行尾追加。R: Replace (替换模式) - 覆盖现有文本。v: Visual (可视模式) - 选择字符。V: Visual Line (可视行模式) - 选择整行。Ctrl + v: Visual Block (可视块模式) - 选择矩形块。:: Command-line (命令行模式) - 输入命令。Esc: 返回普通模式。
2. 基础移动 (Basic Movement)
h: 向左移动。j: 向下移动。k: 向上移动。l: 向右移动。w: 移动到下一个单词的开头。b: 移动到上一个单词的开头。e: 移动到当前单词的结尾。ge: 移动到上一个单词的结尾。0: 移动到行首。^: 移动到行内第一个非空白字符。$: 移动到行尾。gg: 移动到文件开头。G: 移动到文件末尾。行号 + G: 跳转到指定行。
3. 高级导航 (Advanced Navigation)
Ctrl + o: 跳转到上一个光标位置。Ctrl + i: 跳转到下一个光标位置。Ctrl + u: 向上滚动半屏。Ctrl + d: 向下滚动半屏。Ctrl + f: 向下滚动一整屏。Ctrl + b: 向上滚动一整屏。H: 移动到屏幕顶部 (High)。M: 移动到屏幕中间 (Middle)。L: 移动到屏幕底部 (Low)。zz: 将当前行置于屏幕中间。zt: 将当前行置于屏幕顶部。zb: 将当前行置于屏幕底部。
4. 搜索与查找 (Search & Find)
/模式: 向前搜索“模式”。?模式: 向后搜索“模式”。n: 按相同方向重复上一次搜索。N: 按相反方向重复上一次搜索。*: 向前搜索光标下的单词。#: 向后搜索光标下的单词。f + 字符: 在当前行向前查找“字符”。F + 字符: 在当前行向后查找“字符”。t + 字符: 向前移动到“字符”之前。T + 字符: 向后移动到“字符”之后。;: 重复上一次f,F,t, 或T操作。,: 反向重复上一次f,F,t, 或T操作。
5. 基础编辑 (Basic Editing)
x: 删除光标下的字符。r + 字符: 用“字符”替换光标下的字符。~: 切换光标下字符的大小写。.: 重复上一次编辑操作(极其强大)。u: 撤销 (Undo)。Ctrl + r: 重做 (Redo)。J: 将当前行与下一行合并。gJ: 合并两行但不添加空格。
6. 删除、复制 (Yank) 与粘贴
dd: 删除(剪切)当前行。dw: 删除从光标到下一个单词开头的内容。de: 删除从光标到当前单词结尾的内容。d0: 删除从光标到行首的内容。d$: 删除从光标到行尾的内容。dgg: 删除从光标到文件开头的内容。dG: 删除从光标到文件末尾的内容。yy: 复制 (Yank) 当前行。yw: 复制一个单词。p: 在光标后粘贴。P: 在光标前粘贴。
7. 修改 (Change) - 删除并进入插入模式
cc: 修改整行。cw: 修改从光标到下一个单词开头的内容。ce: 修改从光标到当前单词结尾的内容。c$: 修改从光标到行尾的内容。s: 删除当前字符并进入插入模式。S: 删除当前行并进入插入模式。
8. 文本对象 (Text Objects) - Vim 的“语法”
语法: [操作][i/a][对象] (例如:ciw = 修改单词内部)
iw: 单词内部 (Inner word)。aw: 单词周围 (Around word,包含空格)。is: 句子内部 (Inner sentence)。as: 句子周围 (Around sentence)。ip: 段落内部 (Inner paragraph)。ap: 段落周围 (Around paragraph)。i(或i): 括号内部。a(或a): 括号周围。i[或i]: 方括号内部。i": 引号内部。
9. 替换 (Search & Replace)
:%s/旧/新/g: 替换全文件中的“旧”为“新”。:%s/旧/新/gc: 替换全文件并逐一确认。:s/旧/新/g: 替换当前行中的“旧”为“新”。
10. 文件与退出
:w: 保存 (Write)。:q: 退出 (Quit)。:wq或:x或ZZ: 保存并退出。:q!: 强制退出(不保存)。:e 文件名: 打开并编辑指定文件。:h 主题: 查看关于“主题”的帮助。
11. 窗口与标签页 (Windows & Tabs)
:sp或Ctrl+w, s: 水平分割窗口。:vsp或Ctrl+w, v: 垂直分割窗口。Ctrl+w, h/j/k/l: 在分割窗口间移动光标。Ctrl+w, w: 循环切换窗口。Ctrl+w, q: 关闭当前窗口。:tabnew: 新建标签页。gt: 下一个标签页。gT: 上一个标签页。
12. 宏 (Macros) 与 标记 (Marks)
qa: 开始录制宏到寄存器a。q: 停止录制。@a: 执行寄存器a中的宏。@@: 重复执行上一次宏。ma: 在当前位置设置标记a。'a: 跳转到标记a所在行的开头。- ``a
: 跳转到标记a` 的精确位置。
13. 可视模式操作
ggVG: 选中全文件。>: 增加缩进。<: 减少缩进。y: 复制选中部分。d: 删除选中部分。gu: 将选中部分转为小写。gU: 将选中部分转为大写。
14. 缩进与数字
>>: 缩进当前行。<<: 减少当前行缩进。==: 自动缩进当前行。Ctrl + a: 增加光标下的数字。Ctrl + x: 减少光标下的数字。
15. 高级格式化
gU + 动作: 将动作范围内的文本转为大写。gu + 动作: 将动作范围内的文本转为小写。g~ + 动作: 反转动作范围内文本的大小写。g? + motion: 对动作范围内的文本进行 rot13 加密。