mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-30 02:12:45 +00:00
6f80b46075
the installation floppy (and in any references in new user docs for editing files) since tossing a novice into vi with no help or clue as to what the key bindings are is both cruel and in violation of the Hague Convention. It's also much SMALLER than vi and even supports emacs key bindings for those so inclined. Submitted by: "Hugh F. Mahon" <hugh@nsmdserv.cnd.hp.com>
117 lines
6.2 KiB
Plaintext
117 lines
6.2 KiB
Plaintext
THIS MATERIAL IS PROVIDED "AS IS". THERE ARE NO WARRANTIES OF
|
|
ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT
|
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
FITNESS FOR A PARTICULAR PURPOSE. Neither Hewlett-Packard nor
|
|
Hugh Mahon shall be liable for errors contained herein, nor for
|
|
incidental or consequential damages in connection with the
|
|
furnishing, performance or use of this material. Neither
|
|
Hewlett-Packard nor Hugh Mahon assumes any responsibility for
|
|
the use or reliability of this software or documentation. This
|
|
software and documentation is totally UNSUPPORTED. There is no
|
|
support contract available. Hewlett-Packard has done NO
|
|
Quality Assurance on ANY of the program or documentation. You
|
|
may find the quality of the materials inferior to supported
|
|
materials.
|
|
|
|
This software may be distributed under the terms of Larry Wall's
|
|
Artistic license, a copy of which is included in this distribution.
|
|
(see doc/Artistic).
|
|
|
|
This notice must be included with this software and any
|
|
derivatives.
|
|
|
|
Any modifications to this software by anyone but the original author
|
|
must be so noted.
|
|
|
|
|
|
The editor 'ee' (easy editor) is intended to be a simple, easy to use
|
|
terminal-based screen oriented editor that requires no instruction to
|
|
use. Its primary use would be for people who are new to computers, or who
|
|
use computers only for things like e-mail.
|
|
|
|
ee's simplified interface is highlighted by the use of pop-up menus which
|
|
make it possible for users to carry out tasks without the need to
|
|
remember commands. An information window at the top of the screen shows
|
|
the user the operations available with control-keys.
|
|
|
|
ee allows users to use full eight-bit characters. If the host system has
|
|
the capabilities, ee can use message catalogs, which would allow users to
|
|
translate the message catalog into other languages which use eight-bit
|
|
characters. See the file ee.i18n.guide for more details.
|
|
|
|
ee relies on the virtual memory abilities of the platform it is running on
|
|
and does not have its own memory management capabilities.
|
|
|
|
I am releasing ee because I hate to see new users and non-computer types
|
|
get frustrated by vi, and would like to see more intuitive interfaces for
|
|
basic tools (both character-based and graphical) become more pervasive.
|
|
Terminal capabilities and communication speeds have evolved considerably
|
|
since the time in which vi's interface was created, allowing much more
|
|
intuitive interfaces to be used. Since character-based I/O won't be
|
|
completely replaced by graphical user interfaces for at least a few more
|
|
years, I'd like to do what I can to make using computers with less
|
|
glamorous interfaces as easy to use as possible. If terminal interfaces
|
|
are still used in ten years, I hope neophytes won't still be stuck with
|
|
only vi.
|
|
|
|
For a text editor to be easy to use requires a certain set of abilities. In
|
|
order for ee to work, a terminal must have the ability to position the cursor
|
|
on the screen, and should have arrow keys that send unique sequences
|
|
(multiple characters, the first character is an "escape", octal code
|
|
'\033'). All of this information needs to be in a database called "terminfo"
|
|
(System V implementations) or "termcap" (usually used for BSD systems). In
|
|
case the arrow keys do not transmit unique sequences, motion operations are
|
|
mapped to control keys as well, but this at least partially defeats the
|
|
purpose. The curses package is used to handle the I/O which deals with the
|
|
terminal's capabilities.
|
|
|
|
While ee is based on curses, I have included here the source code to
|
|
new_curse, a subset of curses developed for use with ee. 'curses' often
|
|
will have a defect that reduces the usefulness of the editor relying upon
|
|
it. This is unused by the FreeBSD version of ee (the existing ncurses
|
|
library works just fine) but is included in the doc subdirectory for
|
|
reference purposes should anyone wish to port ee to a platform for
|
|
which the existing curses libraries are insufficient.
|
|
|
|
The files doc/new_curse.[ch] contain a subset of the 'curses' library
|
|
used by applications to handle screen output. Unfortunately, curses
|
|
varies from system to system, so I developed new_curse to provide
|
|
consistent behavior across systems. It works on both SystemV and BSD
|
|
systems, and while it can sometimes be slower than other curses packages,
|
|
it will get the information on the screen painted correctly more often
|
|
than vendor supplied curses. Again, FreeBSD does not have this problem
|
|
but you may find it useful on other platforms.
|
|
|
|
If you experience problems with data being displayed improperly, check
|
|
your terminal configuration, especially if you're using a terminal
|
|
emulator, and make sure that you are using the right terminfo entry
|
|
before rummaging through code. Terminfo entries often contain
|
|
inaccuracies, or incomplete information, or may not totally match the
|
|
terminal or emulator the terminal information is being used with.
|
|
Complaints that ee isn't working quite right often end up being something
|
|
else (like the terminal emulator being used).
|
|
|
|
Both ee and new_curse were developed using K&R C (also known as "classic
|
|
C"), but it can also be compiled with ANSI C. You should be able to
|
|
build ee by simply typing "make".
|
|
|
|
ee is the result of several conflicting design goals. While I know that it
|
|
solves the problems of some users, I also have no doubt that some will decry
|
|
its lack of more features. I will settle for knowing that ee does fulfill
|
|
the needs of a minority (but still large number) of users. The goals of ee
|
|
are:
|
|
|
|
1. To be so easy to use as to require no instruction.
|
|
2. To be easy to compile and, if necessary, port to new platforms
|
|
by people with relatively little knowledge of C and UNIX.
|
|
3. To have a minimum number of files to be dealt with, for compile
|
|
and installation.
|
|
4. To have enough functionality to be useful to a large number of
|
|
people.
|
|
|
|
Hugh Mahon |___|
|
|
h_mahon@fc.hp.com | |
|
|
|\ /|
|
|
| \/ |
|
|
|