VIM 的 YouCompleteMe 不能跳到.cpp 文件中的定义

2015-08-20 14:47:58 +08:00
 pzhjie
请问一下, VIM 装了 YouCompleteMe 神器以后,运行都正常,在.cpp 文件中都跳转正常,但是在.h 中跳到 cpp 文件的定义就不行了,没有包含(include )关系的好像就不能识别出来,导致 YCM 只能跳到声明,看不了定义,请问一下大家有遇到同样的问题吗,怎么解决
4845 次点击
所在节点    Linux
4 条回复
caiych
2015-08-20 22:56:03 +08:00
根据作者自己说的是只能跳转到被显式的 直接或间接的 include 的文件
好像就是设计意图也没准备改
我不知道怎么绕过…
dcoder
2015-08-20 23:47:47 +08:00
我发现 YouCompleteMe 的时候,以为可以让 VIM 媲美 IDE 了。
然后折腾了一会儿,发现还是比较难.
comicfans44
2015-08-21 09:13:58 +08:00
头文件中的声明在别的 cpp 中被包含的上下文中只能看到声明,这个上下文和具体实现的 cpp 属于两个不同的编译单元,想要实现跨编译单元的定义跳转,必须对每一个 cpp 进行语义分析并手动建立映射关系,然而这不是 youcompleteme 的实现方式。 youcompleteme 的跳转仅针对当前的编译单元,当然是跳转不到不同编译单元中的声明的。
pzhjie
2015-08-21 12:56:23 +08:00
看来只能与 ctag cscope 结合使用了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/214554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX