如何使RSense自动完成并跳转到rails项目的定义?

时间:2011-04-14 20:21:46

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

我从netbeans切换到emacs,我对这个改变非常满意。我最缺少的是自动完成并跳转到定​​义。为了得到这个,我安装了Rsense。它适用于gems代码,但我不能根据我定义的方法跳转到Rails项目的定义,也不能自动完成。

我尝试将项目的加载路径添加到Rsense的load_path配置中,但它仍然不起作用。

有谁知道如何使这个工作?

2 个答案:

答案 0 :(得分:2)

您可以使用标签浏览文件并直接跳转到功能定义。 我使用Exuberant Ctags(它得到了Ruby支持)。您可以从here下载。

我假设您正在使用Windows。如果您是第一次使用emacs,那么最初在Windows上使用标签会很麻烦。

这是我遵循的步骤:

  1. here安装Cygwin。
  2. 在环境变量PATH中包含cygwin \ bin \文件夹。例如。 here
  3. 安装exhuberant ctags。请注意,emacs可能有时会内置ctags。稍后,您将不得不使用cygwin中的ctags命令来创建标记。那时你可能会遇到一些错误,以防它在emacs中使用ctags而不是繁琐的ctag。
  4. 安装ctags后,将其添加到环境变量PATH中。
  5. 如果您的项目数量相对较少(<500)。所以你只需要一个全局TAGS文件。对于那个开放的cygwin,将目录更改为项目的根目录,并输入命令ctags -R -e Check this out以获取其他方法
  6. 您的代码文件将被创建。它将命名为“TAGS”,并将出现在项目的根目录中。
  7. 接下来打开emacs,浏览代码。如果您遇到某个功能并希望跳转到其定义,请将光标放在功能名称上,然后按M-.您的迷你缓冲区应显示类似Find tag (default <function-name>):的内容,按Enter键瞧!你神奇地转移到功能定义! 注意:您可能必须在第一次使用M-.时指定TAGS文件。这需要在emacs启动后只执行一次。您还可以修改.emacs文件以在启动时自动接收TAGS文件。
  8. 有关emacs中与标签相关的命令的详细信息,请参阅thisthis

答案 1 :(得分:1)

到现在为止,我一直在使用rtags来跳转到定义。它并不完美,但在很多情况下它都能解决问题。