JEdit. It is free, open source, and since it is written in Java, works well on Mac, Linux or Windows. However, JEdit is not always the simplest tool to configure and use.
Recently I ran across Sublime Text. For $60, you get a really nice editor, with an easy to use interface. Plus, the editor is skinnable so you have a number of options on how the editor and your code actually look. It has nice code completion features with customization options. Top that off with the fact it runs on Windows, Mac OS X, Linux. It is definitely worth a look.