我正在学习VIM for Rails开发,并希望轻松导航文件中的方法.到目前为止,我看到几个选项:
通过使用找到'def'
/def
使用q和记录创建与键对应的宏
使用VIM标志?(甚至不确定他们做了什么,他们听起来很有希望
有没有更好的想法?
:帮助] m
我认为它需要vim-ruby来支持红宝石.
你会想要一个名为ctags的功能
看到充满活力的ctags,它适用于包含Ruby的许多语言,并且易于使用.
来自VIM :help ctags
ctags将创建源树中所有标识符的索引.然后,您可以使用标记命令在源树周围导航.看:help tag-commands
.最简单的方法是将光标放在关键字上,然后按CTRL- ].要回到你来自哪里,请按CTRL-T
除此之外,您可能希望查看此页面,其中介绍了如何将VIM用作功能更全面的Ruby IDE:将Vim用作完整的Ruby On Rails IDE
Vim的最佳解决方案:使用ctags.阅读有关如何在TAGS文件中导航的Vim文档,还安装CtrlP之类的插件,可以直观地浏览标签.
警告:繁琐的ctags与Ruby不兼容,解析器状况不佳,4年后它还没有改变.
ctags不处理:模块A :: B
ctags不标记(至少某些)运算符方法,如==
ctags不支持限定标签,-type = +
ctags不输出常量或属性的标记.
不幸的是所有其他(我发现2)Ruby ctags生成器要么已过时(没有Ruby 1.9+支持),要么非常慢.
有一个解决方案.Ripper-ctags:https://github.com/tmm1/ripper-tags它很快,它按预期工作.它基于Ruby 1.9+功能,称为"Ripper",它允许我们构建在(快速)Ruby原始解析器之上.它是当今最准确的ctags发生器.
Ripper CLI选项几乎与ctags相同,因此如果您已经知道ctags,您会发现ripper-tags易于学习.它很简单:
ripper-tags -R .
这会创建TAGS文件,vim默认自动读取(必须是打开vim实例的目录,或者如果你在另一个目录中启动它,请在vim中手动更改路径设置 - 更多在Vim手册中).
如果你喜欢这个,你可以更进一步安装我的项目,为你安装的所有宝石自动创建TAGS:https://github.com/lzap/gem-ripper-tags
用法很简单(再次注意,只有Ruby 1.9+):
gem install gem-ripper-tags
然后为所有已安装的宝石生成标签:
gem ripper_tags
无论何时安装gem,都会自动创建标签.
gem instal some_gem ...
我再往前走一步 - 我有一个git模板,它会在每次git pull或者自动合并后使用ripper-tags 重新生成我的项目TAGS :
https://github.com/lzap/bin-public/blob/master/git-hooks-reinstall
请注意,您将需要来自同一个git存储库的目录文件/ git_template.
我希望这是在Ruby代码库中导航的良好起点:-)
一些想法:
首先,进行映射以使用C函数搜索键~/.vim/after/ftplugin/ruby.vim
:
:nmap [[ ?def:nmap ]] /def
然后你可以使用[[
和]]
前进和后退一个函数,就像在C/Perl/Java代码中一样.
另一种可能有用的方法:
在.vimrc
,添加行:
:let ruby_fold = 1
然后使用zj
,zk
,z[
和z]
由褶皱导航.您也可以安装此插件,以便您可以使用轻松删除折叠daz
.
为了找到特定的功能(而不仅仅是在它们周围导航),你需要使用ctags(如chillitom所述).该标记列表插件使得它更容易定位到特定的功能,但(作为chillitom说)Ctrl- ]和Ctrl- T是光标下以下关键字有用.
有关更多信息,请参阅:
:help [[ :help ft-ruby-syntax :help z[ :help after-directory