idb*_*rii 5 c++ vim ctags omnicppcomplete exuberant-ctags
我生成我的标签(Exuberant Ctags 5.9~svn20110310),如下所示:
ctags --c++-kinds=+p --fields=+iaS --extra=+q -L ctags.files
Run Code Online (Sandbox Code Playgroud)
我大致有这个类结构:
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);
}
};
Run Code Online (Sandbox Code Playgroud)
(代码来自Aquaria的开源版本.)
如果我标记跳转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
| 归档时间: |
|
| 查看次数: |
580 次 |
| 最近记录: |