自用Vim配置及快捷键速查

自用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 -> 清除多余文件
0%