5

当我使用 ctags 生成 STL 的标签并将这些标签与 Vim 一起使用时,它不知道范围。如果我使用 ctrl-] 它将转到第一个匹配的标签,即使那是不正确的。例如:

std::list<int> mylist;
mylist.push__back(100);

如果我在光标位于 push_back(100) 上时键入 ctrl-],它将带我到 bitvector 的 push_back 实现而不是 list 的实现。

据我所知,ctags 不知道范围,但我知道有一些使用 ctags 的 Vim 插件,例如 OmniCppComplete。有人知道可以解决此问题的任何插件或设置吗?

4

2 回答 2

4

您将哪些选项传递给 ctags? --extra=+q 可以帮助...

于 2009-06-05T19:28:29.257 回答
1

您可以选择执行“gctrl-]”(注意“g”)。这将为您打开一个相对标签位置的列表。您必须选择一个,vim 会将您带到文件位置。

Vimp jumps 让您更好地了解可用的跳跃。您可以跳转到本地或全局或任何声明。

并且有效地,一些插件改变了负责的功能以将您带到定义中,从而为您提供更好的 GoToDeclaration 系统。

于 2017-08-11T09:00:02.670 回答