Neovim快捷键
常用键位映射
i j k c d w 等 Vim 原生键位不再赘述,此处仅介绍本插件整合包额外增加或不同的。以下默认读者知晓 Vim 的四大模式:普通模式(NORMAL)、插入模式(INSERT)、可视模式(VISUAL)、终端插入模式(TERMINAL)。
不同模式下有独立的键位映射,以下除非特殊说明,默认指的是普通模式下的映射。
太长不看(简略版)
基本
jk/kj/<Esc>回到普通模式
q/:wq/ZZ保存并退出
Q记录宏
gl/$移动到行末尾
gh/^移动到行开头(不包括空格)
3gl/$2l移动到行末尾倒数第 3 个字符
3gh/^2h移动到行开头倒数第 3 个字符
<M-h>向左移动若干格
<M-j>向下移动若干格
<M-k>向上移动若干格
<M-l>向右移动若干格
<M-z>当前所在行居中
<M-b>跳转到上若干个单词的开头
<M-e>跳转到下若干个单词的末尾
<M-w>跳转到下若干个单词的开头
跳转
gd跳转到定义
gD跳转到声明
gy跳转到变量类型的定义
gY跳转到虚函数实现
go头文件和源文件来回跳转
gr寻找符号引用
gz罗列所有相关信息(定义、引用等)
gf打开光标下的文件名
gF打开光标下的文件名并跳到右侧指定的行号
gx打开光标下的网页链接
<C-o>跳转回来
重构
gcc注释/取消注释当前选中的代码/行
gn重命名变量
gw尝试自动修复问题
g=自动格式化当前代码
预览
K悬浮窗查看文档
gsf预览函数定义
gsc预览类定义
gsd预览语法错误
开关
gso打开大纲
gsg打开 Git 面板
gsp打开项目文件树
gss查看所有静态语法错误
gsl查看所有编译器报错
gsi开关 Inlay Hint
标签页
<F4>或:wa一键保存所有打开的文件
<F3>或gt切换到下一个标签页
<F2>或gb切换到上一个标签页
<F1>或g<Tab>将当前标签页固定在最前
<S-F3>或gT将当前标签页右移一位
<S-F2>或gB将当前标签页左移一位
<S-F1>或g<BS>关闭当前标签页
<C-S-F3>或g<C-t>关闭右侧所有标签页
<C-S-F2>或g<C-b>关闭左侧所有标签页
<C-S-F1>或g<S-Tab>关闭除当前标签页外所有
g<Space>选择跳转到一个标签页
文本查找
,.当前文件中模糊查找
,k当前项目中正则表达式查找
,l当前项目中的所有文件
,b当前 Vim 已打开文件
,o最近打开过的历史文件
,i当前所有加入 Git 仓库的文件
,p当前 Git 有未提交修改的文件
,c所有 Git 提交历史
,v所有 Git 分支
,L当前项目所有加入 CMake 的.cpp源文件
,O当前项目所有CMakeLists.txt和.cmake文件
,x当前文件中所有符号
,j当前 Vim 跳转历史
,m所有m创建过的书签
,/历史/搜索记录
,:历史执行过的 Vim 命令
,;所有可用的 Vim 命令
,?所有 Vim 帮助文档
,a所有静态检查错误
,q所有编译器报错
,,多功能模糊查找
选择
vac选中当前类
vic选中当前类体内
vaf选中当前函数
vif选中当前函数体
vab选中当前块
vib选中当前块中内容
vad选中当前分支
vid选中当前分支块或条件
vae选中当前循环
vie选中当前循环体
vai选中当前函数调用语句
vii选中当前函数调用语句的参数列表
vap选中当前参数(包括空格和逗号)
vip选中当前参数(不包括空格和逗号)
vah选中当前赋值语句
vih选中当前赋值语句中的左侧值
var选中当前返回语句
vir选中当前返回语句返回值
vin选中当前数字
vat选中当前注释块
+扩大选择
-缩小选择
举一反三:
dat 删除当前注释块,cip 修改当前参数移动
]c下一个类开头
[c上一个类开头
]C下一个类结尾
[C上一个类结尾
]f下一个函数开头
[f上一个函数开头
]F下一个函数结尾
[F上一个函数结尾
...以此类推,所有英文字母同上“选择”所述...
<Space>全屏任意移动
换位
mh左移参数
ml右移参数
mj下移当前语句
mk上移当前语句
maf下移当前函数
mif上移当前函数
mac下移当前类
mic上移当前类
括号
可视(VISUAL)模式中:
s)给当前选中内容包上(选中内容)括号
s}给当前选中内容包上{选中内容}括号
s]给当前选中内容包上[选中内容]括号
s>给当前选中内容包上<选中内容>尖括号
s'给当前选中内容包上'选中内容'单引号
s"给当前选中内容包上"选中内容"双引号
stspan给当前选中内容包上<span>选中内容</span>标签
sta href="b.html"给当前选中内容包上<a href="b.html">选中内容</a>标签
普通(NORMAL)模式中:
ysi<range><brace>添加括号
cs<oldbrace><newbrace>改变括号
ds<brace>删除括号
<!-- 例如光标停在
world 上: -->
<!-- -->
<!-- cpp --> <!-- hello world --> <!-- -->
<!-- -->
<!-- 按下 viws" 或 ysiw" -->
<!-- -->
<!-- cpp --> <!-- hello "world" --> <!-- -->
<!-- -->
<!-- 按下 cs") -->
<!-- -->
<!-- cpp --> <!-- hello (world) --> <!-- -->
<!-- -->
<!-- 按下 ds) -->
<!-- -->
<!-- cpp --> <!-- hello world --> <!-- -->窗口
<C-q>关闭当前窗口
<C-h>移动到当前左侧的窗口
<C-j>移动到当前下方的窗口
<C-k>移动到当前上方的窗口
<C-l>移动到当前右侧的窗口
<C-S-h>将当前窗口向左移动
<C-S-j>将当前窗口向下移动
<C-S-k>将当前窗口向上移动
<C-S-l>将当前窗口向右移动
<M-s>横向切割当前窗口,变为上下两个
<M-v>纵向切割当前窗口,变为左右两个
<M-=>将当前窗口高度增加 1 格
<M-->将当前窗口高度减少 1 格
<M-.>将当前窗口宽度增加 1 格
<M-,>将当前窗口宽度减少 1 格
<!-- 功能窗 -->
<!-- -->
<!-- -
<F12> 打开大纲 -->
<!-- - <F10> 打开 Git 面板 -->
<!-- - <F9> 打开实时语法检查清单 -->
<!-- - <F8> 打开内置终端 -->
<!-- - <F7> 打开项目文件树 -->
<!-- - <F6> 打开编译器错误列表 -->
<!-- - <F5> 运行当前目录下的 ./run.sh -->
<!-- - <S-F5> 中断当前在终端中执行的程序(发送 Ctrl+C) -->CMake 项目
cmc或:CMakeGenerate配置当前项目
cmb或:CMakeBuild构建当前项目
cmr或:CMakeRun运行当前项目
cms或:CMakeStopRunner杀死当前终端中的正在运行的程序
:CMakeSelectBuildDir选择构建目录
:CMakeSelectBuildType选择构建类型(Release或Debug)
:CMakeSelectLaunchTarget选择以后:CMakeRun要运行的目标
内置终端
<F8>或<C-t>打开/关闭终端
<Esc>从终端模式(TERMINAL)中回到普通模式(NORMAL)
p粘贴剪贴板中的命令
i或a从普通模式回到终端模式
1<F8>或1<C-t>打开 1 号终端
2<F8>或2<C-t>打开 2 号终端
- 以此类推
<C-S-t>将当前行的文本或选中的部分作为命令执行
文件树
y拷贝
x剪切
d删除
p粘贴
a创建