01 | vim安装 YCM 插件后依然没有头文件提示
我们在使用 vim 编写 C 或者 C++ 的代码的时候,没有自动提示很影响编辑体验。
那么我建议安装 YCM 插件,本文是基于安装完毕该插件的情况下,依然没有头文件自动提示的情况进行说明。
YCM 插件有三个头文件提示来源。
- vim 自带的 ctags 机制
- vim 打开的文件夹内的
compile_commands.json
文件 - vim 打开的文件夹内的
.clang_complete
文件
1.ctags 机制
如果我们想要引入系统中已经安装好的库,比如 opencv 等
那么就需要生成该库的 ctags 文件,并配置路径
此处又细分为两种方式 :
- 手动方式: Vim: 使用tags文件扩展YCM对C族语言第三方库的代码自动补全功能_vim ctags ycm_此人姓于名叫罩百灵的博客-CSDN博客
- 自动方式(运行别人的脚本):adah1972/gen_systags: Generates a systags file for Vim use. (github.com)
2.compile_commands.json 文件
如果我们在使用 cmake 构建自己的项目,可以使用这种方式。
1. cmake 命令行上加上 `-DCMAKE_EXPORT_COMPILE_COMMANDS=1` 来产生此文件
`cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=1`
2. 建立符号连接
`ln -s build/compile_commands.json .`
3.使用 .clang_complete 文件
如果我们自己写 demo ,可以使用这种方式。
在文件夹下新建 .clang_complete
文件,并在文件中加入如下内容
-std=c++17
-D ELPP_FEATURE_CRASH_LOG
-D ELPP_FEATURE_PERFORMANCE_TRACKING
-D ELPP_NO_DEFAULT_LOG_FILE
-D ELPP_PERFORMANCE_MICROSECONDS
-D ELPP_UNICODE
-I common
-I 3rd-party/nvwa
-I 3rd-party/cmcstl2/include
-I 3rd-party/cppcoro/include
-I 3rd-party/expected/include
视情况自己修改 C++ 标准,或者引入库的头文件路径。