vim - maintain a session in shell by executing commands
If your Vim was build with Python support (most Unix builds are, Windows / Cygwin builds are not), you might want to have a look at the Conque Shell plugin, which allows to run a shell inside a Vim buffer.
Edit: Correction, apparently Vim 7.3 for Windows now also comes with Python support (and thus, Conque compatibility).
You could start vim (not gvim) from a shell, then use <C-Z>
to suspend vim. You return to the calling shell (not a sub-shell) and resume vim with fg
. According to the docs, this works "On many Unix systems".
:help suspend