screen vim
. When I'm on bare metal, then, sometimes I accidentally start a whole screen for a quick edit, and I don't realize it until I exit vim and it says, [screen is terminating].So I built a little function into my ~/.bash_aliases (sourced from the default .bashrc) on the host machine:
# if I run `screen vim` outside of screen, invoke gvim instead. screen() { if [[ $1 = vim && -z $STY ]] ; then shift gvim ${1+"$@"} else command screen ${1+"$@"} fi }
Now "screen <anything but vim>" will run screen, and "screen vim" will invoke gvim. The latter may surprise me, but it'll be what I actually want.
Update: I put similar code inside the VM to convert "gvim" into "screen vim" or regular "vim", as appropriate. Now I abuse this all the time to save three keystrokes ("gvim" vs "scr<TAB>vim").