我像这样生成我的标签(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 的开源版本。)
如果我标记跳转offset
(Ctrl- ]),那么我会在我的代码库中得到一个列表offset
。在我输入offset.
到结尾之后shiftRight()
,OmniCppComplete 开始只为InterpolatedVector
.
如何让我的标签跳转像OmniCppComplete一样智能?
仅仅是标签跳转不使用任何上下文,所以他们只知道符号名称吗?(它与完全相同:tag <C-r><C-w><CR>
吗?)是否有一种 vim 替代方案可以使它们具有上下文感知能力?