YouCompleteMe 介绍
如果安装完YouCompleteMe并配置好后 (本站有过程记录,点击这里查看),就可以 使用单文件来检测代码提示效果了。但是,当 S&E 打开他的 C/C++工程时,却发现代码提 示、跳转等功能不能正常使用。在查阅文档后,S&E 发现原来是 YouCompleteMe 相关的索 引数据库没有建立,相关的编译选项并不正确,所以 YouCompleteMe 所使用的的 clangd 就不能将多个源文件联系起来。
建立 C/C++ VIM 代码提示索引的方法
如果是使用 CMake 建立工程,则可以在 CMakeList.txt 中加入
set( CMAKE\_EXPORT\_COMPILE\_COMMANDS ON )
或者在命令行 cmake 后加上-DCMAKE_EXPORT_COMPILE_COMMANDS=ON也行
建立索引的原理
YouCompleteMe 读取由构建系统 CMake 生成的编译数据库(通常名字叫做 compile_commands.json),这样就可以完成对于工程文件的索引。而编译数据库包含项目 中每个编译单元的编译器调用。YouCompleteMe 会寻找打开文件所在目录中的 compile_commands.json,如果没找到会递归地向上查找这个文件。如果在它找到 .ycm_extra_conf.py 之前,找到了 compile_commands.json,那么它就会停止搜索,然 后,让 clangd 处理接管并处理该文件中含有的标志。 在完成上述这些操作 后,YouCompleteMe 的相关功能就可以正常使用了。