Here is a Vote for jEdit, which I have been using for about 5 years:
* Regex search mark, and replace (across all open files, even), regex
search in directory trees
yup, and back references including $0 for the whole match
* Tabbed editor with proper keyboard shortcuts ([ctrl]+[tab]
should work on the same model as
[alt]+[tab])
multiple ways of displaying buffers, and completely customizable keyboard navigation. One of my most used function is "go back to last buffer" which I have mapped to F12
* Auto-indent, indent preservation, and indent manipulation
(tab, shift-tab)
Yup. You can also set these to be tabs or spaces and convert between the two
* Smart navigation keys: [home] toggles between start of line and
start of non-whitespace, [F2] seeks to
next bookmark, hitting the up and down
arrow keys take you to the column
where you last navigated, not where
you last typed (I think Textpad's the
only place I've seen this)
Generally expected nav. Map these to your key of choice. If you place the cursor at a particular column and page up or up arrow, the cursor stays put in that column
- Syntax highlighting (bonus:
mixed-language highlighting, which
TextPad lacked)
Many different languages with xml files to customize token matching. Some mixing for example php + javascript
* Block select mode
Nope, not as far as I know...wait! Yup! Under Edit -> More Selection -> Rectangular Selection. Thanks dwhall for pointing that out
* Run user-defined commands from program (such as compilers), have
interactive command results (Textpad
would let you define regexes to match
filenames and line numbers so you
could double-click on an error and be
taken to that line in that file.)
Many plugins for this from a full command line console (works in linux and windows) to BeanShell macros that can make system calls. Many plugins for common taks such as ant, cc, make, svn etc
* Workspaces (collections of files to be open at the same time)
yup plugins for this too, and jEdit also keeps track of open files, unsaved changes and cursor position between sessions
Here's what I've found distasteful in
the editors I've tried:
* Vim and emacs do not take full advantage of my screen, mouse, and
keyboard. Also, there's quite a
learning curve. (Of course, if they
had everything I wanted, I would learn
them.)
jEdit is a java program but still makes good use of cross-platform clip boards and drag and drop
* Regex capability is frighteningly rare
jEdit has the best regex handling I've seen yet, Regex searches can return multiple results grep style and result positions aren't confused when you add or removes text lines after the search
* Almost nothing has last-seen tab traversal
Like I said one of my favorite features is "go to last buffer"
* I've not seen anything with last-navigation-column cursor
traversal
Like I said, your cursor stays put in the column when paging up and down
Other features I like:
- indent based folding: No syntax awareness necessary, simply fold on indent
- side-by-side Diff: nice graphical difference view
- multple views and split panes
- macro recording with beanshell
- abbreviations: I have short 2-3 letter keywords that expand to code snippets when I hit space
Best Answer
Given that you don't have an major specific requirements (like an object browser), it's probably best to use what you're already using as much as possible. Something like Textpad is very simple and can do syntax highlighting.
Here are a few more pointers: