In a fit of TextMate jealousy, several months ago, I scoured the web for a way to get find-file functionality info my favourite Ruby/Rails editor, vim. I was very happy to find that Jamis Buck had developed an aweseome plugin do to this. It is a little fiddly to install, but worth the trouble. Here’s some simplified steps to get you going.
- Install Jamis’s ruby gem
sudo gem install jamis-fuzzy_file_finder --source=http://gems.github.com
- Download this fuzzyfinder script and pop it in your ‘~/.vim/plugin’ directory. Note that the most recent versions of this script are incompatible with Jamis’s plugin.
- Grab the latest version of ‘fuzzyfinder_textmate.vim’ from http://github.com/jamis/fuzzyfinder_textmate/tree/master and pop it in your ‘~/.vim/plugin’ directory
Then, if you want to have a similar sort of light-weight Rails ‘IDE’ I enjoy coding with, see my config files below:
source $VIMRUNTIME/vimrc_example.vim behave xterm set nu set tabstop=2 set shiftwidth=2 set softtabstop=2 set ai set expandtab set smarttab let g:rubycomplete_rails = 1 map f :FuzzyFinderTextMate<CR> map n :tabnew<CR> map c :tabclose<CR> map m :tabnext<CR> let g:fuzzy_ignore = "*.svn" let g:fuzzy_ignore = "*.swp" let g:fuzzy_ignore = "*.jpg" let g:fuzzy_ignore = "*.gif" let g:fuzzy_ignore = "*~" set nobackup
source ~/.vimrc set selectmode=mouse set columns=100 set lines=50
In this set up, there are no chords etc. Instead, when not in edit mode, ‘n’ will open a new tab. ‘f’ will let you find a new file to open in the current tab. ‘c’ will close the current tab and ‘m’ will move between tabs. So in a normal workflow, you might decide to swap the file in the current tab for a new one (simply press ‘f’), or if you need another file open, hit ‘n’ for new tab, and then ‘f’ to load the relevant file. My text description doesn’t do it justice, but I find this works very well to get you to the file you want quickly, and let you have the files you’re interested in open all at the same time.
One last note, remember to start vim/gVim in the root of your rails directory.
Happy Vimming 🙂
These files are now available from my github dotfiles repository, including the gem inside of the vim/gems_required directory.