Home page of Eric Pement

Home > editors.htm

 

Text editors

I have seriously tried at least 10 to 20 different editors and word processing programs over my lifetime, both for academic and technical work in computer software development. There is a large collection of editors named at TextEditors.org with over 1800 different editors listed, and some years ago, I was a regular contributor.

For those who like "console editors," a recent survey of quite a few of them, with screenshots is here.

Here is what I still use regularly, sorted from more frequent to less frequent: (1) GNU Emacs; (2) TDE; (3) Notepad++; (4) vi; (5) PSPad; (6) Multi-Edit; (7) RJ TextEd; (8) TSE (The Semware Editor). I don't have something to say about all of them, but I do have something to say about these:


GNU Emacs

I got my first computer in 1982. It was a CP/M Kaypro II, with 64 kilobytes of memory and two floppy disk drives of 191 K each. All Kaypros came with a bundled collection of software, including two word processors: WordStar v3.3 and Perfect Writer v1.20. Each word processor had totally different approaches to editing and printing. I eventually learned them both, very well.

Emacs screen

Emacs screen shot showing syntax highlighting
on an HTML file, including boldface

Though I preferred WordStar to Perfect Writer, the company that made WordStar didn't adapt quickly enough to the world of MS-DOS and Windows. (Even the beloved giant, Word Perfect, wasn't able to adapt quickly enough to the changing climate.) After WordStar died, I was delighted to find out that Perfect Writer was actually a CP/M version of Emacs, using an Emacs look-and-feel and an Emacs design philosophy. My countless hours spent learning Perfect Writer weren't wasted: I could get Emacs for free, use the same keyboard commands, and see almost exactly the same response on the console.

Drawbacks: If you have a slow hard drive, not much memory, or a relatively slow processor, Emacs can be slow to start up. If you have a fast hard drive and a nicely-powered processor, Emacs will start up in a second or less. It all depends on the resources available to your system. Disk space used to concern me when I was trying to squeeze the most juice out of an under-powered computer and when disk space was at a premium. If space required is a concern, well, a full installation of Emacs 24.3 (including lisp source) requires over 165 megs of space. Yes, there are many alternative editors that start faster and consume less disk space.

So why do I love Emacs so much that it's first on my list? Why am I using it right now to compose this file? Here's why:

  • Customizable. I can rebind any keys I want, I can create new functions, there is an immense community of others writing features for Emacs, and the online help is extensive. You can rewrite the help files, too.
  • Shell-command-on-region. I can mark a region of text, and run a shell command on it, and output the results to either a different window or else replace the region I wanted.
  • Virtually unlimited undo and yankback.
  • Incremental search. Not only can I type one character at a time and have successive matching of plain 'strings', but I can also have an incremental search of "reg[ul]ar expressions*" (if you don't know what regexes are, they're search terms for power users). With Emacs 21.1, you can not only have a highlighted search (Multi-Edit does that), but future matches on the same screen are highlighted, even though the cursor is blinking on an earlier match.
  • Outline mode. If you ever have to make or use Outlines, this is the ticket.
  • Ediff - For some people, seeing the difference between two different versions of the same file is important. What about updating both versions, automatically moving changes from one to the other? Ediff to the rescue! Available only in bona-fide GNU Emacs.

Some of the better Emacs sites

There are several versions of Emacs. The two main contenders are GNU Emacs and XEmacs (works under X-Windows, a Unix windowing system with no relation to Microsoft Windows). There are other versions of Emacs as well. I often used MicroEmacs when GNU Emacs wasn't available, and from time to time I use jmacs (which is the joe editor with Emacs keybindings).

Here are some of my favorite sites for Emacs stuff:

Things I wrote for Emacs

A popular item, downloaded many times and high on Google result list, is Understanding Emacs and Tabs — it gives a clear description of how Emacs handles the TAB key and TAB characters within text files or program source code. How do you get tab characters in the file to display properly? This file explains all.

Below are two simple awk scripts I wrote for Emacs. Both of them are intended for use with outline-mode in Emacs. In the following examples, notice that the asterisks are "flush left" and the output is indented to match the input file. The number of spaces used for indentation can be easily customized by setting a variable in the awk script.

The first one is outline_classic12.awk , an awk script to convert files created for Emacs "outline-mode" into classic indented outlines. You will notice that it takes an input file where there are one more asterisks at the start of every line, and converts them into the outline format we know from school. This script will chaange an input file like the one on the left to an output file like the one on the right.

INPUT TEXTOUTPUT TEXT
* Emacs
** Features I like
*** Customizable
*** Shell-command-on-region
*** Incremental search
** Some of the better Emacs sites
*** Why I became an Emacs user
*** Finseth's implementation
** Things I wrote for Emacs
*** Outline-mode, classic outlines
*** Outline-mode, numbered outlines
* Multi-Edit
* VDE
A. Emacs
  1. Features I like
    a. Customizable
    b. Shell-command-on-region
    c. Incremental search
  2. Some of the better Emacs sites
    a. Why I became an Emacs user
    b. Finseth's implementation
  3. Things I wrote for Emacs
    a. Outline-mode, classic outlines
    b. Outline-mode, numbered outlines
