For the vim folks

Discussion in 'Ruby' started by John Wells, Mar 25, 2009.

  1. John Wells

    John Wells Guest

    I've been using vi/vim since '97 for various quick edits and
    administration tasks, but have only recently considered using it to
    replace Netbeans as my ruby editor of choice. One thing I find
    extremely useful in both Netbeans and Eclipse is the Ctrl+Click "Go to
    definition" feature, where you can ctrl+click on a class or method and
    it will take you to the definition.

    Now, I've played with exuberant ctags and rails.vim, and it's close,
    but no cigar. Here's what I want: by default in Netbeans and Eclipse,
    you can ctrl+click a local method or class in your local rails
    project, but you can also ctrl+click on things defined in gems or in
    the system libraries that are coded in Ruby. Netbeans for example
    parses all ruby files in the default system paths and makes them
    navigable for you. If there are multiple files that define a method,
    it will present you with a list and allow you to choose between them.

    How can one accomplish this within vim? If it can be done, I may be
    able to make the jump full time.

    John Wells, Mar 25, 2009
    1. Advertisements

  2. John Wells

    lasitha Guest

    Hello John,

    Take a look at the 'tags' option in vim:
    :h tags-option

    It lets you define a set of tag files vim will use for tag lookups (Ctrl-]).
    So you could define something similiar to the following in a ruby ftplugin:
    setl tags=./tags;/Users/lasitha,/usr/local/ruby1.9/lib/tags

    The semicolons define un upward search. ':h path' for more on the syntax.

    The key to solving your problem though is to add some absolute paths
    to global tag files for the ruby source (not shown above) and gems.

    When generating these tag files, it helps to use an excludes file to
    weed out things like rdoc files. I keep '.ctags-excludes' files in
    the relevant directories and use them with:
    ctags --exclude=@.ctags-excludes -R .

    And lastly i use some bash aliases for gem install and update to make
    sure the tag files are immediately regenerated.

    Hope that helps you get converted (it's worth it :).

    Oh, btw - a vim-on-rails ML was created recently:

    lasitha, Mar 25, 2009
    1. Advertisements

  3. John Wells

    John Wells Guest

    John Wells, Mar 25, 2009
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.