For most of my text editing needs, I use Emacs. Emacs is an open source text editor freely available for most Unix-like operating systems (including Mac OS X). It is extremely powerful and infinitely customizable. One of the overriding philosophies of Emacs is that one should not need to ever use the mouse when editing a text file. Using only the keyboard feels a bit cumbersome at first, but once you have a few keystroke patterns in you muscle memory, it seems much more efficient that using the mouse.
Emacs has a thriving community of people devoted to extending Emacs and supporting other Emacs users. Thus there are tweaks and modifications that allow you to do almost anything you can imagine doing with a text editor (even browsing the web — text only). To get started with Emacs, there is a very well laid out EmacsWiki.
Here are a couple of plugins that I have gotten a lot of use from recently:
- Color theme allows you to change the colors Emacs uses when writing code. Here is a gallery of some of the preset color themes. I’m a fan of “Blue Mood.”
- Yasnippet allows you to create and use keyboard shortcuts (specifically tab triggers) when using Emacs. Before switching primarily to Emacs, I used TextMate for OS X. TextMate is strongly influenced by Emacs, but also includes tab triggers to run macros. A few Emacs people like this feature so much the implemented the same functionality in Emacs, resulting in Yasnippet.
I haven’t gotten too much into doing my own customization of Emacs, but I very much like the idea that I can modify however I want. It even comes with its own programming language!