自用Vim配置及快捷键速查
配置文件地址
https://github.com/Lyon52222/neovim
快捷键
基本操作
这里我只列举初一些常用的,需要记住的,更多的操作查看上一篇博客:Vim操作大全
移动
gg -> 跳转到文档第一行
G -> 跳转到文档最后一行
nG,ngg -> 跳转到第n行
% -> 跳转到括号对应位置
H -> 光标移动到当前可视区域最上面
M -> 光标移动到当前可视区域中间
L -> 光标移动到当前可视区域最下面
<C-u> -> 向上翻半页
<C-d> -> 向下翻半页
<C-f> -> 向下翻页
<C-b> -> 向上翻页
\$ -> 移动到行首
^ -> 移动到行尾
fa -> 向后查找当前行a出现的位置,并跳转
Fa -> 向前查找当前行a出现的位置,并跳转
m{a-zA-Z} -> 给当前位置打一个标签,a-z对当前文档有效,A-Z可以跨文档使用
'{a-zA-Z} -> 跳转回标记位置
'[ -> 跳转到上次编辑的第一个字符
'[ -> 跳转到上次编辑的最后一个字符
插入模式
CTRL-M/CTRL-J -> 开始新行
CTRL-E -> 插入光标下的内容
CTRL-Y -> 插入光标上方的字符
CTRL-A -> 插入上次插入的文本
CTRL-@ -> 插入上次插入的文本并结束插入模式
CTRL-R {0-9a-z%#:.-="} -> 插入寄存器的内容
CTRL-W -> 删除光标前的一个单词
CTRL-U -> 删除当前行的所有字符
CTRL-T -> 在当前行首插入一个移位宽度的缩进
CTRL-D -> 从当前行首删除一个移位宽度的缩进
0 CTRL-D -> 删除当前行的所有缩进
^ CTRL-D -> 删除当前行的所有缩进,恢复下一行的缩进
编辑
i -> 在当前光标之前插入
I -> 在当前行首插入
a -> 在当前位置之后插入
A -> 在当前行末插入
修改
r -> 替换当前位置字符
R -> 从当前位置开始一次替换后面的字符,按ESC退出
cc -> 修改光标所在行
cw -> 删除从当前位置到该单词的末尾,并进入插入模式
caw -> 删除当前光标所在单词,并进入插入模式
c\$ -> 从当前位置删除到行尾,并进入插入模式
c^ -> 从当前位置删除到行首,并进入插入模式
ci" -> 删除两端"中间的内容,并进入插入模式
ca" -> 删除两端"以及中间的内容,并进入插入模式
删除
x -> 删除当前位置字符
X -> 删除当前位置前一个字符
dd,dw,daw,s\$,d^,di",da" -> 同上
复制
yy,yw,yaw,y\$,y^,yi(,ya( -> 同上
撤销
u -> 撤销上一次操作
U -> 撤销当前行的所有操作
文件操作
fw -> 保存文件
fq -> 退出文件
fwq -> 保存并退出文件
fqq -> 放弃保存直接退出文件
编辑模式光标移动
<M-l> -> 光标右移
<M-k> -> 光标上移
<M-j> -> 光标下移
<M-h> -> 光标左移
快速选择窗口
<S-l> -> 选择右边窗口
<S-k> -> 选择上边窗口
<S-j> -> 选择下边窗口
<S-h> -> 选择左边窗口
划分窗口
<leader>sp -> 纵向划分窗口
<leader>vs -> 横向划分窗口
调整窗口大小
<M-l>
<M-k>
<M-j>
<M-h>
其它
; -> 重复上一次的查找操作
. -> 重复上一次的修改操作
插件快捷键
vim-startify
<leader>st -> 回到初始界面
NERDTree
<S-n> -> 打开/关闭文件树
MarkdownPreview
<C-p> -> 打开/关闭Markdown预览
[[ -> 跳转上一个标题
]] -> 跳转下一个标题
]c -> 跳转到当前标题
]u -> 跳转到副标题
zr -> 打开下一级折叠
zR -> 打开所有折叠
zm -> 折叠当前段落
zM -> 折叠所有段落
vim-airline
<leader>{i} -> 切换到第i个标签
<leader>- -> 切换到前一个标签
<leader>+ -> 切换到上一个标签
leetcode
<leader>li -> 登陆leetcode
<leader>ll -> 列出问题列表
<leader>lt -> 测试代码
<leader>ls -> 提交代码
easymotion
<leader><leader>w -> 触发单词级移动,文本会被高亮,输入对应字母进行跳转
<leader><leader>b -> 从光标开始往上在单词之间移动光标
<leader><leader>s -> 从光标开始同时向两侧在单词之间移动光标
<leader><leader>fo -> 字母o对应的地方会被高亮,输入对应字母进行跳转
vim-surround
ysiw" -> 单词周围加双引号
ysiw( -> 左括号带空格
ysiw) -> 右括号不带空格
ysiWb -> 以空格为边界加大括号,B代表不带空格的打括号
yss<div> -> 整行前后加<div>
S," -> v模式选中区域前后加"
S,<div> -> V模式前后区域加<div>,这里<div>会独占一行
cs"' -> 修改选中内容两端的"为'
ds" -> 删除选中内容两端的"
nerdcommenter
<leader>cc -> 注释当前行
<leader>cn -> 同cc,不过强制nesting
<leader>c<leader> -> 切换当前行的注释状态
<leader>cm -> 多行注释
<leader>ci -> 切换选中行的注释状态
vim-visual-multi
<C-n> -> 选择单词
n/N -> 选择下一个/上一个目标词
q -> 跳过当前词
Q -> 取消选择当前词
ultisnips
<tab> -> 自动扩展
autopep8
<F8> -> 自动格式化Python代码
coc.nvim
<M-tab> -> 向下选择补全
<S-tab> -> 向上选择补全
[g -> coc-diagnostic-prev
]g -> coc-diagnostic-next
gd -> coc-definition
gy -> coc-type-definition
gi -> coc-inplementation
gr -> coc-references
<leader>rn -> coc-rename
<leader>f -> formatting selected code
K -> show the documentation
vimtex
\ll -> 开始编译,后面每次保存都会自动编译同步
\lv -> 打开pdf预览
\lk or \ll -> 关闭编译
\le -> 显示错误和警告
\lc -> 清除多余文件