获取 ctags + Vim 可以与范围界定一起工作吗?
当我使用 ctags 生成 STL 标签并在 Vim 中使用这些标签时,它不知道作用域。 如果我使用 ctrl-] 它将转到第一个匹配的标签,即使这是不正确的。 例如:
std::list<int> mylist;
mylist.push__back(100);
如果我在光标位于 Push_back(100) 上时输入 ctrl-],它将带我进入 Push_back 的位向量实现,而不是列表的实现。
据我所知,ctags 不知道范围,但我知道有一些 Vim 插件使用 ctags,例如 OmniCppComplete。 有人知道可以解决此问题的任何插件或设置吗?
When I use ctags to generates tags of the STL and use those tags with Vim, it isn't aware of scoping. If I use ctrl-] it will go to the first tag that matches, even if that is incorrect. For example:
std::list<int> mylist;
mylist.push__back(100);
if I type ctrl-] while the cursor is over push_back(100), it will take me to the bitvector's implementation of push_back instead of list's.
As far as I know ctags isn't aware of scope but I know there are some Vim plugins that use ctags that are, such as OmniCppComplete. Is anyone aware of any plugins or settings that will fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您将哪些选项传递给 ctags?
--extra=+q
可能有帮助...What options are you passing to ctags?
--extra=+q
may help...您可以选择执行“gctrl-]”(注意“g”)。 这将打开一个相对标签位置的列表。 你必须选择一个,vim 会将你带到文件位置。
Vimp 跳跃
为您提供可用跳跃的更好视角。 您可以跳转到本地或全局或任何声明。
实际上,一些插件更改了负责的函数以将您带入定义,从而为您提供更好的 GoToDeclaration 系统。
You can optionally do "gctrl-]" (notice the 'g'). This will open you a list of relative tag position. You'll have to choose one and vim will bring you to the file position.
Vimp jumps
Give you better perspectives of available jumps. You can jump to local or global or whatever declaration.
And effectively, some plugins change the function in charge to bring you to the definition and so, give you better GoToDeclaration system.