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 25 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 https://www.emacswiki.org/emacs/EmacsForMacOS for more info.
Aquamacs 3.4 provides several useful improvements over the emacs 22.1 included in OSX 10.6-10.11.
As of March 2019, Version 3.4 was the latest version. The Aquamacs download page said that version 3.5 was required for Mojave, and that I should install the latest nightly build. I did this. All my customizations seemed intact.
I found that menus like "File" and "Edit" required two clicks to cause them to drop down. Jamie Taylor pointed me toward the answer: I had to quit Aquamacs, and then visitand uncheck and re-check the box for Aquamacs, and restart the editor.
Version 3.5 of Aquamacs has some differences in its menus from version 3.4.
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 3.3 on Sierra.
A few of these tailoring instructions have changed slightly for Aquamacs 3.3. I am testing and fixing them.
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). In Aquamacs 2.4 and later:
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)