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

常见问题

  1. c++ 项目无法识别头文件

    在 CMakeList.txt 添加

    set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
    

    重新编译项目,然后在项目根目录生成一个 compile_commands.json 文件,Neovim 会自动识别头文件。

  2. 代码跳转不准确

    有时候会出现代码跳转不准确的情况,这时候可以尝试删除项目根目录下的 build 文件夹,然后重新编译项目。