Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a "project" in VIM/MacVim/GVIM

I'm a VIM noob, and have revisited it time and again, and I'm hoping to actually stick with it this time. Primarily I'm programming in TextMate with Ruby on Rails. On advice from someone, I have installed Janus (https://github.com/carlhuda/janus) and its helping a lot. But one thing I miss is having a "project" so that I can easily get back into a project quickly.

I want to be able to start a copy of macvim, pointing it to a file, or giving it a command, to load a project back to where I last left it. This means:

  1. CD to the root of the project
  2. Set back up any tabs / splits I had set, at their same locations
  3. Reopen the files I was working on last.
  4. I'm going to explore Conque Shell today (http://code.google.com/p/conque/) and if that works, I would want those shells to also reload and fire off their startup commands. (CD to the project root, fire up the rails server, tail a log, etc.)

Suggestions? I'm looking to streamline my process so that I can just click a shortcut or run a command and after a few seconds be staring at my dev environment right where I left it last.

Bonus: I often use windows too, so being able to do the same in GVim would be great as well.

Thanks for your help

like image 852
Dave Sanders Avatar asked Aug 31 '11 14:08

Dave Sanders


2 Answers

You may want to check out Vim's built-in ability to create a restore sessions. These allow you to save pretty much everything you have setup including cwd, folds, splits, buffers, vars etc. See :help :mksession.

Here are two plugins that help with saving and restoring sessions:

  • sessionman: http://www.vim.org/scripts/script.php?script_id=2010

  • session.vim: http://www.vim.org/scripts/script.php?script_id=3150

You might also want to check out the project plugin: http://www.vim.org/scripts/script.php?script_id=69

I too have heard good things about rails.vim.

like image 162
Greg Sexton Avatar answered Oct 20 '22 21:10

Greg Sexton


For Rails developer, there is a well-known plugin by Tim Pope named rails.vim.

Once you are at the root of a rails project (You can change Vim current directory with :cd /path/to/project/root ), rails.vim provides quick way to access your file like :

  • :Rcontroller file
  • :Rview file
  • :Rstylesheet file

They are other options to refactor using partials. Install it and type :help rails.txt. There is plenty of nice features like that. It is really useful to speed up access to your project files.

You can probably combine it with session.vim which provides a way to restore your previous session automatically.

If you don't want to type the path of your project, one possible solution, is to add at the end of your .vimrc the following code :

 if isdirectory("~/workspace/project1")
    cd ~/workspace/project1
 endif

This way you always start Vim into your current workspace. Obviously if you need to switch to another directory you have to manually edit your .vimrc... which is kinda sub optimal.

like image 38
Xavier T. Avatar answered Oct 20 '22 22:10

Xavier T.