该文档由 Claude 3.x 搭配 Deepseek Reasoner 生成,用于教程讲解补充,内容仅供参考。如有任何疑问,请 留言。
搜索文章内容请按下键盘上的Ctrl(Mac为Command) + F查找,
收藏文章请按下键盘上的Ctrl / Command + D加入书签栏。
📝 Vim 操作指南
1. 🚀 基础模式切换
| 快捷键 | 功能 | 说明 |
|---|
i | 进入插入模式 | 在光标前插入 |
I | 行首插入 | 移到行首并进入插入模式 |
a | 光标后插入 | 在光标后插入 |
A | 行尾插入 | 移到行尾并进入插入模式 |
o | 下方新行 | 在当前行下方新建行并插入 |
O | 上方新行 | 在当前行上方新建行并插入 |
s | 替换字符 | 删除当前字符并进入插入模式 |
S | 替换整行 | 删除整行并进入插入模式 |
v | 可视模式 | 字符选择模式 |
V | 行可视模式 | 行选择模式 |
Ctrl+v | 块可视模式 | 块选择模式 |
R | 替换模式 | 连续替换字符 |
Esc | 返回普通模式 | 从任何模式返回 |
: | 命令行模式 | 进入命令行 |
2. 🧭 光标移动
基础移动
| 快捷键 | 功能 | 说明 |
|---|
h | 左移 | 向左移动一个字符 |
j | 下移 | 向下移动一行 |
k | 上移 | 向上移动一行 |
l | 右移 | 向右移动一个字符 |
0 | 行首 | 移到行的开始 |
^ | 行首非空 | 移到行首第一个非空字符 |
$ | 行尾 | 移到行的结束 |
g_ | 行尾非空 | 移到行尾最后一个非空字符 |
单词移动
| 快捷键 | 功能 | 说明 |
|---|
w | 下个单词首 | 移到下一个单词开头 |
W | 下个大单词首 | 移到下一个大单词开头(空格分隔) |
e | 单词尾 | 移到当前单词结尾 |
E | 大单词尾 | 移到当前大单词结尾 |
b | 上个单词首 | 移到上一个单词开头 |
B | 上个大单词首 | 移到上一个大单词开头 |
ge | 上个单词尾 | 移到上一个单词结尾 |
页面移动
| 快捷键 | 功能 | 说明 |
|---|
gg | 文件开头 | 移到文件第一行 |
G | 文件结尾 | 移到文件最后一行 |
nG | 第n行 | 移到第n行(如 10G) |
:n | 第n行 | 移到第n行(如 :10) |
H | 屏幕顶部 | 移到屏幕顶部 |
M | 屏幕中间 | 移到屏幕中间 |
L | 屏幕底部 | 移到屏幕底部 |
Ctrl+f | 向下翻页 | 向下滚动一屏 |
Ctrl+b | 向上翻页 | 向上滚动一屏 |
Ctrl+d | 向下半页 | 向下滚动半屏 |
Ctrl+u | 向上半页 | 向上滚动半屏 |
Ctrl+e | 向下滚行 | 向下滚动一行 |
Ctrl+y | 向上滚行 | 向上滚动一行 |
精确定位
| 快捷键 | 功能 | 说明 |
|---|
f{char} | 向右查找字符 | 移到行内下一个指定字符 |
F{char} | 向左查找字符 | 移到行内上一个指定字符 |
t{char} | 向右查找前 | 移到行内下一个指定字符前 |
T{char} | 向左查找前 | 移到行内上一个指定字符前 |
; | 重复查找 | 重复上次 f/F/t/T 操作 |
, | 反向重复 | 反向重复上次 f/F/t/T 操作 |
% | 匹配括号 | 在匹配的括号间跳转 |
3. ✂️ 删除操作
| 快捷键 | 功能 | 说明 |
|---|
x | 删除字符 | 删除光标下的字符 |
X | 向前删除 | 删除光标前的字符 |
dw | 删除单词 | 删除到下个单词开头 |
dW | 删除大单词 | 删除到下个大单词开头 |
de | 删除到词尾 | 删除到当前单词结尾 |
db | 删除到词首 | 删除到上个单词开头 |
dd | 删除整行 | 删除当前行 |
ndd | 删除n行 | 删除n行(如 3dd) |
d$ | 删除到行尾 | 删除到行结束 |
D | 删除到行尾 | 同 d$ |
d0 | 删除到行首 | 删除到行开始 |
d^ | 删除到行首非空 | 删除到行首第一个非空字符 |
dG | 删除到文件尾 | 删除到文件结束 |
dgg | 删除到文件首 | 删除到文件开始 |
d/pattern | 删除到匹配 | 删除到匹配的模式 |
4. 📋 复制粘贴
| 快捷键 | 功能 | 说明 |
|---|
yy | 复制整行 | 复制当前行 |
nyy | 复制n行 | 复制n行(如 3yy) |
yw | 复制单词 | 复制到下个单词开头 |
ye | 复制到词尾 | 复制到当前单词结尾 |
y$ | 复制到行尾 | 复制到行结束 |
Y | 复制到行尾 | 同 y$ |
y0 | 复制到行首 | 复制到行开始 |
yG | 复制到文件尾 | 复制到文件结束 |
ygg | 复制到文件首 | 复制到文件开始 |
p | 向后粘贴 | 在光标后粘贴 |
P | 向前粘贴 | 在光标前粘贴 |
gp | 粘贴并定位 | 粘贴后光标移到末尾 |
gP | 向前粘贴定位 | 向前粘贴后光标移到末尾 |
5. 🔄 撤销重做
| 快捷键 | 功能 | 说明 |
|---|
u | 撤销 | 撤销上一次操作 |
U | 撤销整行 | 撤销对整行的所有修改 |
Ctrl+r | 重做 | 重做被撤销的操作 |
. | 重复操作 | 重复上一次操作 |
n. | 重复n次 | 重复上一次操作n次 |
6. 🔍 搜索替换
搜索
| 快捷键 | 功能 | 说明 |
|---|
/pattern | 向下搜索 | 向下搜索模式 |
?pattern | 向上搜索 | 向上搜索模式 |
n | 下一个匹配 | 重复搜索(同方向) |
N | 上一个匹配 | 重复搜索(反方向) |
* | 搜索当前单词 | 向下搜索光标下的单词 |
# | 反向搜索单词 | 向上搜索光标下的单词 |
g* | 部分匹配搜索 | 向下搜索包含当前单词的内容 |
g# | 部分匹配反搜 | 向上搜索包含当前单词的内容 |
替换
| 命令 | 功能 | 说明 |
|---|
:s/old/new | 替换当前行第一个 | 替换当前行第一个匹配 |
:s/old/new/g | 替换当前行所有 | 替换当前行所有匹配 |
:%s/old/new/g | 替换全文所有 | 替换全文所有匹配 |
:%s/old/new/gc | 交互式替换 | 每次替换前确认 |
:n,ms/old/new/g | 范围替换 | 替换第n到m行 |
:'<,'>s/old/new/g | 选中区域替换 | 替换选中的区域 |
7. 📐 可视模式操作
选择
| 快捷键 | 功能 | 说明 |
|---|
v | 字符选择 | 进入字符可视模式 |
V | 行选择 | 进入行可视模式 |
Ctrl+v | 块选择 | 进入块可视模式 |
gv | 重新选择 | 重新选择上次选中的区域 |
o | 切换端点 | 在选择区域的两端切换 |
aw | 选择单词 | 选择一个单词 |
as | 选择句子 | 选择一个句子 |
ap | 选择段落 | 选择一个段落 |
ab | 选择括号内 | 选择 () 内的内容 |
aB | 选择大括号内 | 选择 {} 内的内容 |
at | 选择标签内 | 选择 HTML 标签内容 |
可视模式操作
| 快捷键 | 功能 | 说明 |
|---|
d | 删除选中 | 删除选中的内容 |
y | 复制选中 | 复制选中的内容 |
c | 修改选中 | 删除选中内容并进入插入模式 |
r | 替换选中 | 用单个字符替换选中内容 |
u | 转小写 | 将选中内容转为小写 |
U | 转大写 | 将选中内容转为大写 |
~ | 切换大小写 | 切换选中内容的大小写 |
> | 右缩进 | 增加缩进 |
< | 左缩进 | 减少缩进 |
= | 自动缩进 | 自动调整缩进 |
8. 📁 文件操作
文件管理
| 命令 | 功能 | 说明 |
|---|
:w | 保存 | 保存当前文件 |
:w filename | 另存为 | 保存为指定文件名 |
:wa | 保存所有 | 保存所有打开的文件 |
:q | 退出 | 退出当前文件 |
:q! | 强制退出 | 不保存强制退出 |
:wq | 保存退出 | 保存并退出 |
:x | 保存退出 | 同 :wq |
ZZ | 保存退出 | 同 :wq |
ZQ | 不保存退出 | 同 :q! |
:qa | 退出所有 | 退出所有文件 |
:qa! | 强制退出所有 | 不保存退出所有文件 |
文件操作
| 命令 | 功能 | 说明 |
|---|
:e filename | 打开文件 | 编辑指定文件 |
:e! | 重新加载 | 重新加载当前文件 |
:r filename | 读入文件 | 在光标处插入文件内容 |
:r !command | 读入命令输出 | 插入命令执行结果 |
:w !command | 写入命令 | 将内容传给命令 |
:cd path | 改变目录 | 改变工作目录 |
:pwd | 显示目录 | 显示当前工作目录 |
:ls | 列出缓冲区 | 显示打开的文件 |
9. 🪟 窗口分割
分割操作
| 命令 | 功能 | 说明 |
|---|
:sp | 水平分割 | 水平分割当前窗口 |
:vsp | 垂直分割 | 垂直分割当前窗口 |
:sp filename | 分割打开文件 | 水平分割并打开文件 |
:vsp filename | 垂直分割打开 | 垂直分割并打开文件 |
Ctrl+w s | 水平分割 | 同 :sp |
Ctrl+w v | 垂直分割 | 同 :vsp |
Ctrl+w n | 新建窗口 | 创建新的空窗口 |
窗口切换
| 快捷键 | 功能 | 说明 |
|---|
Ctrl+w h | 左窗口 | 切换到左边窗口 |
Ctrl+w j | 下窗口 | 切换到下面窗口 |
Ctrl+w k | 上窗口 | 切换到上面窗口 |
Ctrl+w l | 右窗口 | 切换到右边窗口 |
Ctrl+w w | 下一窗口 | 切换到下一个窗口 |
Ctrl+w W | 上一窗口 | 切换到上一个窗口 |
Ctrl+w t | 顶部窗口 | 切换到顶部窗口 |
Ctrl+w b | 底部窗口 | 切换到底部窗口 |
窗口调整
| 快捷键 | 功能 | 说明 |
|---|
Ctrl+w + | 增加高度 | 增加当前窗口高度 |
Ctrl+w - | 减少高度 | 减少当前窗口高度 |
Ctrl+w > | 增加宽度 | 增加当前窗口宽度 |
Ctrl+w < | 减少宽度 | 减少当前窗口宽度 |
Ctrl+w = | 平均分配 | 使所有窗口大小相等 |
Ctrl+w _ | 最大化高度 | 最大化当前窗口高度 |
| `Ctrl+w | ` | 最大化宽度 |
窗口关闭
| 快捷键 | 功能 | 说明 |
|---|
Ctrl+w c | 关闭窗口 | 关闭当前窗口 |
Ctrl+w q | 退出窗口 | 退出当前窗口 |
Ctrl+w o | 只保留当前 | 关闭其他所有窗口 |
10. 📑 标签页操作
| 命令 | 功能 | 说明 |
|---|
:tabnew | 新建标签 | 创建新标签页 |
:tabnew filename | 打开文件到新标签 | 在新标签中打开文件 |
:tabclose | 关闭标签 | 关闭当前标签页 |
:tabonly | 只保留当前标签 | 关闭其他所有标签页 |
gt | 下一标签 | 切换到下一个标签页 |
gT | 上一标签 | 切换到上一个标签页 |
ngt | 第n个标签 | 切换到第n个标签页 |
:tabs | 列出标签 | 显示所有标签页 |
11. 🔖 标记和跳转
标记操作
| 快捷键 | 功能 | 说明 |
|---|
ma | 设置标记a | 在当前位置设置标记a |
mA | 设置全局标记A | 设置全局标记A(跨文件) |
'a | 跳转到标记a行 | 跳转到标记a所在行 |
`a | 跳转到标记a | 精确跳转到标记a位置 |
'' | 跳转到上次位置行 | 跳转到上次跳转的行 |
| ```` | 跳转到上次位置 | 精确跳转到上次位置 |
:marks | 显示标记 | 显示所有标记 |
:delmarks a | 删除标记a | 删除指定标记 |
跳转列表
| 快捷键 | 功能 | 说明 |
|---|
Ctrl+o | 跳转到旧位置 | 在跳转列表中后退 |
Ctrl+i | 跳转到新位置 | 在跳转列表中前进 |
:jumps | 显示跳转列表 | 显示跳转历史 |
12. 🔧 高级编辑
缩进操作
| 快捷键 | 功能 | 说明 |
|---|
>> | 右缩进 | 当前行右缩进 |
<< | 左缩进 | 当前行左缩进 |
n>> | n行右缩进 | n行右缩进 |
n<< | n行左缩进 | n行左缩进 |
= | 自动缩进 | 自动调整缩进 |
gg=G | 全文自动缩进 | 整个文件自动缩进 |
大小写转换
| 快捷键 | 功能 | 说明 |
|---|
~ | 切换大小写 | 切换光标下字符大小写 |
guu | 整行转小写 | 当前行转小写 |
gUU | 整行转大写 | 当前行转大写 |
guw | 单词转小写 | 当前单词转小写 |
gUw | 单词转大写 | 当前单词转大写 |
排序和去重
| 命令 | 功能 | 说明 |
|---|
:sort | 排序 | 对选中行排序 |
:sort! | 反向排序 | 反向排序 |
:sort u | 排序去重 | 排序并去除重复行 |
:sort n | 数字排序 | 按数字大小排序 |
13. 🎯 文本对象
内部对象(i){#inner-objects}
| 快捷键 | 功能 | 说明 |
|---|
iw | 内部单词 | 当前单词(不含空格) |
iW | 内部大单词 | 当前大单词(不含空格) |
is | 内部句子 | 当前句子 |
ip | 内部段落 | 当前段落 |
i( 或 ib | 内部小括号 | () 内的内容 |
i{ 或 iB | 内部大括号 | {} 内的内容 |
i[ | 内部方括号 | [] 内的内容 |
i< | 内部尖括号 | <> 内的内容 |
i" | 内部双引号 | "" 内的内容 |
i' | 内部单引号 | '' 内的内容 |
| `i`` | 内部反引号 | `` 内的内容 |
it | 内部标签 | HTML 标签内的内容 |
周围对象(a){#around-objects}
| 快捷键 | 功能 | 说明 |
|---|
aw | 周围单词 | 当前单词(含空格) |
aW | 周围大单词 | 当前大单词(含空格) |
as | 周围句子 | 当前句子(含标点) |
ap | 周围段落 | 当前段落(含空行) |
a( 或 ab | 周围小括号 | () 及其内容 |
a{ 或 aB | 周围大括号 | {} 及其内容 |
a[ | 周围方括号 | [] 及其内容 |
a< | 周围尖括号 | <> 及其内容 |
a" | 周围双引号 | "" 及其内容 |
a' | 周围单引号 | '' 及其内容 |
| `a`` | 周围反引号 | `` 及其内容 |
at | 周围标签 | HTML 标签及其内容 |
14. 🔍 命令行模式
基础命令
| 命令 | 功能 | 说明 |
|---|
:help | 帮助 | 显示帮助文档 |
:help keyword | 特定帮助 | 显示关键词帮助 |
:version | 版本信息 | 显示 Vim 版本 |
:set | 显示设置 | 显示所有设置选项 |
:set option | 设置选项 | 设置特定选项 |
:set option? | 查询选项 | 查询选项当前值 |
:set option! | 切换选项 | 切换布尔选项 |
常用设置
| 命令 | 功能 | 说明 |
|---|
:set number | 显示行号 | 显示行号 |
:set nonumber | 隐藏行号 | 隐藏行号 |
:set relativenumber | 相对行号 | 显示相对行号 |
:set hlsearch | 高亮搜索 | 高亮搜索结果 |
:set nohlsearch | 取消高亮 | 取消搜索高亮 |
:set ignorecase | 忽略大小写 | 搜索忽略大小写 |
:set smartcase | 智能大小写 | 智能大小写匹配 |
:set autoindent | 自动缩进 | 启用自动缩进 |
:set expandtab | 空格替换Tab | 用空格替换Tab |
:set tabstop=4 | Tab宽度 | 设置Tab为4个空格 |
:set shiftwidth=4 | 缩进宽度 | 设置缩进为4个空格 |
15. 🔄 宏录制
| 快捷键 | 功能 | 说明 |
|---|
qa | 录制宏a | 开始录制宏到寄存器a |
q | 停止录制 | 停止宏录制 |
@a | 执行宏a | 执行寄存器a中的宏 |
@@ | 重复执行宏 | 重复执行上次的宏 |
n@a | 执行宏n次 | 执行宏a共n次 |
:reg | 显示寄存器 | 显示所有寄存器内容 |
16. 📊 寄存器操作
寄存器类型
| 寄存器 | 功能 | 说明 |
|---|
"a-z | 命名寄存器 | 用户自定义寄存器 |
"A-Z | 追加寄存器 | 追加到对应小写寄存器 |
"0 | 复制寄存器 | 最近复制的内容 |
"1-9 | 删除寄存器 | 最近删除的内容(按时间) |
"" | 默认寄存器 | 默认的复制粘贴寄存器 |
"+ | 系统剪贴板 | 系统剪贴板寄存器 |
"* | 选择缓冲区 | X11 选择缓冲区 |
". | 最后插入 | 最后插入的文本 |
"% | 当前文件名 | 当前文件名 |
"# | 备用文件名 | 备用文件名 |
寄存器操作
| 快捷键 | 功能 | 说明 |
|---|
"ayy | 复制到寄存器a | 复制当前行到寄存器a |
"ap | 从寄存器a粘贴 | 粘贴寄存器a的内容 |
"Ayy | 追加到寄存器a | 追加当前行到寄存器a |
"+yy | 复制到系统剪贴板 | 复制到系统剪贴板 |
"+p | 从系统剪贴板粘贴 | 从系统剪贴板粘贴 |
:reg | 查看所有寄存器 | 显示所有寄存器内容 |
:reg a | 查看寄存器a | 显示寄存器a的内容 |
17. 🔗 折叠操作
| 快捷键 | 功能 | 说明 |
|---|
zf | 创建折叠 | 创建折叠(需要选择文本) |
zd | 删除折叠 | 删除当前折叠 |
zD | 递归删除折叠 | 删除当前位置所有折叠 |
zo | 打开折叠 | 打开当前折叠 |
zO | 递归打开折叠 | 递归打开当前位置折叠 |
zc | 关闭折叠 | 关闭当前折叠 |
zC | 递归关闭折叠 | 递归关闭当前位置折叠 |
za | 切换折叠 | 切换当前折叠状态 |
zA | 递归切换折叠 | 递归切换折叠状态 |
zv | 查看光标行 | 打开足够的折叠显示光标行 |
zx | 更新折叠 | 重新应用折叠设置 |
zX | 重新折叠 | 重新应用所有折叠 |
zm | 增加折叠级别 | 关闭更多折叠 |
zM | 关闭所有折叠 | 关闭文件中所有折叠 |
zr | 减少折叠级别 | 打开更多折叠 |
zR | 打开所有折叠 | 打开文件中所有折叠 |
zn | 禁用折叠 | 临时禁用折叠 |
zN | 启用折叠 | 重新启用折叠 |
zi | 切换折叠启用 | 切换折叠功能开关 |
18. 🎨 语法高亮和文件类型
| 命令 | 功能 | 说明 |
|---|
:syntax on | 启用语法高亮 | 开启语法高亮 |
:syntax off | 关闭语法高亮 | 关闭语法高亮 |
:set filetype=python | 设置文件类型 | 设置为Python文件 |
:set ft=html | 设置文件类型(简写) | 设置为HTML文件 |
:filetype on | 启用文件类型检测 | 自动检测文件类型 |
:filetype plugin on | 启用文件类型插件 | 加载文件类型插件 |
:filetype indent on | 启用文件类型缩进 | 启用智能缩进 |
19. 🔧 自动完成
| 快捷键 | 功能 | 说明 |
|---|
Ctrl+n | 下一个匹配 | 向下选择自动完成 |
Ctrl+p | 上一个匹配 | 向上选择自动完成 |
Ctrl+x Ctrl+l | 行完成 | 完成整行 |
Ctrl+x Ctrl+f | 文件名完成 | 完成文件名 |
Ctrl+x Ctrl+k | 字典完成 | 字典单词完成 |
Ctrl+x Ctrl+t | 同义词完成 | 同义词完成 |
Ctrl+x Ctrl+i | 包含文件完成 | 从包含文件完成 |
Ctrl+x Ctrl+] | 标签完成 | 标签文件完成 |
Ctrl+x Ctrl+v | Vim命令完成 | Vim命令行完成 |
Ctrl+x Ctrl+u | 用户自定义完成 | 用户定义的完成 |
Ctrl+x Ctrl+o | 全能完成 | 智能语法完成 |
Ctrl+x Ctrl+s | 拼写完成 | 拼写检查完成 |
20. 🔍 拼写检查
| 命令/快捷键 | 功能 | 说明 |
|---|
:set spell | 启用拼写检查 | 开启拼写检查 |
:set nospell | 关闭拼写检查 | 关闭拼写检查 |
:set spelllang=en_us | 设置拼写语言 | 设置为美式英语 |
]s | 下一个错误 | 跳到下一个拼写错误 |
[s | 上一个错误 | 跳到上一个拼写错误 |
z= | 拼写建议 | 显示拼写建议 |
zg | 添加到词典 | 将单词添加到个人词典 |
zw | 标记为错误 | 将单词标记为拼写错误 |
zug | 撤销添加 | 撤销添加到词典 |
zuw | 撤销标记 | 撤销错误标记 |
21. 🎯 数字操作
| 快捷键 | 功能 | 说明 |
|---|
Ctrl+a | 数字加1 | 增加光标下的数字 |
Ctrl+x | 数字减1 | 减少光标下的数字 |
n Ctrl+a | 数字加n | 增加数字n |
n Ctrl+x | 数字减n | 减少数字n |
g Ctrl+a | 序列递增 | 选中的数字序列递增 |
g Ctrl+x | 序列递减 | 选中的数字序列递减 |
22. 🔄 多文件编辑
缓冲区操作
| 命令 | 功能 | 说明 |
|---|
:ls | 列出缓冲区 | 显示所有打开的文件 |
:buffers | 列出缓冲区 | 同 :ls |
:b n | 切换到缓冲区n | 切换到第n个缓冲区 |
:b filename | 切换到文件 | 切换到指定文件 |
:bn | 下一个缓冲区 | 切换到下一个缓冲区 |
:bp | 上一个缓冲区 | 切换到上一个缓冲区 |
:bf | 第一个缓冲区 | 切换到第一个缓冲区 |
:bl | 最后缓冲区 | 切换到最后一个缓冲区 |
:bd | 删除缓冲区 | 关闭当前缓冲区 |
:bd n | 删除缓冲区n | 关闭第n个缓冲区 |
:bw | 彻底删除缓冲区 | 彻底删除缓冲区 |
参数列表
| 命令 | 功能 | 说明 |
|---|
:args | 显示参数列表 | 显示命令行参数列表 |
:args *.txt | 设置参数列表 | 设置新的参数列表 |
:next | 下一个文件 | 编辑下一个文件 |
:prev | 上一个文件 | 编辑上一个文件 |
:first | 第一个文件 | 编辑第一个文件 |
:last | 最后文件 | 编辑最后一个文件 |
23. 🎪 高级技巧
命令组合
| 组合 | 功能 | 说明 |
|---|
ci" | 修改引号内容 | 删除""内容并进入插入模式 |
da( | 删除括号及内容 | 删除()及其内容 |
yi{ | 复制大括号内容 | 复制{}内的内容 |
va" | 选择引号及内容 | 选择""及其内容 |
gUiw | 单词转大写 | 当前单词转大写 |
g~~ | 整行大小写切换 | 切换整行大小写 |
=i{ | 格式化大括号内 | 格式化{}内的代码 |
快速编辑
| 快捷键 | 功能 | 说明 |
|---|
C | 修改到行尾 | 删除到行尾并进入插入模式 |
cc | 修改整行 | 删除整行并进入插入模式 |
cw | 修改单词 | 删除单词并进入插入模式 |
r{char} | 替换字符 | 用指定字符替换当前字符 |
R | 替换模式 | 进入替换模式 |
J | 合并行 | 将下一行合并到当前行 |
gJ | 合并行不加空格 | 合并行但不添加空格 |
快速移动
| 快捷键 | 功能 | 说明 |
|---|
{ | 上一个段落 | 移动到上一个空行 |
} | 下一个段落 | 移动到下一个空行 |
( | 上一个句子 | 移动到上一个句子开头 |
) | 下一个句子 | 移动到下一个句子开头 |
[[ | 上一个章节 | 移动到上一个章节 |
]] | 下一个章节 | 移动到下一个章节 |
gd | 跳转到定义 | 跳转到变量定义处 |
gD | 跳转到全局定义 | 跳转到全局变量定义 |
24. 🔧 外部命令
| 命令 | 功能 | 说明 |
|---|
:!command | 执行外部命令 | 执行系统命令 |
:r !command | 读入命令输出 | 将命令输出插入到文件 |
:w !command | 传递给命令 | 将文件内容传递给命令 |
:%!command | 过滤整个文件 | 用命令处理整个文件 |
:'<,'>!command | 过滤选中内容 | 用命令处理选中的内容 |
:sh | 打开Shell | 临时进入Shell |
Ctrl+z | 挂起Vim | 挂起Vim到后台 |
25. 🎨 颜色和主题
| 命令 | 功能 | 说明 |
|---|
:colorscheme | 显示当前主题 | 显示当前颜色主题 |
:colorscheme blue | 设置主题 | 设置为blue主题 |
:highlight | 显示高亮组 | 显示所有高亮组 |
:highlight Normal | 显示Normal组 | 显示Normal高亮组设置 |
26. 📝 常用配置示例
基础 .vimrc 配置
" 基础设置
set number " 显示行号
set relativenumber " 显示相对行号
set hlsearch " 高亮搜索结果
set incsearch " 实时搜索
set ignorecase " 搜索忽略大小写
set smartcase " 智能大小写
set autoindent " 自动缩进
set smartindent " 智能缩进
set expandtab " 用空格替换Tab
set tabstop=4 " Tab宽度为4
set shiftwidth=4 " 缩进宽度为4
set softtabstop=4 " 软Tab宽度为4
set wrap " 自动换行
set ruler " 显示光标位置
set showcmd " 显示命令
set wildmenu " 命令行补全菜单
set laststatus=2 " 总是显示状态栏
set backspace=2 " 退格键正常工作
set mouse=a " 启用鼠标支持
syntax on " 语法高亮
filetype plugin indent on " 文件类型检测
" 快捷键映射
nnoremap <C-h> <C-w>h " Ctrl+h 切换到左窗口
nnoremap <C-j> <C-w>j " Ctrl+j 切换到下窗口
nnoremap <C-k> <C-w>k " Ctrl+k 切换到上窗口
nnoremap <C-l> <C-w>l " Ctrl+l 切换到右窗口
" 快速保存和退出
nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>
nnoremap <leader>x :x<CR>
" 清除搜索高亮
nnoremap <leader>/ :nohlsearch<CR>
27. 🎯 实用技巧总结
🔥 最常用的快捷键(新手必会){#essential-shortcuts}
- 模式切换:
i, a, o, v, Esc
- 保存退出:
:w, :q, :wq, ZZ
- 移动:
h, j, k, l, w, b, 0, $
- 删除:
x, dd, dw, d$
- 复制粘贴:
yy, yw, p, P
- 撤销重做:
u, Ctrl+r
- 搜索:
/, n, N
🚀 效率提升技巧
- 使用数字前缀:
3dd (删除3行), 5w (移动5个单词)
- 组合操作:
ci" (修改引号内容), da( (删除括号及内容)
- 使用点命令:
. 重复上一次操作
- 使用宏录制:
qa...q 录制, @a 执行
- 使用标记:
ma 设置标记, 'a 跳转到标记
💡 高级技巧
- 多光标编辑: 使用块选择模式
Ctrl+v
- 快速替换:
:%s/old/new/g
- 文件浏览:
:e . 打开文件浏览器
- 分屏操作:
:sp, :vsp, Ctrl+w 系列
- 外部命令:
:!ls, :r !date
这份快捷键列表涵盖了 Vim 的绝大部分功能,从基础操作到高级技巧都有包含。建议按照使用频率逐步学习,先掌握基础操作,再逐步学习高级功能。记住,Vim 的强大在于这些命令可以自由组合,形成更复杂的操作!