【问题标题】:Generating a better ctags file for Rails projects为 Rails 项目生成更好的 ctags 文件
【发布时间】:2014-03-31 21:00:11
【问题描述】:

如何为 rails 项目生成好的 ctags 文件?一个包含所有 gem、ruby 库并按正确顺序对它们进行排序(例如当您搜索“Rails”时,它不会转到 airbrake gem 或其他任何东西)

我现在正在使用它,但由于上述原因我不喜欢它:

ctags --tag-relative -Rf.git/tags.$$ --exclude=.git --exclude=*.html --exclude=tmp --exclude=public --exclude=app/assets --languages=-javascript,js,sql,html `bundle show --paths` $MY_RUBY_HOME .

【问题讨论】:

    标签: ruby-on-rails ruby vim emacs ctags


    【解决方案1】:

    所以事实证明,更好的选择(比 ctags 更好)是 Emacs 的 Robevim + tmux + vmux + pry 的组合(得到 show-sourceedit)。

    irb-config 是一个有趣的 vim 设置示例。

    【讨论】:

      【解决方案2】:

      Vim 和 ctags 都无法理解或被教导理解您的代码和/或您的想法。如果您想跳转到与tags 文件中第一个匹配的标签不同的标签,请使用正确的命令:

      :tselect foo        " list all tags 'foo'
      :tselect /foo       " list all tags containing 'foo'
      g]                  " list all tags matching the word under your cursor
      

      另外,请注意,您可以通过将文件类型列入白名单来缩短“您的”ctags 命令:

      ctags --tag-relative -Rf.git/tags.$$ --exclude=.git --exclude=tmp --exclude=public --exclude=app/assets --languages=ruby `bundle show --paths` $MY_RUBY_HOME .
      

      【讨论】:

      • 任何其他解决方案都可以,我真的不在乎它是什么。我看到 pry 做到了,我只需要弄清楚如何使它与 vim 一起工作。
      • 问你真正的问题,然后:“我怎样才能让 Vim 跳转到 Ruby 的定义更智能?”。你可以尝试 Ripper 来生成你的 tags 但这不会让 Vim 在使用该文件时更智能。
      • 我确实尝试了 ripper,但没有看到任何改进。
      • 确实如此。请改写您的问题或再问一个问题。