If you want portability, Emacs has it. Emacs is known to run on a plethora of UNIXes, Linux (of course) and VMS.

There is even excellent support for Microsoft Windows (www.gnu.org/software/emacs/windows/ntemacs.html). If you have been saddled with Windows, Emacs can be used with Visual Studio. For Windows users, the regular expression support alone is worth learning Emacs. Emacs also integrates closely with the Cygwin tools for Windows (www.cygwin.com), giving you a very Linux-like environment that almost makes Windows habitable.

While not directly relevant to development, Emacs' diary mode is great for remembering important dates, like Thomas Jefferson's birthday, and events, like the next development meeting. Because Emacs is portable, so is the diary file; on my dual-booting laptop, I run the same Emacs diary file for both Windows and Linux.

Porting your Emacs customizations to another computer or operating system is largely a matter of editing your .emacs file for the new environment. Of course, if you have all the same packages and use them all on the new computer, you shouldn't have to make any changes. You may want certain functions not to run on a different computer. For example, I don't run the calendar on my firewall; it doesn't belong on that computer. So I use conditional compilation to avoid running the calendar code on the firewall.