8

有没有办法在 vim 中找到方法的所有用途?我使用 vim 作为带有 rails.vim 的 Rails 的 IDE。ctags 有助于从用法跳转到方法定义,但不能反过来 AFAIK。我希望能够在任何地方(控制器、视图等)找到使用过的方法。

4

2 回答 2

9

在 Vim 中没有任何完美的解决方案,但你可以使用cscopeand grepor来接近ack

cscope将帮助您找到对符号的所有引用。它是为 C 和类 C 语言而设计的,但它在匹配 Ruby 代码中的符号方面也做得不错。它不会一直正确地获取上下文。

这是一个vim cscope 教程一篇关于 Ruby/Vim/cscope的博客文章,以及另一篇博客文章,这两篇文章都包含有关在 Vim 中导航 Ruby/Rails 代码的其他提示。

使用grepack从 Vim 与 quickfix 集成是另一种查找符号的好方法。他们没有范围/上下文的概念,但通常一个简单的搜索就足够了。仅使用内置:grep命令,您可以执行以下操作:

:grep some_method app/controllers
:cwindow

并在 quickfix 窗口中获取搜索结果,这将允许您快速导航到匹配的文件和行号。

一个更好的选择是ack.vim插件,它将ack与 Vim 集成并利用了 quickfix 窗口。

如果您还没有使用插件来导航 CTAGS,我推荐Tagbar

于 2013-03-17T04:34:04.893 回答
7

我写了一个宝石来做到这一点:https ://rubygems.org/gems/starscope

它正确解析 ruby​​ 代码并导出为 ctags 和 cscope 文件格式。

于 2014-01-10T00:20:54.900 回答