如何在Nvim及Kickstart.nvim中默认启用--std=c++20编译C++代码
配置Kickstart.nvim让C编译默认使用C20标准
方法1:修改clangd LSP默认参数
Kickstart.nvim默认用clangd作为C++语言服务,你可以在init.lua中找到clangd的配置段,添加--std=c++20到启动参数里:
找到原配置块:
require('lspconfig').clangd.setup { on_attach = on_attach, capabilities = capabilities, }
修改为:
require('lspconfig').clangd.setup { on_attach = on_attach, capabilities = capabilities, cmd = { "clangd", "--std=c++20", -- 保留其他默认参数,比如--background-index、--clang-tidy等 }, }
修改后重启nvim,clangd会默认以C++20标准分析代码,且通过LSP触发的编译操作会自动带上该参数。
方法2:全局设置编译参数(直接调用gcc/clang时生效)
如果习惯直接用g++/clang++编译,可在shell配置文件中添加环境变量:
- Bash用户编辑
~/.bashrc,添加:export CXXFLAGS="-std=c++20" - Zsh用户编辑
~/.zshrc,添加同样内容。
保存后执行source ~/.bashrc(或对应zsh配置文件)生效,此后调用g++/clang++时会自动附加C++20参数。
方法3:修改Kickstart的编译快捷键配置
如果Kickstart中配置了编译快捷键(比如直接编译单个cpp文件),可直接修改快捷键对应的命令:
找到类似如下的快捷键配置:
vim.keymap.set('n', '<leader>cc', '<cmd>!g++ % -o %:r<CR>', { desc = 'Compile C++ file' })
修改为:
vim.keymap.set('n', '<leader>cc', '<cmd>!g++ % -o %:r -std=c++20<CR>', { desc = 'Compile C++ file with C++20' })
此后按快捷键编译时,会自动带上C++20标准参数。
方法4:CMake项目配置
若你用CMake管理项目,可在项目根目录的CMakeLists.txt中添加:
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON)
CMake生成的构建文件会默认使用C++20标准编译代码。
注:修改nvim配置后,需重启nvim或执行:source $MYVIMRC让配置生效。
内容的提问来源于stack exchange,提问作者Bogdan Mieldzicz
相关产品推荐
相关产品推荐

