Vim 常用快捷键及插件
常用快捷键
insert 模式
快捷键 | 说明 |
---|---|
C-h |
删除一个字符 |
C-w |
删除一个单词 |
C-u |
删除一行 |
C-a |
移动到行首 |
C-e |
移动到行尾 |
C-b |
向后移动 |
C-f |
向前移动 |
normal 模式
光标移动
快捷键 | 说明 |
---|---|
hjkl |
光标上下左右移动 |
^ |
跳到行首 |
$ |
跳到行尾 |
b/w 、B/W |
以单词为单位移动 |
f/t + 文本对象 |
行内移动到指定文本对象处 |
() |
句间移动 |
{} |
段间移动 |
% |
跳转匹配的括号或标签 |
* |
搜索并跳转到下一个单词 |
C-B/C-F |
上下翻页 |
C-u/C-d |
上下翻半页 |
C-y/C-e |
屏幕滚动 |
数字 + G |
跳转到指定行 |
gg |
跳转到首行 |
G |
跳转到尾行 |
数字 + | |
跳转到指定列 |
M |
移动到屏幕中间 |
H |
移动到屏幕上方 |
L |
移动到屏幕下方 |
zz |
将内容移动到屏幕中间 |
zt |
将内容移动到屏幕顶部 |
zb |
将内容移动到屏幕下方 |
文本修改
快捷键 | 说明 |
---|---|
d + 文本对象 |
删除(dd) |
c + 文本对象 |
修改(C 表示修改到行尾) |
s/S |
修改单个字符/修改整行 |
x |
删除字符 |
a/A |
在当前字符后进入插入模式/在当前行尾进入插入模式 |
i/I |
在当前字符前进入插入模式/在当前行首进入插入模式 |
o/O |
在当前行下方插入新行并进入插入模式/在当前行上方插入新行并进入插入模式 |
r/R |
替换单个字符/替换多个字符 |
u/U |
撤销/撤销当前行所有修改 |
补全
快捷键 | 说明 |
---|---|
C-n/C-p |
补全单词 |
C-x C-f |
补全文件名 |
C-x C-o |
补全代码(需安装插件) |
宏
快捷键 | 说明 |
---|---|
q + 寄存器名 |
录制宏 |
q |
结束录制 |
@ + 寄存器 |
播放宏 |
命令行模式
快捷键 | 说明 |
---|---|
normal + 命令 |
在命令行执行 normal 模式的命令 |
[range] s [ubstitute]/{pattern}/[flags] |
搜索替换(flag 可选 g/c/n ,表示全部替换/替换前确认/报告匹配到的次数) |
窗口操作
快捷键 | 说明 |
---|---|
:vs [文件名] |
竖分屏 |
:sp [文件名] |
横分屏 |
C-w + 方向键 |
窗口跳转 |
C-w w |
跳至下一个窗口 |
C-w n |
打开新窗口 |
C-w c |
关闭当前窗口 |
C-w q |
退出当前窗口 |
C-w o |
仅保留当前窗口 |
C-w = |
所有窗口等大 |
数字 + C-w _ |
设置窗口高度 |
`数字 + C-w | ` |
数字 + C-w + |
增加窗口高度 |
数字 + C-w - |
减少窗口高度 |
数字 + C-w > |
增加窗口宽度 |
数字 + C-w > |
减少窗口宽度 |
vimdiff/gvimdiff + 文件1 + 文件2 |
双窗口内容对比 |
:vert diffsplit + 文件 |
在 vim 内启动对比 |
C-w T |
将当前窗口转为一个新标签页 |
标签页
快捷键 | 说明 |
---|---|
:tab 命令行命令 |
在新标签页中展示命令结果 |
:tabs |
显示所有标签页列表 |
:tabedit |
打开新空白标签页 |
:tabclose |
关闭当前标签页 |
:gt |
切换到下一个标签页 |
:gT |
切换到上一个标签页 |
:tabfirst |
切换到第一个标签页 |
:tablast |
切换到最后一个标签页 |
缓冲区
快捷键 | 说明 |
---|---|
:ls |
显示缓冲区列表 |
:b 编号 |
跳转到对应缓冲区 |
:bdelete/bd |
删除编号对应的缓冲区 |
:bnext/bn |
跳至下一个缓冲区 |
:bNext/bN |
跳至上一个缓冲区 |
:bfirst |
跳至第一个缓冲区 |
:blast |
跳至最后一个缓冲区 |
寄存器
通过 " 寄存器名
来使用寄存器。
快捷键 | 说明 |
---|---|
无名寄存器 | 当操作没有加 " 时,默认使用的是无名寄存器。 |
a-z |
有名寄存器。手动指定时才会使用。 |
0-9 |
数字寄存器。0 号寄存器存放最近一次复制的内容。1-9 号寄存器存放上次、倒数第二次……倒数第九次删除的文本(整行) |
+ |
存放复制到系统剪贴板的内容。 |
% |
当前文件名 |
. |
上次插入的文本 |
快捷键映射
- map:递归映射。
- noremap:非递归映射。
插件
vim 插件是使用 vimscript
或其他语言编写的 vim 扩展。一般使用 vim 插件管理器来安装和管理,如 vim-plug。
插件网站
寻找插件可在 vimawesome 内查找,也可直接浏览器搜索。
常用插件
NERDTree:文件目录树。
tagbar:代码大纲。
vim-interestingwords:高亮感兴趣单词。
easyemotion:快速查找并移动光标。
vim-surround:快速增删修改引号、括号等。
vim-commentary:快速注释。
gc
。
indentline:显示代码缩进辅助线。
vim-startify:修改 vim 的启动界面,并可浏览最近打开的文件。
vim-airline:修改状态栏。
fzf.vim:模糊搜索。
- Ag 要搜索的内容
- Files 文件名
ctrlp:模糊查找文件。
far.vim:批量替换一个项目中的所有字符串。
Far 要被替换的内容 要替换的内容 匹配模式
。:Fardo
:替换。
python-mode:适配 python 的插件,提供补全、格式化、跳转、重构、折叠等功能。
deoplete.nvim:代码补全。
coc.vim:代码补全。
neoformat:代码格式化。
Fugitive:在 vim 中使用 git。
vim-gitgutter:在 git 管理的项目中显示文件变动。
gv.vim:在 vim 中查看代码提交变更。
开源配置
参考