在某些情况下,繁琐的ctags无法正常工作。
使用充满活力的ctags,我会得到一个完全错误的定义:
我运行代码时甚至没有使用 Coordinator#reporter
,因为缺少first
被打印到控制台,但是ctags坚持认为这是{{{{{ 1}}
我用
生成了我的标签@configuration.reporter
我正在运行Ubuntu ctags -RV .
使用ruby-mine查找定义,它可以完美地运行:
然而,红宝石矿非常昂贵而且不是开源的。
那么有一个替代旺盛的ctags吗?特定于红宝石的替代方案?
答案 0 :(得分:1)
我不熟悉ruby-mine,但我可以告诉你,Ctags对于对象类型,mixins,继承等一无所知。来自文档:
- 当我跳转到标签时,为什么我最终会走错线?
醇>默认情况下,ctags会对宏中的文件中的行号进行编码 找到(#define)标签。这样做是为了保持兼容 原始UNIX版本的ctags。如果您更改包含的文件 标记没有重建标记文件,标记的位置 文件可能不再与当前位置匹配。为了避免这种情况 问题,您可以指定选项--excmd = p,这会导致ctags 使用搜索模式来定位宏标记。我从未发现过 原始UNIX ctags专门用于行号的原因 宏标签,但到目前为止抵制改变默认行为 充满活力的Ctags表现不同。
在vim中,您只需运行调用标记定义C-]
,如果您在错误的位置,请输入:
:taglist
这将显示标签列表,您可以选择要跳转到的文件/方法定义。
您还可以通过vim
中的:tnext
和:tlast
进行导航