【问题标题】:vim doesn't appear to find .clang_completevim 似乎没有找到 .clang_complete
【发布时间】:2014-01-06 07:23:50
【问题描述】:

尝试在 vim 中使用 clang complete 为 C 设置自动完成,到目前为止,当我在 .c 文件中时,当我点击 ctrl+x,u。但是它只显示一些符号。

包含的标题中的所有功能都不会出现在自动完成弹出框中。似乎只有 typedef 显示?

项目结构很简单:

$ tree -ap
.
├── [-rwxrw-r--]  .clang_complete
├── [-rwxrw-r--]  makefile
└── [drwxrw-r--]  src
    └── [-rwxrw-r--]  FlightControl.c

1 directory, 3 files

我尝试在项目文件夹中创建 .clang_complete 文件,其中包含以下内容:

-I/.../Libraries/xpSDK/CHeaders/XPLM

我仔细检查了 XPLM 标头的路径,它是正确的。

有什么想法吗?

【问题讨论】:

  • 尝试同时包含 -I../../
  • 试过了,什么也没做。
  • 刚刚删除 .clang_complete 看看会发生什么,这会导致 Pattern not found 错误,这意味着我的 .clang_complete 文件正在被解析。但是为什么我只看到 typedef,根本看不到函数!

标签: c vim clang clang-complete


【解决方案1】:

在完成过程中libclang 尝试通过忽略错误来尽力为用户提供最长的匹配列表。我猜你没有定义 XPLM_API 宏。由于它用于在标头中声明每个函数,因此您不会在完成列表中看到任何函数。查看XPLMDefs.h 中的定义我认为libclang 得到Platform not defined! 错误(甚至可能多次)。

如果您定义完成平台,它应该可以工作,我通过将-DLIN 添加到.clang_complete 文件来做到这一点,现在完成工作。

所以这似乎不是 vim 或 clang_complete 的问题,尽管在这种情况下发出警告会很好。

【讨论】:

  • 太棒了,解决了它。谢谢! ;)
猜你喜欢
  • 2013-09-24
  • 2017-11-13
  • 2012-05-02
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多