Ability to run in the Terminal.
emacsclient -nw
Also, if you want that because you're editing files on a remote machine where you're logged in over SSH, there's another way: open the remote files in your local Emacs session. To edit files accessed over SSH, type hostname.example.com:/path/to/file
when opening the file. See the manual for more advanced usage.
Quick startup time. If it's much slower than nano it won't be usable.
That's what you're doing wrong: you're starting a new instance of Emacs each time you edit a file. Emacs was designed so that you start Emacs once and for all, and when you want to open a file, you open it in the running instance. Call emacsclient -nw
to start an interface to the already-running Emacs in the current terminal. Either run emacs --daemon
as part of your session startup, or run emacsclient -a '' -nw …
to tell emacsclient to start Emacs if it isn't already started.
Easy customization of tabs/indentation.
Emacs has a lot of features to set up indentation. Advanced customization tends to depend on the language. I've never had trouble to make Emacs follow the indentation. “Easy” is subjective, but if you're doing something that's at all possible with any editor out there, I doubt that it's going to be hard in Emacs — at most, if it's a very unusual style that isn't supported out of the box by setting a few variables, you should be able to get help getting it right with a few line of Elisp.
Syntax highlighting for major languages.
Emacs gives it the weird name font lock.
Undo/redo functionality.
Sure. By default, there's no “redo”, but you can undo an undo operation. There are packages to provide a more familiar undo/redo interface, undo trees, etc.
Cannot be modal (vim is out unless there's a way to use it with key combinations rather than modes.)
Emacs can emulate Vi but you don't have to do it.
Customizable key combinations for common tasks.
Of course. And macros and so on.
Free.
A poster child of the GNU movement. Enough said.
Works on OSX.
Emacs For Mac OS X, Aquamacs, etc.
Supports soft line wrapping (long lines wrap visually but not with newlines).
Visual Line Mode
Ability to use it in place of a pager (i.e. less).
It's been done more than once. I've never tried. What you can do instead is run shell commands inside Emacs, which gives you paging for free. Emacs also has a native way to read man pages, browse the web, etc.
Ability to do smart indentation.
See indentation above. Emacs can be configured to indent automatically in various situations or on request; this tends to depend on the file type so I won't go into detail.
Cross-platform.
Unix, OSX native (see also OSX above), Windows, MS-DOS, Android iOS via Cydia, and a few more.
Ability to install via MacPorts.
Check
Ability to do fancier IDE-like editing for code:
Out of the box, you get indentation, syntax highlighting, identifier lookup, folding. There are lots of additional packages providing additional features; CEDET is a good start.
emacs -q
? Is it still slow?emacs
, and none have gotten it to the startup time of nano.