Vim перейти к объявлению класса ruby - PullRequest
3 голосов
/ 11 сентября 2011

Я хочу следовать из

class ApplicationController < ActionController::Base

до

/home/slavik/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.0.rc6/lib/action_controller/base.rb

и посмотрите на закомментированную ссылку возможного использования этого класса

Ответы [ 3 ]

3 голосов
/ 11 сентября 2011

Да, есть хотя бы один способ.Вы можете использовать exuberant ctags в сочетании с опцией tags Vim.Практически, вы должны выполнить ctags в /home/slavik/.rvm/gems/ruby-1.9.2-p290/gems/ например:

ctags -R tags

См. ctags --help, если вы хотите копаться внастройка тегов.Затем вы должны добавить этот файл к вашему пути тегов в vim.Используя что-то вроде следующего:

:set tag+=/home/slavik/.rvm/gems/ruby-1.9.2-p290/gems/tags

Чтобы понять, насколько мощными являются эти функции vim, взгляните на Browsing_programs_with_tags .

2 голосов
/ 16 августа 2013

Есть несколько проблем с ctags, который имеет довольно старый и уродливый парсер:

  • Ctags не работает с: модулем A :: B
  • Ctags не помечает (по крайней мере, некоторые из) операторные методы, такие как ==
  • Ctags не поддерживает квалифицированные теги, -type = +
  • Ctags не выводит теги для констант или атрибутов.

Я бы порекомендовал лучший проект ripper-tags на основе официальный Анализатор Ruby под названием Ripper, который включен в Ruby. Это быстро и точно : https://github.com/tmm1/ripper-tags

Вы также можете установить gem-ripper-tags , чтобы файлы тегов автоматически создавались после установки gem: https://github.com/lzap/gem-ripper-tags

Обратите внимание, что в эти дни, в августе 2013 года, произошел большой рефакторинг тегов ripper, который может привести к изменению параметров командной строки или интерфейса gem-ripper-tags. Если что-то не работает, обновите оба гема через пару дней и прочитайте экран справки, чтобы узнать новые опции.

1 голос
/ 12 ноября 2013

тегов риппера звучат замечательно, но на сегодняшний день возникают проблемы (ноябрь 2013 года). В итоге я использовал обильные ctags (с несколькими трюками)

1 - установить обильные ctags. Если вы используете osx, эта статья показывает небольшой трюк: http://www.runtime -era.com / 2012/05 / буйный-Ctags-в-OSX-107.html

2 - Если вы хотите включить ctags только для файлов в вашем каталоге, выполните эту команду в вашем каталоге:

ctags -R

Это создаст для вас файл «тегов».

3 - Если вы хотите включить ctags для ваших драгоценных камней (это было очень полезно для меня с RubyMotion и разработанными мной локальными драгоценными камнями), сделайте следующее:

ctags --exclude=.git --exclude='*.log' -R * `bundle show --paths`

кредит: https://coderwall.com/p/lv1qww (Обратите внимание, что я удалил опцию -e, которая генерирует теги для emacs вместо vim)

4- Добавьте следующую строку в ваш ~ / .vimrc

set autochdir 
set tags+=./tags;

(Почему точка с запятой: http://vim.wikia.com/wiki/Single_tags_file_for_a_source_tree)

5- Перейдите к слову, которому вы хотите следовать, и нажмите ctrl+]. нажмите ctrl+o, чтобы вернуться (https://stackoverflow.com/a/53929/226255)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...