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