VIM:打开包含光标当前功能的ruby / rails文件

时间:2011-03-15 01:38:30

标签: ruby-on-rails ruby vim

我已经开始通过VIM编写Ruby on Rails。我知道这可以不做但我不知道如何:如何在包含光标下的{function | class | constant | whatever}的文件中打开一个新的vim实例?我该怎么安装?我该如何使用它?

2 个答案:

答案 0 :(得分:3)

你可以使用 Exuberant Ctags(在许多系统上以ctags提供)索引Ruby类,方法,模块和单例方法(检查ctags --list-kinds=ruby)。 Vim内置的tag functionality可以使用生成的tags文件跳转到索引标识符。标签功能在查找标签时不会进行太多源检查,因此在处理方法名称时可能需要使用备用表单(例如g Control-],g左键单击)在多个地方定义。您需要每隔一段时间(重新)构建一个标记文件(ctags --recurse通常就足够了),以确保索引新标识符(并删除旧标识符)。

对于Rails,还有rails.vim。它对gf command(“goto文件”)进行了一些很好的增强,并且有一些自己的命令(:A…:R…),这使得导航Rails项目相当容易。与带有ctags索引的标签导航不同,导航命令主要限于文件/类(没有“裸”方法;但有一些例外:您可以使用方法名称扩展一些跳转(无{{1}但是你可以:find activate),并且 - 基于Rails命名约定 - 你可以从视图跳转到控制器方法)。来自:Rmodel User#activate的功能不需要任何类型的索引,因此它始终是“最新的”。

答案 1 :(得分:0)

我不认为Vim会根据函数打开包含文件;我已经使用了很长时间,不记得看到了。这更像是IDE会做的事情,Vim不是IDE,它是一个非常强大的文本编辑器。

如果文件的路径在光标下,Vim可以打开文件。请参阅Vim针对:h ^Wgf:h find的内置帮助。

它还可以根据字符串搜索所有文件,并显示找到字符串的位置并打开该文件。请参阅:h :vim的帮助。这将使你成为你想要的方式的一部分。

如果光标位于函数名称上,则可以使用:vim ^rw *。这会将单词从光标下复制到命令行,所以你不必全部输入.Vim会搜索找到所有匹配的文件,然后设置错误列表,允许你移动它,打开文件匹配。

您可能希望查看Vim的taglist plugin,因为它将为您提供打开文件中所有功能和标签的列表,从而可以轻松跳转。它需要ctags,但这通常很容易安装。