Vim 常用快捷键及插件
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 中查看代码提交变更。
开源配置
SpaceVim
参考
- 《Vim 实用技巧必知必会》
- 《玩转 Vim 从放弃到爱不释手》