Лучшее решение для Vim: использовать ctags . Прочитайте документацию Vim о том, как перемещаться в файлах TAGS, а также установите плагин, например CtrlP, который позволяет вам визуально просматривать теги.
Предупреждение: Exuberant 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. Это так же просто, как:
ripper-tags -R .
Это создает файл TAGS, который vim автоматически читает по умолчанию (должен быть каталогом, в котором вы открываете свой экземпляр vim, или вручную изменять настройку пути в vim, если вы запускаете его в другом каталоге - подробнее в руководстве Vim).
Если вам это нравится, вы можете пойти дальше и установить мой проект, который автоматически создает теги для всех устанавливаемых вами камней : https://github.com/lzap/gem-ripper-tags
Использование очень просто (обратите внимание, только Ruby 1.9 +):
gem install gem-ripper-tags
Затем сгенерируйте теги для всех уже установленных драгоценных камней:
gem ripper_tags
Каждый раз, когда вы устанавливаете самоцвет, теги будут создаваться автоматически.
gem instal some_gem ...
Я делаю еще один шаг - у меня есть шаблон git, который регенерирует мой проект TAGS после каждого git pull или слияния автоматически (с использованием тегов ripper):
https://github.com/lzap/bin-public/blob/master/git-hooks-reinstall
Обратите внимание, что вам также понадобятся файлы каталогов / git_template из того же хранилища git.
Я надеюсь, что это хорошая отправная точка для навигации по кодовым базам Ruby: -)