Unix Programming - A Tale of Five Editors - Wily
The wily editor[120]
is a clone of the Plan 9 editor
acme.[121]
It shares some facilities with Sam, but is intended to provide a
fundamentally different user experience. Although Wily probably sees
the least widespread use of any of these editors, it is interesting
because it illustrates a different and arguably more Unixy way of
implementing an Emacs-like programmable editor.
Wily could be described as a minimalist IDE, an implementation
of Emacs-style extensibility without the decades of accompanying
cruft. In Wily, even global search and replace, that
sine qua non
of Unix editors, is
supplied by an external program. The built-in commands relate almost
exclusively to windowing operations. Wily is designed from the ground
up to use the mouse as much, and as well, as possible.
Wily attempts to replace not only conventional editors but
conventional terminal windows such as
xterm(1)
as well. In Wily, any piece of text within the main window (which
contains multiple non-overlapping Wily windows) can be an action or a
search expression. The left mouse button is used to select text, the
middle button to execute text as a command (either built-in or
external), and the right button to search either Wily's buffers or the
file system for text. No permanent or popup menus are
required.
In Wily, the keyboard is used
only
to enter
text. Shortcuts are achieved not by special use of the keyboard, but
by holding down more than one mouse button at the same time. These
shortcuts are always equivalent to using the middle button on some
built-in command.
Wily can also be used as the front
end for C, Python, or Perl programs, reporting to them whenever a
window is changed or an execute or search command is performed with
the mouse. These plugins function analogously to Emacs modes, but
don't run in the same address space with Wily; instead, they
communicate with it via a very simple set of remote procedure calls.
Wily comes packaged with an xterm analog
and a mail tool which uses it as the editing front end.
Because Wily depends on the mouse so heavily, it cannot be used
on a character-cell-only console display; nor can it be used over a
remote link without X forwarding. As an editor, Wily is designed for
editing plain text; it has only two fonts (one proportional and one
fixed-width) and has no mechanism that could support rich-text editing
or syntax awareness.
[an error occurred while processing this directive]
|