我想从以下内容开始:
class ApplicationController < ActionController::Base
to
/home/slavik/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.0.rc6/lib/action_controller/base.rb
并查看可能使用该类的注释参考
我想从以下内容开始:
class ApplicationController < ActionController::Base
to
/home/slavik/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.0.rc6/lib/action_controller/base.rb
并查看可能使用该类的注释参考
是的,至少有一种方法。您可以使用exuberant ctags与Vim的tags选项相结合。实际上,您必须在/home/slavik/.rvm/gems/ruby-1.9.2-p290/gems/中执行ctags:
ctags -R tags
ctags --help
。然后,您需要将此文件添加到vim中的标签路径中。使用类似下面这样的内容::set tag+=/home/slavik/.rvm/gems/ruby-1.9.2-p290/gems/tags
ctags存在一些问题,其解析器相当陈旧且难看:
我建议使用更好的项目ripper-tags,它基于Ruby官方解析器Ripper,这是Ruby自带的解析器。 它快速而准确:https://github.com/tmm1/ripper-tags
您也可以安装gem-ripper-tags,以在gem安装后自动生成标签文件:https://github.com/lzap/gem-ripper-tags
请注意,现在是2013年8月,ripper-tags已进行了大规模重构,这可能会导致命令行选项或gem-ripper-tags接口发生变化。 如果出现问题,请在几天内更新两个gem并阅读帮助屏幕以了解新选项。
ripper-tags听起来不错,但是今天(2013年11月)出现了一些问题。最终我使用了exuberant ctags(加上一些技巧)。
1- 安装exuberant ctags。如果你使用的是osx,这篇文章展示了一个小技巧: http://www.runtime-era.com/2012/05/exuberant-ctags-in-osx-107.html
2- 如果你只想为目录中的文件包含ctags,请在目录中运行此命令:
ctags -R
ctags --exclude=.git --exclude='*.log' -R * `bundle show --paths`
信用:https://coderwall.com/p/lv1qww(请注意,我去掉了生成emacs标签而不是vim的-e选项)
4- 将以下行添加到您的~/.vimrc文件中
set autochdir
set tags+=./tags;
(为什么需要分号:http://vim.wikia.com/wiki/Single_tags_file_for_a_source_tree)
5- 转到想要跟随的单词,按下ctrl+]
。按下ctrl+o
返回 (https://dev59.com/anVD5IYBdhLWcg3wNIvc#53929)
ctags -R --language-force=ruby --sort=yes
并且它可以工作;为什么我需要传递-Rtags
?这是什么意思? - MhdSyrwantags
被解释为文件名,正如文档中所解释的那样!如果它不存在,则会抛出文件未找到错误。 - MhdSyrwan