Vim主要有几种模式:普通模式(Normal)、插入模式(Insert)、可视模式(Visual)、命令模式(Command)等。
以下将分类列出常用快捷键。
注意:以下快捷键在普通模式下使用,除非特别说明。
一、移动光标
h, j, k, l: 左、下、上、右
w: 下一个单词开头
b: 上一个单词开头
e: 当前单词结尾
gg: 跳转到文件开头
G: 跳转到文件末尾
:行号 或 行号G: 跳转到指定行(例如 :10 或 10G 跳转到第10行)
Ctrl+f: 向下翻页
Ctrl+b: 向上翻页
$: 移动到行尾
0: 移动到行首
^: 移动到行首第一个非空白字符
%: 跳转到匹配的括号(()、{}、[])
二、插入文本(进入插入模式)
i: 在光标前插入
I: 在当前行首插入
a: 在光标后插入
A: 在当前行尾插入
o: 在当前行下方新开一行并插入
O: 在当前行上方新开一行并插入
三、删除
x: 删除当前字符
X: 删除前一个字符
dw: 删除到下一个单词开头(包括空格)
de: 删除到当前单词结尾
d$ 或 D: 删除到行尾
dd: 删除当前行
d数字d: 删除从当前行开始的指定行数(例如:d3d 删除3行)
dG: 删除到文件末尾
四、复制与粘贴
yy: 复制当前行
y数字y: 复制从当前行开始的指定行数
yw: 复制一个单词
y$: 复制到行尾
p: 在光标后粘贴(如果是整行则在下一行粘贴)
P: 在光标前粘贴(如果是整行则在上一行粘贴)
五、撤销与重做
u: 撤销上一次操作
Ctrl+r: 重做(撤销的撤销)
六、查找与替换
/关键字: 向前查找关键字,按n查找下一个,N上一个
?关键字: 向后查找关键字,按n查找上一个,N下一个
:%s/旧文本/新文本/g: 全局替换(全文替换)
:s/旧文本/新文本/g: 替换当前行所有匹配
:s/旧文本/新文本: 替换当前行第一个匹配
:起始行,结束行s/旧文本/新文本/g: 在指定行范围内替换(例如 :10,20s/foo/bar/g)
七、可视模式
v: 进入字符可视模式
V: 进入行可视模式
Ctrl+v: 进入块可视模式
在可视模式下选择文本后,可以进行复制(y)、删除(d)、替换(s)等操作
八、保存与退出
:w: 保存文件
:wq 或 ZZ: 保存并退出
:q!: 强制退出不保存
:w 文件名: 另存为
:e 文件名: 打开另一个文件
九、分屏操作
:sp [文件名]: 水平分屏(不指定文件名则分屏当前文件)
:vsp [文件名]: 垂直分屏
Ctrl+w w: 在分屏间切换
Ctrl+w 方向键: 切换到指定方向的分屏
Ctrl+w =: 使所有分屏等宽等高
Ctrl+w _: 最大化当前分屏高度(需先按Ctrl+w,再按_)
Ctrl+w |: 最大化当前分屏宽度
:q: 关闭当前分屏
十、其他常用
.: 重复上一个操作
>>: 当前行向右缩进(增加缩进)
<<: 当前行向左缩进(减少缩进)
==: 自动缩进当前行
J: 将当前行与下一行合并
r: 替换当前字符(按r再按新字符)
R: 进入替换模式,直到按ESC
光标移动
| 快捷键 | 功能 |
|---|---|
| h j k l | 左/下/上/右移动 |
| Ctrl + f | 向下翻页 |
| Ctrl + b | 向上翻页 |
| gg | 跳到文件开头 |
| G | 跳到文件末尾 |
| :n 或 nG | 跳到第 n 行(如 :10 或 10G) |
| $ | 跳到行尾 |
| 0 | 跳到行首 |
| w | 跳到下一个单词开头 |
| b | 跳到上一个单词开头 |
插入模式
| 快捷键 | 功能 |
|---|---|
| i | 在光标前插入 |
| a | 在光标后插入 |
| I | 在行首插入 |
| A | 在行尾插入 |
| o | 在当前行下方插入新行 |
| O | 在当前行上方插入新行 |
| Esc | 退出插入模式 |
文本编辑
| 快捷键 | 功能 |
|---|---|
| x | 删除当前字符 |
| dd | 删除当前行 |
| dw | 删除一个单词 |
| d$ 或 D | 删除到行尾 |
| yy | 复制当前行 |
| yw | 复制一个单词 |
| p | 在光标后粘贴 |
| P | 在光标前粘贴 |
| u | 撤销操作 |
| Ctrl + r | 重做操作 |
| . | 重复上次操作 |
查找与替换
| 快捷键 | 功能 |
|---|---|
| /keyword | 向前搜索关键字(按 n 下一个,N 上一个) |
| ?keyword | 向后搜索关键字 |
| :%s/old/new/g | 全局替换所有匹配项 |
:s / old / new /g | 替换当前行所有匹配项 |
| :n1,n2s/old/new/g | 替换 n1 到 n2 行之间的匹配项(如 :10,20s/foo/bar/g) |
可视模式
| 快捷键 | 功能 |
|---|---|
| v | 进入字符选择模式 |
| V | 进入行选择模式 |
| Ctrl + v | 进入块选择模式 |
| 选择后:y 复制 / d 删除 / > 缩进 / < 取消缩进** |
窗口管理
| 快捷键 | 功能 |
|---|---|
| :sp [file] | 水平分割窗口 |
| :vsp [file] | 垂直分割窗口 |
| Ctrl + w + 方向键 | 切换窗口 |
| Ctrl + w + w | 循环切换窗口 |
| Ctrl + w + q | 关闭当前窗口 |
文件操作
| 快捷键 | 功能 |
|---|---|
| :w | 保存文件 |
| :wq 或 ZZ | 保存并退出 |
| :q! | 强制退出(不保存) |
| :e [file] | 打开另一个文件 |
| :saveas [path] | 另存为文件 |
其他
| 快捷键 | 功能 |
|---|---|
| >> | 当前行增加缩进 |
| << | 当前行减少缩进 |
| % | 跳转到匹配的括号 () {} [] |
| J | 合并当前行与下一行 |
| Ctrl + g | 显示当前文件信息(路径、行号等) |
Vim常用快捷方式分类介绍
646

被折叠的 条评论
为什么被折叠?



