ctag 忽略 c++ 中的类

发布于 2024-09-28 05:43:57 字数 267 浏览 8 评论 0原文

如何让 ctags 代表 C++ 中的类?当我跳转到函数的标签时,我得到了该函数的相同名称,但在错误的类中。

乙b; b.init();

还有

A::init() {} B::init() {}

我将光标放在 b.init() 的 init 上,跳转到 A::init() {} 而不是 B::init() {}。

注意,我的代码中没有使用 a 和 b 。所以如果你运行 ctags 这可能不起作用。如果这不是常见问题,我可以发布实际代码。

how do you make ctags account for class in c++? when i jump to a tag of a function i get to the same name of the function but in a wrong class.

B b;
b.init();

and there are

A::init() {}
B::init() {}

i put the cursor on init of b.init() and the jump is to A::init() {} instead of B::init() {}.

Note, i didn't use a and b in my code. so this might not work if u run ctags. if it's not a common problem i ca post the actual code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

假扮的天使 2024-10-05 05:43:57

这并不能解决您原来的问题,但如下所示的映射可能会有所帮助:

nnoremap CTRL+] :exe 'tj' expand('<cword>')<CR>

init() 有多个定义时,这至少会使 CTRL+] 显示选择菜单

This doesn't solve your original problem, but a mapping such as the following may help:

nnoremap CTRL+] :exe 'tj' expand('<cword>')<CR>

This will at least make CTRL+] show you a selection menu when there are multiple definitions of init().

病毒体 2024-10-05 05:43:57

我不知道有什么方法可以做到这一点,因为它需要 vim 进行 c++ 解析。在这种情况下,我使用 :tselect 显示整个列表并选择一个。

I am not aware of any method to do this, as it would require vim to do c++ parsing. In that situation I use :tselect to show the whole list and choose one.

做个少女永远怀春 2024-10-05 05:43:57

我写了 lh-tags 来解决这个问题[它将需要 lh-vim-lib。]

它无法识别无论 b 是 A 还是 B,但它提供了一个小 GUI 来选择我们要跳转到的标签。

将其视为交互式 :tselect。将光标放在标识符上,然后在正常模式(可配置)下输入 。它还提出了基于 ta:w 构建和更新 ctag 的方法,因为 g:/b:ctags_dirname 已为当前项目设置。

I wrote lh-tags to solve this problem [It will require lh-vim-lib.]

It does not recognize whether b is a A or a B, but it proposes a little GUI to select which tag we want to jump to.

See it as an interactive :tselect. Put the cursor on an identifier and type <c-w><m-down> in normal mode (which is configurable). It also proposes ways to build and update the ctags base on <c-x>ta and on :w given that g:/b:ctags_dirname has been set for the current project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文