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:
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 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.
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:
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 TEXT | OUTPUT 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 TEXT | OUTPUT 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 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).
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.
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.
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.
- 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, 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 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, 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.
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.
|