我发现omnicppcomplete不支持typedef-ed结构名称。我不知道这是omnicppcomplet的限制,还是因为我的vim环境中缺少一些配置。让我举一个虚拟的例子来说清楚。
typedef struct foo {
int a;
int b;
}foo_t ;
foo a ;
foo_t b ;
然后在我点击“a”之后。在插入模式下,以下内容将出现在弹出窗口中:
a m + foo
b m + foo
但击中“b”后。 ,下面的一行显示在屏幕的底部:
"Omni completion (^O^N^P) Pattern not found
======================在Habi回答之后编辑===================== ==========
我使用的ctags版本是5.4,最新版本是5.8。通过Habi的例子,我下载了最新版本的ctags并修复了问题。
答案 0 :(得分:2)
这里有类似的例子。
我用这种方式使用ctags:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
我使用了丰富的ctags版本5.7和omnicppcomplete 0.41。
我的omnicppcomplete设置是:
let OmniCpp_ShowPrototypeInAbbr=1
let OmniCpp_ShowScopeInAbbr=1
let OmniCpp_SelectFirstItem=2