gpt4 book ai didi

c++ - 如何使 vim 标签跳转与 OmniCppComplete 一样智能?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:39 24 4
gpt4 key购买 nike

我像这样生成我的标签(Exuberant Ctags 5.9~svn20110310):

 ctags --c++-kinds=+p --fields=+iaS --extra=+q -L ctags.files

我大致有这样的类结构:

class RenderObject
{
InterpolatedVector offset;
};

class Quad : public RenderObject
{
};

class KeyframeWidget : public Quad
{
void shiftRight()
{
if (!offset.isInterpolating())
offset.interpolateTo(Vector(offset.x+80, 0), 0.1, 0, 0, 0);
}
};

(代码来自Aquaria's open source release。)

如果我在 offset 上标记跳转(Ctrl-]),然后我每 offset 得到一个列表在我的代码库中。在我输入 offset. 之后到 shiftRight() 结束, OmniCppComplete 开始只为 InterpolatedVector 提供补全.

如何让我的标签跳转像OmniCppComplete一样智能? ?

难道只是标签跳转不使用任何上下文,所以它们只知道符号名称? (它与 :tag <C-r><C-w><CR> 完全相同吗?)是否有 vim 替代方案使它们具有上下文感知能力?

最佳答案

我最近开始使用 Vim 的 SmartTag 插件,发现它非常擅长使用来自周围 C++ 代码的上下文信息来找到正确的标签。

你可以在这里下载:

https://github.com/MarcWeber/SmartTag

为了能够通过 Ctrl-] 使用它,你需要使用带有 tagfunc 的 Vim 版本补丁应用。它在这里:

http://llorens.visualserver.org/vim73-tagfunc.zip

关于c++ - 如何使 vim 标签跳转与 OmniCppComplete 一样智能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com