You can use vim's `:mksession` and write each "workspace" to a different file, then reopen a session using `vim -S session_file`, however, if you're open to using a plugin then I find the Startify plugin is exactly what I need for this sort of scenario: https://github.com/mhinz/vim-startify It does a great job of managing sessions, in vim and mccvim, and it gives you a list of recent files as well when you open vim. It will auto-change to the right working directory for you too. It also lets you _pin_ files to the startify opening screen as well, which is nice for easy access to things like your `.vimrc`