You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让coc识别CMake项目work子目录下的compile_commands.json文件

你之前的配置不生效的核心原因是:你贴的是vim-lsp插件的配置,和你使用的coc.nvim是完全独立的两个LSP客户端框架,所以配置不会对coc产生任何效果。

方案1:使用项目级coc配置(最推荐,无需修改vimrc)

在项目根目录直接新建.coc-settings.json文件即可,coc默认会自动加载当前工作目录下的该配置文件:

  • 如果你用的是coc-clangd(绝大多数coc C++用户的选择):
{
  "clangd.arguments": [
    "--compile-commands-dir",
    "./work"
  ]
}
  • 如果你用的是coc-ccls:
{
  "ccls.initializationOptions.compilationDatabaseDirectory": "./work"
}

方案2:写入项目本地.vimrc(符合你要求的实现方式)

如果你坚持要把配置写在项目根目录的本地.vimrc里(已经开启set exrc的前提下),可以添加以下配置:

  • 针对coc-clangd:
let g:coc_user_config = extend(get(g:, 'coc_user_config', {}), {
\ 'clangd': {
\   'arguments': ['--compile-commands-dir', './work']
\ }
\})
  • 针对coc-ccls:
let g:coc_user_config = extend(get(g:, 'coc_user_config', {}), {
\ 'ccls': {
\   'initializationOptions': {
\     'compilationDatabaseDirectory': './work'
\   }
\ }
\})

额外注意

开启exrc的同时建议在全局vimrc里添加set secure,避免项目目录下的恶意.vimrc执行危险命令。

内容的提问来源于stack exchange,提问作者Arsen Zahray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:09:03