I can't comment because my account is new so sorry about that, but ++++1 for ctrl-space.
I was sold by the time I made it halfway through the help. Ctrlspace has a structure like this:
workspaces --> contain tabs --> contain buffers
So, you can save a workspace for each project that you are working on and then immediately load it whenever you want. This means that any time you close vim you can save all of your buffer and tab splits.
You can also name your tabs. If that isn't enough, you can also very easily change working directories and create bookmarks for directories that you use frequently.
It interfaces nicely with nerdtree if you use that (although honestly you probably won't even feel like you need it after a week with ctrlspace)
Consider this use case:
You have a project. It involves planting trees. There are fruit trees and money trees. Money trees contain dollars and cents while fruit trees contain apples and oranges.
In this example apples, oranges, dollars, and cents are all "buffers."
Ctrlspace lets you separate apples and oranges into one "tab" which you can label "fruit" -- this label will appear in the tag line at the top of your window. Likewise, dollars and cents go into a "money" tab.
The "trees" workspace saves this entire configuration and lets you access it immediately any time you open vim.
Now that I'm aware of it's existence, I really can not imagine doing object oriented development in vim without this plugin. Just in case, here is the link: https://github.com/szw/vim-ctrlspace