Programmer’s editor exploration

I’m starting to itch for an upgrade/update in my text-editor department, so in this post I’m accumulating some notes on features I care about, and listing some editors to look at.

Desired features

  • Platform(s): Must run on Windows.  If the editor is available for other platforms, that’s helpful.
  • Speed: Must respond “immediately” in almost all situations.
  • File Size: Must not have a problem with large files (say a million lines of text).
  • Line-length: Must support long lines (preferably arbitrarily long).
  • Tab/space handling: Must be able to have tab key insert spaces (to next tab position), and be able to set the spacing of  tab stops
  • Auto-indent
  • Block indent/outdent
  • Tab/space/newline visibility: Should be able to enable visibility of special characters such as these. (And maybe separate schemes for different file types.)
  • Brace/bracket matching: Position the cursor on one bracket, editor highlights the matching one.
  • Multi files/windows: Able to have multiple files open at once in separate tabs OR separate windows and these separate windows should NOT be stuck within a %^$# parent MDI window!
  • Multi view of same file: Must be able to allow view/ edit of multiple locations in the same file — split window layout would be good here.
  • Newline handling and conversion: Able to detect,  retain and optionally convert a file’s newline convention.
  • Behavior around end-of-line:
    • Allow cursor placement beyond end-of line (and auto insert spaces if user types anything there)
    • Moving the cursor vertically doesn’t cause cursor to jump around to follow line-end!
    • Trim trailing spaces on save
  • Multiple undo
  • Rectangular block selection: Essential, and must have convenient key bindings
  • Unicode handling and conversion: Not needed yet, but I can see this is coming
  • Macros: Need simple ones for ad hoc repetition. Probably don’t need full-blown macro language, especially if it’s custom to the editor (VBA or one of the existing scripting languages would be OK.)
  • Search/replace:
    • understand regex, and begin/end line etc
    • would be nice if search was immediate/live
  • Bookmarks: Must be easy to set and jump to multi bookmarks
  • Quasi-IDE features
    • Nice, but it seems to be a trade-off between benefit vs how involved they are to set up.  I’m currently pursuaded that syntax highlighting is feasible for an editor vendor to supply in a low-hassle way. I’m less pursuaded on intellisense (autocomplete based on libraries of known functions and other identifiers.) This seems more of a job for a real IDE that understands a complete project.
    • Syntax highlight
    • Code folding: Assuming that it understands the syntax
    • Able to run external tools: And maybe understand error line/col so it can position the cursor on return from compile
    • Version control integration: Not sure if this is an exciting or even practical feature.

Editors noticed

…. and my reactions…. For anyone dropping in: this is just notes for me — it’s not intended to be comprehensive or fair.

  • EditPad: EditPad Lite is my current editor, when I’m not using an IDE.  But I’m missing the features that at in Pro, so one option is just get the Pro version. Regarding Pro:
    • Only multi-edit capability is tabbed.  No split. Can open new instance, but it’s not synchronized with the first.
    • Cannot set my preferred beyond-end-of line cursor movement behavior.  This is probably the feature that most makes this editor uncomfortable to me.
    • Number gutter is distractingly indistinguishable from the main text.
    • Search opens non-modally as part of window border (OK), but occupies too much space.
  • UltraEdit:  Looking pretty good on most of the feature list
    • Main deficiency: MDI (or tabs).
      • However, does have split,
      • Minimizing the surrounding parent window clutter, and launching multi instances, could be workable
    • Can set my preferred cursor behavior, including trim right whitespace on save.
  • Zeus:
    • MDI, no free-floating edit window. Has 2-way split.
      • Can launch more instances. Other instances looking at same file sync on save (not live).
      • Semi-fatal flaw: In split mode, the left gutter info disappears (line numbers, bookmarks), which is where they are most needed.  This is a known issue, apparently “will not fix”.
      • Can set my preferred cursor behavior, including trim right whitespace on save.
    • Has active forums.
  • EditPlus:
    • MDI only (but can run multi instances).  No tabbed arrangement of windows. Does have usable 2- or 4-way split.
    • Mouse can place cursor after end of line. However, cursor keys cannot. On cursor up/down, cursor leaps to existing line ends. (For me, editor disqualified on this feature alone.)
  • SlickEdit :  Looks feature-packed, cross platform, interface to version control, build system etc. But $299.
    • MDI window. Manual describes various splitting arrangements.
    • 1300 page manual.  Maybe too much of a good thing?
  • Crisp: Skipped trying this one due to $275.  Appears to use MDI, or tabs. Does have split, I think, or maybe it’s just borderless MDI windows. Seems to expose a little too much complex internals for my liking. (We still need a “buffers” paradigm?)
  • Multi-Edit:
    • Website rather frustrating — much rhetoric, not much description of features, nor screenshots.
    • Full and Lite versions
    • MDI windows, optional tabs. Split = create new window. Window management seems pretty clumsy
    • Can be config’ed to my preferred cursor behavior
    • Within minutes I discovered that undo didn’t work properly.  Then it allowed files to be closed without saving edits.
    • Shows edited lines with marker in margin — that seems desirable!
    • There seems no way to mark columnar block with mouse
  • NotePad++:  A sourceforge-hosted project.
  • CodeWright: Was a Borland product, but discontinued
  • VEdit
    • Probably powerful for specific tasks (like editing huge files) but the UI and options philosophy comes across like it’s a Windows 3.1 app written by a brilliant assembler programmer.  Eg: Starts with crazy looking DOS-esque fonts. Some options must be configured using bit masks that user has to figure out from docs.
    • Split = make more MDI windows.
    • Cursor moves with scrollbar! Arrrg! Maybe there’s an option to disable this, but manual has almost 600 references to “cursor”, so I didn’t find the way forward on this.
  • Emacs
  • Textmate:  This is Mac only, but well liked
  • E Text Editor: Claims to have the “power of TextMate on Windows”. “Unix at your fingertips” (if you have cygwin installed!).  Site has no description of feature set. (But does have a wiki for docs)
  • Intype: Something that might be interesting in the future
  • vi or anything like it:  Not compatible with my brain due to vi’s reliance on multiple modes and multi-keystroke commands combined with lack of prompts and affordances.
  • Comparisons
  • Oh great….

Post a Comment

Required fields are marked *


%d bloggers like this: