Domanda

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

È stato utile?

Soluzione

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.

Altri suggerimenti

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:

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.

Terminitor (a Ruby Gem) won't specifically solve your vim "project" goal, but it will solve the rest of your problems. You can setup your terminal windows and then execute a command to capture the terminal positions and sizes, edit the configuration to add any other commands (in Ruby) that you want executed and this will allow you to restore your environment.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top