乐于分享
好东西不私藏

LazyVim 下载、安装和基本使用:把 Neovim 配成一个轻量 IDE

LazyVim 下载、安装和基本使用:把 Neovim 配成一个轻量 IDE

如果你喜欢终端、键盘操作和轻量开发环境,LazyVim 是一个很值得尝试的 Neovim 配置方案。

它不是一个新的编辑器,而是一套基于 Neovim 的成熟配置。LazyVim 帮你组织好插件、LSP、补全、格式化、文件搜索、Git 集成等常用能力,让 Neovim 更接近现代 IDE。

简单理解:

Neovim 是编辑器核心LazyVim 是完整配置方案lazy.nvim 是插件管理器Mason 负责安装 LSP、formatter、linterclangd / rust-analyzer 负责语言提示和检查

一、安装前准备

先确认系统里已经有 Neovim 和 Git:

nvim --versiongit--version

macOS 推荐安装这些工具:

brew install neovim git ripgrep fd lazygit

它们的作用分别是:

neovim   编辑器本体git      下载和管理配置ripgrep  全局文本搜索fd       快速文件查找lazygit  终端里的 Git 图形界面

二、备份旧 Neovim 配置

如果你以前用过 Neovim,先备份旧配置:

mv ~/.config/nvim ~/.config/nvim.bakmv ~/.local/share/nvim ~/.local/share/nvim.bakmv ~/.local/state/nvim ~/.local/state/nvim.bakmv ~/.cache/nvim ~/.cache/nvim.bak

如果某个目录不存在,报错可以忽略。

三、安装 LazyVim Starter

官方推荐使用 starter 模板:

git clone https://github.com/LazyVim/starter ~/.config/nvim

删除 starter 自带的 git 信息:

rm-rf ~/.config/nvim/.git

然后启动:

nvim

第一次启动时,LazyVim 会自动下载插件。等插件安装完成后,就可以开始使用。

四、LazyVim 的几个核心入口

进入 LazyVim 后,先记住这几个命令。

插件管理:

:Lazy

安装语言工具:

:Mason

启用 LazyVim 官方扩展:

:LazyExtras

查看当前文件 LSP 有没有启动:

:LspInfo

查看健康状态:

:checkhealth

五、常用快捷键

LazyVim 默认把空格键当作 leader 键。

<Space> f f    查找文件<Space> s g    全局搜索文本<Space> e      打开/关闭文件树<Space> c d    查看当前行诊断<Space> c a    Code Action / 尝试修复<Space> c f    格式化代码<Space> x x    查看项目诊断<Space> x X    查看当前文件诊断]d             跳到下一个错误[d             跳到上一个错误u              撤销Ctrl + r       重做

这些快捷键够你完成大部分日常编辑、搜索、检查和格式化操作。

六、启用 C++ 支持

打开 LazyVim 扩展管理:

:LazyExtras

搜索:

clangd

找到:

lang.clangd

按小写 x 启用,然后执行:

:Lazy sync

接着打开 Mason:

:Mason

安装:

clangdclang-format

打开 .cpp 文件后执行:

:LspInfo

如果能看到 clangd,说明 C++ 提示、跳转、诊断已经启动。

七、C++23、CMake 和 clangd 的关系

学习 C++23 时,经常会遇到一个问题:

终端里 clang++ 可以编译LazyVim 里 clangd 却提示错误

常见原因是:真实编译命令用了 C++23,但 clangd 没拿到同样的编译参数。

所以推荐使用一个最小 CMake 项目。

项目结构:

cpp23-cmake-study/├── CMakeLists.txt├── .clangd├── compile_commands.json├── build/└── src/    └── main.cpp

CMakeLists.txt

cmake_minimum_required(VERSION3.20)project(cpp23_cmake_study LANGUAGES CXX)set(CMAKE_CXX_STANDARD23)set(CMAKE_CXX_STANDARD_REQUIREDON)set(CMAKE_CXX_EXTENSIONSOFF)set(CMAKE_EXPORT_COMPILE_COMMANDSON)add_executable(cpp23_study  src/main.cpp)target_compile_options(cpp23_study PRIVATE$<$<CXX_COMPILER_ID:Clang,AppleClang,GNU>:-Wall -Wextra -Wpedantic>)

.clangd

CompileFlags:Add:[-std=c++23]

第一次配置:

cmake -S.-B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ONln-sf build/compile_commands.json compile_commands.jsoncmake --build build./build/cpp23_study

以后日常只需要:

cmake --build build./build/cpp23_study

这里最重要的是:

CMake 负责真实编译compile_commands.json 记录真实编译参数clangd 读取这些参数后,编辑器提示才会和编译结果一致

八、C++23 示例代码

src/main.cpp 可以先写成这样:

#include<iostream>#include<string>#include<vector>std::string join_vector(const std::vector<int>& values){  std::string result;for(std::size_t i =0; i < values.size();++i){    result += std::to_string(values[i]);if(+1< values.size()){      result +=", ";}}return result;}intadd(int a,int b){return a + b;}intmain(){  std::vector<int> numbers{1,2,3};  std::cout <<"C++23 CMake study\n";  std::cout <<"add(5, 33) = "<<add(5,33)<<'\n';  std::cout <<"numbers = ["<<join_vector(numbers)<<"]\n";return0;}

等编译器和标准库支持足够好以后,可以再练习 C++23 的:

std::print / std::printlnstd::expectedranges / viewsif consteval

九、日常学习流程

推荐把学习流程固定下来:

1. 打开 src/main.cpp2. 写一小段代码3. 看 LazyVim / clangd 提示4. cmake --build build 编译5. ./build/cpp23_study 运行6. 根据错误修改7. 继续下一段练习

在 LazyVim 里:

:LspInfo<Space>cd<Space>c a<Space>cf

在终端里:

cmake --build build./build/cpp23_study

这个循环比单纯依赖编辑器提示更可靠。编辑器负责提前提醒,CMake 负责最终确认。

十、LazyVim 的优势和边界

LazyVim 的优势:

启动快键盘效率高插件体系清晰LSP、补全、格式化开箱即用适合终端和远程开发配置可控

它的边界也很明显:

需要熟悉 Vim 操作需要理解 LSP、Mason、Treesitter调试体验不如 VSCode 直观AI 自动修复能力不如 Copilot / Cursor / Cline 直接

所以更实际的组合是:

VSCode:适合学习初期、调试、AI 辅助LazyVim:适合练键盘流、终端开发、快速编辑CMake:负责真实构建clangd:负责编辑器里的提示和检查

总结

LazyVim 的价值不是让 Neovim 变成另一个 VSCode,而是在终端里提供一套轻量、可控、速度快的现代开发体验。

对学习 C++23 来说,最稳的组合是:

LazyVim + clangd + CMake + compile_commands.json

一句话记住:

CMake 负责真实编译,clangd 负责编辑器提示,compile_commands.json 负责让两者使用同一套编译参数。