B. Multi-Edit
C. VDE

A second script named outline_numbered12.awk converts outline-mode text to indented and numbered text. Like the other file, the variable indent can be set on the command line to control the number of spaces used to indent each succeessive level.

INPUT TEXTOUTPUT TEXT
* Emacs
** Features I like
*** Customizable
*** Shell-command-on-region
*** Incremental search
** Some of the better Emacs sites
*** Why I became an Emacs user
*** Finseth's implementation
** Things I wrote for Emacs
*** Outline-mode, classic outlines
*** Outline-mode, numbered outlines
* Multi-Edit
* VDE
1. Emacs
  1.1. Features I like
    1.1.1. Customizable
    1.1.2. Shell-command-on-region
    1.1.3. Incremental search
  1.2. Some of the better Emacs sites
    1.2.1. Why I became an Emacs user
    1.2.2. Finseth's implementation
  1.3. Things I wrote for Emacs
    1.3.1. Outline-mode, classic outlines
    1.3.2. Outline-mode, numbered outlines
2. Multi-Edit
3. VDE

Emacs in the 21st Century

Emacs now fully supports Unicode and international input, and can represent any character, font, typeface or input format, including right-to-left input (e.g., for Hebrew or Arabic). It can support graphic images and pictures (if you like) and can even be used for browsing web pages.

A new feature for the 21st century is support for themes, or prepared color schemes for font, backgrounds, foregrounds, margins, presentation, and syntax highlighting for various editing or programming modes.

Another recent feature is "package management", a customization option that allows Emacs developers to upload Emacs libraries, Lisp code, modifications, themes, and various add-ins to one of a handful of package repositories. The Emacs user can download and install the add-on or package with a single click, avoiding much of the hassle that was previously required in adding the code to the correct location, and modifying the Emacs init file. No more. Installing packages is now quite easy.

Many people now adopt Emacs to try out one new feature, an editing mode called org-mode.

The appeal of Emacs is that it creates plain, greppable ASCII text. Org-mode began as a variant of outline-mode (described above), with a few extra markup characters added to handle tasks, times, and to-do liss. Org-mode found an interesting mesh with people using David Allen's book, Getting Things Done, a program for turning chaos into order. Org-mode has become so popular that it is now a regular part of the Emacs distribution.

Finally, the latest version of Emacs now includes a built-in, non-graphical web browser that understands CSS and some JavaScript, enabling the Emacs buffer to also be the web browser. To invoke it, run the Emacs command M-x eww and press the RETURN key (requires Emacs version 24.4).



Multi-Edit

So if Emacs is so great, why do I need or use Multi-Edit? I got addicted to Multi-Edit mainly because it could color-highlight columns of text and easily let me move them. In the early 1990s, there were few other editors that would do that, not even Emacs.

DOS version

The DOS version obviously came first. Multi-Edit was commercial software, but it came with a fully-programmable macro language; Multi-Edit allowed users to extend and edit its internal help system; it had nearly unlimited undo and redo; it had a reprogrammable keymap (which means I could make Multi-Edit act like WordStar or Emacs, which I did); and Multi-Edit had cool tools for line- and box-drawing, both of which I needed at that time as a BBS sysop.

Multi-Edit also allowed me to open up a virtual DOS session within one of its editing buffers, so I could try out commands (e.g., sed editing commands), and cut-and-paste directly into a text document in another window with one or two keystrokes. That was really useful when explaining how command-line utilities work, and showing it to others.

If the DOS version were a 32-bit program that understood Windows long filenames, I would probably still use it, but Multi-Edit for DOS was a 16-bit program that doesn't understand Windows long filenames, so I had to move on.

Windows version

Multi-Edit for Windows removed away the ability to extend and rewrite the help menus. For a programmer, nearly anything is possible given enough time and motivation. But for the average user, the ability to rewrite and extend the help menus (which I had done considerably with the DOS version) was no longer available.

However, the new Multi-Edit had nicely tabbed windows, and they made editing HTML code very nice. One click inside an HTML tag marks the point on a character (or between characters); two clicks marks the entire tag, grabbing the left and right angle brackets, as well, even if the tag spans more than one line. That was nice, and no other editor did that, not even Dreamweaver.

