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 (well written) help. Ctrlspace has a structure like this:
workspaces --> contain tabs --> contain buffers
So, you can save a workspace for each project that you are concurrently working on and then immediately load it whenever you want.
You can also name your tabs. As if that wasn't enough, you can easily change working directories and create bookmarks for directories you use frequently.
It also 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