ctags是否有特定于ruby的替代品?

时间:2015-09-08 12:58:01

标签: ruby ctags exuberant-ctags

在某些情况下,繁琐的ctags无法正常工作。

使用充满活力的ctags,我会得到一个完全错误的定义:

incorrect referral

我运行代码时甚至没有使用

Coordinator#reporter,因为缺少first被打印到控制台,但是ctags坚持认为这是{{{{{ 1}}

我用

生成了我的标签
@configuration.reporter

我正在运行Ubuntu ctags -RV .

使用ruby-mine查找定义,它可以完美地运行:

correct referral

然而,红宝石矿非常昂贵而且不是开源的。

那么有一个替代旺盛的ctags吗?特定于红宝石的替代方案?

1 个答案:

答案 0 :(得分:1)

我不熟悉ruby-mine,但我可以告诉你,Ctags对于对象类型,mixins,继承等一无所知。来自文档:

  
      
  1. 当我跳转到标签时,为什么我最终会走错线?
  2.         

    默认情况下,ctags会对宏中的文件中的行号进行编码   找到(#define)标签。这样做是为了保持兼容   原始UNIX版本的ctags。如果您更改包含的文件   标记没有重建标记文件,标记的位置   文件可能不再与当前位置匹配。为了避免这种情况   问题,您可以指定选项--excmd = p,这会导致ctags   使用搜索模式来定位宏标记。我从未发现过   原始UNIX ctags专门用于行号的原因   宏标签,但到目前为止抵制改变默认行为   充满活力的Ctags表现不同。

在vim中,您只需运行调用标记定义C-],如果您在错误的位置,请输入:

:taglist

这将显示标签列表,您可以选择要跳转到的文件/方法定义。

您还可以通过vim

中的:tnext:tlast进行导航