Emacs would suit your needs. OSX comes with an ancient version, you'll probably want to install a more recent version with a native interface. It's free (it's one of the historical highlights of the free software movement). As a bonus, it's available on just about any PC-style or high-end mobile platform.
The set of features that Emacs provides when editing code depends on the programming language, but in general these three features are active by default:
- Syntax highlighting.
- Pressing Tab indents the current line.
- Sometimes pressing punctuation characters automatically adjusts spacing, intendation, or inserts a newline. This is called “electric” behavior. To turn off electric behavior in languages where it defaults on, open the Customize interface, go to Programming > Languages, and check the settings for “electric” or other “automatic” behavior.
Completion only happens upon explicit request (such as pressing Option+Tab) or after installing some extra plugins.
Emacs has a ton of features, but they don't get in the way. You can turn off the toolbar and the menu bar to save screen space if you like. You can even disable commands if you find that you invoke them by mistake, or just change the key bindings.
By modern standards, Emacs is pretty fast to load. If you nonetheless find it too slow to start, you can launch it at login time, and then arrange to open files either in the one existing Emacs window or in new windows (call emacsclient
rather than emacs
to open a file in an existing Emacs instance).
Emacs doesn't tie a file to a particular window. Inside each window, you can switch between any of the files that are open in the same Emacs instance. For a side by side view, you can either open two OS windows, or have a single OS window containing two Emacs windows (note on terminology: Emacs calls an OS window a “frame”; frames can be divided into panes which Emacs calls “window”).