Emacs is my editor of choice and has been for over 30 years.
Emacs is free software provided by the Gnu project for many different computers and operating systems.
On the Mac, I use
Aquamacs Emacs, derived from Emacs 23 and adapted for the Mac by David Reitter.
Aquamacs works like a regular Emacs (mostly) and adds some nice integration with the Macintosh environment.
See
http://www.emacswiki.org/emacs/EmacsForMacOS for more info.
I use my Mac for programming in Java, SQL, Perl, shell, C and C++, as well as web page developmemt in HTML and Javascript.
Aquamacs provides several useful improvements over the emacs 22.1 included in OSX 10.6. (The most recent Gnu version is 23.2.)
Aquamacs made several choices that I don't like, so some of my tailoring below reverts Aquamacs defaults to more traditional Emacs behavior. My personal Emacs tailorings are influenced by the habits of many years, and the desire to use similar Emacs key sequences on different platforms. This note describes how I set up my personal preferences for Aquamacs 2.1.
Use my .emacs file from Unix, containing function key bindings (some as old as the 1980s) and macros.
Get rid of toolbar (Why: consistency with other Emacsen, waste of space, never use it).
Use a monospaced font everywhere (CWOE).
Line wrapping (CWOE).
Enable nice Aquamacs features.
Disable gratuitous Aquamacs changes (CWOE, predictable behavior).
(setq magic-mode-alist nil)Magic mode peeks at the file contents and chooses an HTML or XML mode in some cases. I don't need it.
(add-hook 'cperl-mode-hook (lambda () (cperl-set-style "BSD")))
My personal preferences
(setq frame-title-format '("%f"))
(require 'uniquify).. and then customize uniquify-buffer-name-style to "forward" (helps multi-tasking).
Change file associations to Aquamacs.app for .e .html .htmx .htmi .htmt .htmy .txt .cgi .pl .java .js .txt .tpt .sh .sql etc (OSX integration)