Vim with find file for Rails (like TextMate)

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:

.vimrc

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

.gvimrc

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 🙂

UPDATE
These files are now available from my github dotfiles repository, including the gem inside of the vim/gems_required directory.


Actions

Information

5 responses to “Vim with find file for Rails (like TextMate)”

18 11 2009
James Thigpen (13:24:15) :

These instructions were really helpful! But I think it's supposed to be ~/.vim/plugin (withtout the trailing s) isn't it? I had to do that before it worked for me. I dunno, i'm not a plugin ninja.

18 11 2009
James (17:49:18) :

Thanks, that's right! I'll update the post.
James

4 11 2010
skrv (02:19:25) :

Thanks for the instructions, currently I am using gvim on windows.

I have a problem - my fuzzyfinder isnt working
when i press f it says command fuzzyfindertextmate not found. i have correctly put the plugins in the plugins directory of vim73/plugins and vimfiles/plugins, as I was not sure what directory it will use.

Any guess as to what might be the problem or is there a way to find/debug plugins sourcing into givm.

Thanks,
Sawan

4 11 2010
James (21:02:55) :

Hi Sawan, you might want to check if Ruby is on your path and if the gem is installed correctly (gem list --local).

7 11 2010
skrv (13:23:04) :

Got FuzzyFinder working, but the

FuzzyFinderTextMate isnt working, Ruby is in path it has some code conversion issue?

Thanks,
Sawan