2

你如何让 ctags 占 c++ 中的类?当我跳转到一个函数的标签时,我得到了函数的同名但在一个错误的类中。

乙乙; b.init();

并且有

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

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

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

4

3 回答 3

3

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

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

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

于 2010-10-21T22:26:49.927 回答
1

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

于 2010-10-21T22:24:49.710 回答
0

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

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

将其视为交互式:tselect. 将光标放在标识符上并<c-w><m-down>在正常模式下键入(可配置)。它还提出了基于/已为当前项目设置的情况下构建和更新ctags<c-x>ta的方法。:wg:b:ctags_dirname

于 2010-10-22T07:03:42.463 回答