01 | vim的一些使用说明

发布时间 2023-10-09 23:52:31作者: 独立树

我们在使用 vim 编写 C 或者 C++ 的代码的时候,没有自动提示很影响编辑体验。
那么我建议安装 YCM 插件,本文是基于安装完毕该插件的情况下,依然没有头文件自动提示的情况进行说明。

YCM 插件有三个头文件提示来源。

  • vim 自带的 ctags 机制
  • vim 打开的文件夹内的 compile_commands.json 文件
  • vim 打开的文件夹内的 .clang_complete 文件

1.ctags 机制

如果我们想要引入系统中已经安装好的库,比如 opencv 等
那么就需要生成该库的 ctags 文件,并配置路径

此处又细分为两种方式 :

  1. 手动方式: Vim: 使用tags文件扩展YCM对C族语言第三方库的代码自动补全功能_vim ctags ycm_此人姓于名叫罩百灵的博客-CSDN博客
  2. 自动方式(运行别人的脚本):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++ 标准,或者引入库的头文件路径。