I am researching on editors for my own reference. I found that each of them has some features that other don't, but I am not sure which features are significant/necessary for a GOOD editor. What features do you a good editor should have? Keyboard shortcuts? Extensions?
Not sure what you mean by keyboard shortcuts. If you mean there should
be a keyboard version of anything that can be done with the mouse,
absolutely.
There are hundreds of features that could be listed, and only you can
decide which ones are important. I'll try to list a few that are
important to me, and some more that would sure be nice.
Very important:
--------------
It runs on every platform I'm using. It's extremely fast, when run
locally, and reasonable over a slow internet connection.
Licensing is free, or very inexpensive
It opens and edits files of fairly arbitrary size (at least 10 MB)
It has a large number of potential buffers, for editing multiple files
at the same time.
It can readily be customized, on a per-language basis, so that it can
easily handle the quirks of each language. And it switches between them
based on file name, without explicitly setting some mode. However, if
the filename is unconventional, it allows the buffer to be explicitly
set to a particular language, not affecting other files that are
simultaneously open.
It comes pre-customized for the languages I'm likely to use now. That
includes pseudo languages like html, xml, css, not just "programming
languages."
It supports my own strange preferences for tab-handling, or at least can
be customized to do so.
It recognizes immediately when a file has been changed on disk, and
gives me reasonable ways to merge my current edits into what's now in
the disk file.
It doesn't force me to accept .bak or other funny files; that's what
dvcs systems are for. It CAN create such files while a file is being
edited, they just shouldn't persist after the editor is normally closed.
If it has project files, they should be out of band, not mixed in with
source files I'm editing.
Nice to have:
------------
It has visible spaces (and tabs, and other funny white-space characters)
It can be run in an ssh session, remotely, over a satellite internet
connection and vpn.
Customization language is one I'm comfortable with. Not VBA or javascript.
Mandatory for Python use:
------------------------
It understands indenting, and lets you easily get to the various columns
that are legal at any point. This means it recognizes if statements and
suchlike, and indents (4) spaces for the following line. And when you
want to unindent, you don't have to use 4 backspaces, but just press the
tab again.
Nice for Python use:
-------------------
Syntax coloring.
Re-indenting a group of lines by plus-or-minus 4 columns.
Now, you may be asking about an IDE. And that's a whole other kettle of
fish. Context-sensitive auto-completion, jump to definition,
refactoring support, data breakpoints, ...
Candidates?
emacs - standard on most OS's, available for Windows from various
websites
Komodo Edit free
http://www.activestate.com/komodo-edit
Komodo IDE not free
http://www.activestate.com/komodo-ide