Sublime code-like method browser in Vim

2019-03-29 11:24发布

问题:

Sublime code has a shortcut Super-R which opens a method browser listing all methods in current class (Ruby). Is there a plugin to get similar functionality in Vim?

"/def " or "m]" work only if you're familiar with the class and know what method you want to go to, whereas Super+R works for just exploring a class.

回答1:

The TagList plugin is another (very popular) option. There are a bunch of others.

FYI, /def and m] are not the equivalent of Sublime Text's Ctrl+R. That would be :tag foo which you can tab-complete if you don't know all the names of your methods.

While we are at it, the CtrlP plugin has a feature very similar to Sublime Text's Ctrl+R: :CtrlpBufTag that I use hundreds of times a day.

All of these methods depend on the presence of a tags file generated by Exuberant Ctags or some compatible program. Actually, tags are quite an important part of the Vim experience.



回答2:

You can use my project https://github.com/fatih/subvim

For cmd+r you can directly jump to any definition on the fly. No need to genarete tags or whatever. Currently any language supported by ctags can use this feature. I've also add languages like Go, Coffeescript, Objective-C,etc... It means just fire it up.

Also it has Sublime-like features backed in (means no plugins necessary). Thus you can use the following shortcuts:

  • cmd + p -> go to anything
  • cmd + t -> go to file
  • cmd + r -> go to symbol
  • cmd + k -> show side bar
  • cmd + / -> toggle comment
  • cmd + [ -> indent
  • cmd + ] -> unindent
  • cmd + <number> -> jump to tab 1, tab 2, ...
  • cmd + alt + left -> move to next tab
  • cmd + alt + right -> move to previos tab
  • cmd + z -> undo
  • cmd + shift + z -> redo
  • cmd + s -> save file
  • cmd + w -> close
  • cmd + f -> search

Also autocompletion, restoring latest session, automatic bracket closing and many minor changes make it really a joy to use.



回答3:

The tagbar plugin works pretty well with Ruby files. Perhaps its not exactly the same as Sublime Super-R but it does give you a quick and easy way to explore a class.