I run a vncserver (from MacPorts) on my MacBook. Then inside there I do all my coding with Emacs, generally two frames side-by side. I access it via Chicken of the VNC. I set up the same vncserver setup on all the machines I do work on, and can access each one from any other without losing context. I rarely find the need to cut/paste from the OS X desktop into/out of my vnc windows, but it can be done.