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.
James Thigpen
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.
James
Thanks, that’s right! I’ll update the post.
James
skrv
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
James
Hi Sawan, you might want to check if Ruby is on your path and if the gem is installed correctly (gem list –local).
skrv
Got FuzzyFinder working, but the
FuzzyFinderTextMate isnt working, Ruby is in path it has some code conversion issue?
Thanks,
Sawan