Neovim快捷键
| 2024-10-10
0  |  阅读时长 0 分钟

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 选择构建类型(ReleaseDebug
  • :CMakeSelectLaunchTarget 选择以后 :CMakeRun 要运行的目标
内置终端
  • <F8><C-t> 打开/关闭终端
  • <Esc> 从终端模式(TERMINAL)中回到普通模式(NORMAL)
  • p 粘贴剪贴板中的命令
  • ia 从普通模式回到终端模式
  • 1<F8>1<C-t> 打开 1 号终端
  • 2<F8>2<C-t> 打开 2 号终端
  • 以此类推
  • <C-S-t> 将当前行的文本或选中的部分作为命令执行
文件树
  • y 拷贝
  • x 剪切
  • d 删除
  • p 粘贴
  • a 创建
Loading...
目录