Neovim C++ LSP Config
简单记录一下配置 Neovim 的 C++ LSP 的过程, 以及一些常用的快捷键。是上一篇 Neovim 配置 的延续😋。
安装
首先 Neovim 仅仅作为编辑器使用,需要确保已经安装了 C++ 编译器以及 CMake (最好是非集成的), 代码跳转和高亮的实现都依赖于这些工具。
以 MacOS 为例,首先保证安装好 Homebrew
brew install Neovim
进入配置文件目录,下载 lua 配置文件,并重命名 为 nvim , 使用 nvim 命令进入改文件夹,Packer 将自动安装插件
cd ~/.config
git clone https://github.com/Joviisaus/my.neovim
mv my.neovim nvim
nvim
快捷键(常用)
除 vim 原生快捷键外,还有一些常用的快捷键,这里只列出了一些常用的快捷键,更多的快捷键可以在配置文件中查看。
Normal 模式快捷键
快捷键 | 功能 | 模式 |
---|---|---|
<gcc> | 行注释 | Normal |
<gbc> | 块注释 | Normal |
< -s> | 代码格式化 | Normal |
<gd> | 跳转到定义 | Normal |
<gD> / <dt> | 定义浮窗显示 | Normal |
<gr> | 查找 | Normal |
<gp> | 显示代码诊断 | Normal |
<gj> | 跳转到下一个诊断 | Normal |
<gk> | 跳转到上一个诊断 | Normal |
<F8> | 显示函数签名 | Normal |
<C-F5> | 开始调试 | Normal |
<F6> | 设置断点 | Normal |
<S-F6> | 删除断点 | Normal |
Insert 模式快捷键
快捷键 | 功能 | 模式 |
---|---|---|
<jk> / <ESC> | 进入 Normal 模式 | Insert |
<C-k> | 上一个 | Insert |
<C-j> | 下一个 | Insert |
<Commans + .> | 补全 | Insert |
<Commans + ,> | 取消补全 | Insert |
<C + u> | 向上滚动 | Insert |
<C + d> | 向下滚动 | Insert |
<S + Tab> | cmp 补全 | Insert |
<Tab> | copilot 补全 | Insert |
Visual 模式快捷键
快捷键 | 功能 | 模式 |
---|---|---|
<gc> | 行注释 | Visual |
<gb> | 块注释 | Visual |
常见问题
-
c++ 项目无法识别头文件
在 CMakeList.txt 添加
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
重新编译项目,然后在项目根目录生成一个 compile_commands.json 文件,Neovim 会自动识别头文件。
-
代码跳转不准确
有时候会出现代码跳转不准确的情况,这时候可以尝试删除项目根目录下的 build 文件夹,然后重新编译项目。