Vim 快捷键速查

模式切换

快捷键说明
Esc返回普通模式(Normal Mode)
i进入插入模式(Insert Mode),在光标前插入
a进入插入模式,在光标后插入
o在当前行下方新开一行并进入插入模式
O在当前行上方新开一行并进入插入模式
v进入可视模式(Visual Mode),逐字符选择
V进入可视行模式,逐行选择
Ctrl + v进入可视块模式,矩形区域选择
:进入命令模式(Command Mode)
R进入替换模式(Replace Mode),覆盖输入

光标移动(普通模式)

快捷键说明
h j k l左、下、上、右移动一个字符
w跳到下一个单词开头
b跳到上一个单词开头
e跳到当前单词末尾
0(数字零)跳到行首
$跳到行尾
^跳到行首第一个非空白字符
gg跳到文件第一行
G跳到文件最后一行
nG 或 :n跳到第 n 行
Ctrl + d向下翻半屏
Ctrl + u向上翻半屏
Ctrl + f向下翻一整屏
Ctrl + b向上翻一整屏
f + char跳到行内下一个指定字符处
t + char跳到行内下一个指定字符的前一个位置
%跳到匹配的括号处

编辑操作

快捷键说明
x删除光标处字符
dd删除(剪切)当前行
ndd删除(剪切)从当前行开始的 n 行
D删除光标处到行尾的内容
dw删除从光标处到下一个单词开头
d0 / d$删除到行首 / 行尾
yy复制当前行
nyy复制从当前行开始的 n 行
p在光标下方粘贴
P在光标上方粘贴
u撤销上一步操作
Ctrl + r重做(恢复撤销的操作)
r + char替换光标处字符为指定字符
cw删除当前单词并进入插入模式
cc删除当前行并进入插入模式
S等同于 cc
J合并当前行与下一行
>> / <<向右 / 左缩进当前行
==自动缩进当前行

搜索与替换

快捷键说明
/pattern向下搜索匹配的内容
?pattern向上搜索匹配的内容
n跳到下一个匹配
N跳到上一个匹配
*搜索光标下的单词(向前)
#搜索光标下的单词(向后)
:s/old/new替换当前行第一个 old
:s/old/new/g替换当前行所有 old
:%s/old/new/g替换全文所有 old
:%s/old/new/gc替换全文所有 old,每次替换前确认
:nohl清除搜索高亮

窗口与标签页

快捷键说明
:sp file水平分割窗口打开文件
:vsp file垂直分割窗口打开文件
Ctrl + w + w在窗口之间切换
Ctrl + w + h/j/k/l切换到左 / 下 / 上 / 右窗口
Ctrl + w + q关闭当前窗口
Ctrl + w + =等分所有窗口大小
:tabnew file在新标签页打开文件
:tabn / :tabp切换到下一个 / 上一个标签页
gt / gT切换到下一个 / 上一个标签页

文件操作

快捷键说明
:w保存文件
:wq保存并退出
:q退出(未修改时)
:q!强制退出不保存
:wq!强制保存并退出
:e file打开另一个文件
:e!重新加载当前文件(丢弃修改)
:saveas file另存为指定文件
:r file读入另一个文件的内容到光标位置

实用命令

快捷键说明
:set nu显示行号
:set nonu隐藏行号
:set relativenumber显示相对行号
:set hlsearch开启搜索高亮
:set ignorecase搜索忽略大小写
:set smartcase输入大写字母时区分大小写搜索
:set wrap / nowrap开启 / 关闭自动换行
:set paste进入粘贴模式(防止缩进错乱)
:set nopaste退出粘贴模式
:sort对选中行排序
!cmd在普通模式下执行 shell 命令
:!cmd在命令模式下执行 shell 命令
Ctrl + z挂起 Vim 返回 shell,输入 fg 返回
:help打开帮助文档