Things I wrote for Multi-Edit

  • In 2006, I received a 2nd place award in a programming contest sponsored by Multi-Edit; the contest required writing a new feature in the CMAC programming language used by Multi-Edit. My submission was to make Multi-Edit emulate Emacs as closely as possible. My code was made part of the official distribution of Multi-Edit for Windows, beginning with Multi-Edit version 10.00 (released in 2007).
  • MEW_autocorrect.zip - For users who often use Multi-Edit to edit text files, this is a template that can easily be added to Multi-Edit. When enabled, it instantly corrects common spelling errors and typos "on the fly," as soon as the spacebar is pressed. It has a dictionary of 64 of the most common spelling errors. Though Multi-Edit doesn't have auto-correct built in, this makes it happen.
  • emacs131.zip - An earlier effort to makes Multi-Edit for Windows emulate the keybindings of GNU Emacs. Works with MEW versions 7, 8, and 9. Three files were edited to delete an obsolete address, but are otherwise not altered.


VDE (Video Display Editor)

VDE, written in assembly language by Eric Meyer, is a 16-bit DOS text editor; it will not run natively on a 64-bit processor running Windows 7 or higher. It will run on Windows XP and below, but if you upgrade to a 64-bit version of Windows, you'll need to run VDE in a virtual machine or in a special emulation environment, such as DOSBOX. DOSBOX is a DOS emulator, enabling a 64-bit Windows operating system to run older 16-bit applications originally created for plain MS-DOS. I've tested it with VDE and other 16-bit apps (such as Vern Buerg's LIST.COM), and I know that DOSBOX will successfully run VDE and other 16-bit utilities.

For a more complete emulation solution, try the Bochs IA-32 Emulator, an open-source project to emulate an x86 PC workstation, including hardware devices, architecture, and memory. (I haven't tried it.)

I confess that I no longer use VDE, but only because I don't want the aggravation of running an emulator. However, while I had Windows XP, I used VDE regularly and even assigned several special filetypes to open the file in VDE.

So in a Windows XP world, why did I continue to use VDE, a DOS editor? Here are a few key reasons:

VDE screen shot

VDE screen shot showing split windows, line
endings on top window, block highlighting

  • It has several different video modes which can be toggled immediately: 20, 25, 33, 50, or 57 lines. I can also toggle between 80-column and 132-column mode in a flash. When my eyes get bleary from sitting at the screen too long, I can toggle to 20-line mode. When I need to get the big picture on a program, I can toggle 50-line mode.
  • Unlike many editors, VDE has nice facilities for Boldface or Italic. I can take an input file with pseudo-italic _like this_ or pseudo-boldface *like this* and do a global find/replace within VDE to convert them to Ctrl-B or Ctrl-S toggle switches.
  • Like the WordStar model, the document can switch to printing 12 chars/inch when it encounters an embedded Ctrl-A (for "alternate" print) in the text, or it will revert to printing 10 chars/inch when it finds a Ctrl-N (for "normal" print mode). However, unlike WordStar, WordPad, Word, or other editors, the output files of VDE are pretty much pure ASCII: only a very few control-codes are embedded in a VDE document file to activate Italics, Underscore, Bold, etc. Thus, I can grep the file or use standard text utilities on VDE document files.
  • VDE supports direct copy and paste to/from the Windows Clipboard, even in full-screen mode, so it integrates nicely.
  • VDE fully supports Windows Long Filenames on the DOS command line.
  • VDE handles multiple files at once, can split windows to edit two files at once, and has superb file-comparison between the two windows. Even files that are reformatted with different line endings are compared very nicely, with Alt-M ("Match") taking you to the next matching difference.
  • Absolute line endings can be displayed (if desired), to show trailing spaces.

Here is the official VDE home page: VDE Editor home page



PFE (Programmer's File Editor)

PFE, written by Alan Phillips, stands for Programmer's File Editor, and for many years it was widely accepted as one of the best free Windows editors for programmers.

PFE never embraced syntax highlighting and all development ceased in 1999, so it is now considered obsolete. The web site, however, still offers the Windows executable and the documentation for free download .

I must say that PFE had one of the best internal modules for printing its files I've ever seen, and very few Windows programmer's editors come close to the flexibility and power of PFE for printing its files. In fact, it is so impressive that for several years, the NTEmacs FAQ file recommended that Windows users choose PFE as the default program for printing documents under Emacs. (Not current in 2014, however.)

I still think a case can be made for keeping an installation of PFE around, if for no other reason than to make use of its printing features: multiple columns, headers and footers, line numberings, two-sided printing, booklet printing, shaded headings, and more.

Things I wrote for PFE

While I was still using PDF on a regular basis, I rewrote the keyboard mappings twice: once to emulate the WordStar keybindings, and once to emulate the Emacs keybindings. Here are those mapping files:

  • pfe_WS.key - Emulates the WordStar (ver. 4.0) keybindings
  • pfe_Emacs.key - Emulates the GNU Emacs (ver. 20.6) keybindings

Note: Although the file extension on the two previous files is "key", these are not files that can modify the Registry for Microsoft Windows. These are keyboard remapping files designed only for PFEm the Programmer's File Editor.



These pages created with GNU Emacs, xhtmlpp, Take Command, and Altap Salamander. Icons courtesy of Qbullets
Last modified: 2015-05-17