WI(1) USER COMMANDS WI(1)
PENIX OPERATING SYSTEM DOCUMENTATION PENIX
NAME
wi - whatyouseeisprettypathetic interactiveEditor
SYNOPSIS
wi [ - ] fmnpuvy [ arg1 arg2 argh fname fname fname fname... ]
DESCRIPTION
It is said that you can tell an operating system by the editor
that is bundled with it. That certainly goes a long way to
explaining Penix. wi is a multitasking, multi-windowed
character-based editor that also doubles as a backup print
scheduler for the drooler subsystem and triples as an online
news service (see the verbose option).
OPTIONS
f Set flag. If this option is present, then arg2
indicates the total number of flags that you wish to
set. The flags must be specified after the filenames
and must be preceeded by a colon (see examples).
m Munge. This must be used ONLY with multiple
filenames, and causes the contents of multiple windows
to be appended to the same temporary file if multiple
files are created without filenames and the sefm flag
is set.
n Notify all descendant daemons, aengels, maenads and
goelems that you are in a wi editing session and that
they should not disturb you unless it's really
important.
p Disable print-scheduler-swapping. This option assures
that your wi session will not be interrupted by
messages from the wi_not maenad process which
accompanies the drooler-emulation mode. It is a
toggle; within wi, you can re-enable print-scheduler-
swapping from the command prompt with the
SETENVIRONMENTFLAGSPLEASE command.
u Use a different keymap than the system default. This
allows the user to enter wi from a wide variety of
terminals, and more importantly, to exit again
afterwards. If this option is present, the path for
the new keymap is taken from arg2. If absent, the
default /typical/keymaps/keymaps/keymaps/keymaps/spo0
is used.
v Verbose mode. When enabled, wi will open four windows
on the screen, column-wise, displaying ascii text in
the first, hexadecimal in the second, RTF codes in the
third and any spurious messges from the outside world
in the fourth. As these messages are often deflected
by the RALF lexical fluff filter, or occasionally lost
by the gettyStuffed LZH message compacter, the verbose
mode can be a useful way of finding out what's going
on.
y Yoo-nique option. If multiple windows are opened
without specified filenames, the wi_not maenad will
attempt to generate names for the files using the same
algorithm as used by rcatpar to generate new passwords
(see RCATPAR).
arg1 The number of files which are to be edited, minus one.
This also controls the number of windows which will be
opened; the windows are tiled so that each window has
an equal amount of screen space when opened.
argh This is a dummy argument which acts as a buffer
between the numeric arguments and the filenames.
COMMANDS
Once in wi, you will be in curser mode, as denoted by the words
INSERT-MODE -*-OFF-*- in flashing, reversed characters across
the top of the screen (this flashing, and the blinking of you
r
cursor, is handled by the wi_not maenad process which is
started with your wi session). You can move the cursor around
the screen with the following keys:
up: f previous word: q page top: enter
down: p next word: f7 page bottom: ctrl-z
left: y previous paragraph: esc file top: alt-k
right: / next paragraph: tab file bottom: ctrl-alt-del
delete: r over-write mode: # beep: ctrl-G
Insert mode is entered by holding down the `i' key until the
terminal's keyboard buffer overflows and it begins to beep at
you. When this happens, the system aengel-process `Goliad'
receives an interrupt from the serIOus controller that your
teminal is connected to; `Goliad' looks your process up in the
system task table, /typical/who's_who, locates the wi_not
maenad process associated with your current wi session and
sends it a `guess_who_wants_to_go_into_insert_mode' message.
The maenad then deletes the .edrc file in your home directory,
replacing it with a copy of /typical/keymaps/InsertModeKeys and
then restarts itself using this keymap. You can return to
curser mode by repeatedly moving the cursor to the bottom of
the file; if the wi_not maenad detects eight or more `move to
file bottom' orders in the space of thirty seconds, it assumes
a desire to leave insert mode. `move to file bottom' is the
only cursor-movement command that is common to both insert and
curser modes.
MACROS
Keyboard macros can be defined when in curser mode by pressing
control-backspace to enter command mode. The command prompt
will appear at the bottom of the screen:
PLEASE ENTER YOUR COMMAND HERE (NO LONGER THAN 80 CHARACTERS):
There are only five valid commands: `q' to save the file, `s'
to quit without saving the file, `a' to quit and save the file,
`n' or SETENVIRONMENTFLAGSPLEASE to allow setting of external
flags and `w' for `set macro'. Once in `set macro' mode, the
words SET-MACRO-MODE -*-ON-*- in flashing, reversed characters
appear across the top of the screen. From then on, any
keystrokes you enter are not acted upon, but are piped into a
file in /ephemeral/keymaps/keymaps/keymaps/$$macro (where $$ is
your unique system ID). Once macro mode is left (by pressing
control-z eight times quickly), you will be asked which key
sequence to allocate this macro to; it can be assigned to any
key combination, including control-z. On pressing this key in
future, the contents of that file will be piped to the wi_not
maenad, which will assume them to be ordinary keystrokes and
will act upon them as such.
ENVIRONMENT FLAGS
pss ON | OFF
Print-scheduler-swapping. When set ON, your wi_not maenad
will assume control of the drooler printer line that
matches the address of your serIOus line in the
/typical/who's_where file. If wi is being run from the
system console, wi_not will assume control of the parallel
printer. If verbose mode is ON, the fourth wi window will
show status messages from the drooler subsystem.
vrb ON | OFF | SHUT_UP_AWREADY
Verbose mode. When set on, your window will be divided
into four sections, allowing fine control of the text that
is being entered. Control can be switched from one window
to the next by pressing the control-right-cursor key, and
text can be entered in hexadecimal or RTF. Verbose-mode
OFF disables messages from the fourth window for a period
of two minutes (to ensure no conflicts between the wi_not
maenad and the whats_all_this_then daemon which allocates
disk blocks when the file is being saved). Verbose-mode
SHUT-UP-AWREADY d
isables verbose mode completely.
sefm ON | OFF n
Save every five minutes. When active, this will
automatically write the contents of the wi_not maenad's
tummy_buffer to the originating file. If no origin is
specified (such as in the instance of creating new files),
they will be written to /ephemeral/wi_do_i_bother_$$. n
specifies the number of ticks between successive saves, and
defaults to 2 in the interests of data integrity.
stfu ON | OFF
Setting shut_the_f**k_up to ON disables the standard audio
sample that replaces the control-G beep sound.
EXAMPLES
wi -np 1 /uselss/now_hear_this_you_scum
This will start wi with a single window, notifying
descendant processes to keep quiet for a bit, disables
print-spooler-swapping and loads the system login
message into the tummy_buffer of the wi_not maenad.
wi -mf 4 2 argh albatross choc_ice :stfu ON sefm ON 200
This will start wi with four windows; the first two
will be named `albatross' and `choc_ice'; the third and
fourth windows will be unnamed. The `shut_the_f**k_up'
flag will be set, and the `save_every_five_minutes' flag
will be activated, with a save-frequency of 200 ticks
(or approximately four seconds). The contents of the
third and fourth unnamed windows will be auto-appended
to the file /ephemeral/wi_do_i_bother_$$.
wi -vy 500 argh
This will open five hundred windows on your screen, and
will then sub-divide them into two thousand smaller
windows, each with its own unique filename. This will
usually crash the system.
FILES
/uselss/beep Raw audio sample file, containing
the replacement for the standard
control-G beep sound.
/typical/who's_who System task table; used by the
aengel Goliad to locate your
session when swapping keymaps.
/typical/who's_where Relates user tasks to serIOus
lines, allowing correct allocation
of drooler resources under
print-scheduler-swapping.
/ephemeral/wi_do_i_bother_$$ Temporary write file for autosave
if no filename was specified. If
filenames are not specified when
creating the files, autosave will
be dumped there.
.edrc Settings for wi initialisiation,
located in your home directory.
can contain flag settings.
/typical/keymaps/InsertModeKeys Temporary file for changing to
insert mode
/typical/keymaps/keymaps/keymaps/keymaps/spo0
Default keymap for wi.
/ephemeral/keymaps/keymaps/keymaps/$$macro
Temporary storage for macro
definition.
SEE ALSO
crp(1), stuffio(2), doobrie(9), bwip_init(2), google(2),
edmond(29), raymond(3), horwood(6), output(1), vo_mit(992),
stomp(2), invoke(1), exorcise(666)
BUGS
The n option can be slow.
If you press any keys while the wi_not maenad is engaged in
restarting with the /typical/keymaps/InsertModeKeys file, you
may generate a level six Shee_It CPU trap which may cause the
loss of some data. Be sure to release the `i for insert' key
as soon as your cursor stops flashing.
If you specify a large number of windows whe
n starting wi and
then enter the verbose mode, the total number of windows on the
screen will quadruple. This may reduce the viewable editing
area in each window to less than one character in size.
Entering command mode in this state would not be adviseable, as
considerable system resources would be required to update the
display, possibly impacting on the work of other users.
There is no way selectively to follow symbolic links.
If you create multiple files without specifying filenames for
them and then the sefm autosave flag is activated, the contents
of one window will over-write the contents of the others, as
they are all saved into the same temporary file. This can be
avoided by specifying the -m (munge) command option, which
appends the contents of two or more windows to the same
temporary file.
Exiting verbose mode with the SHUT-UP-AWREADY flag leaves the
screen in the four-column window format, reducing the area
available for text editing to one-fourth of the full screen.
If you start wi with a single filename and specify the -m
option, the session will hang, as wi expects multiple filenames
to be specified along with the munge option.
It is not possible to specify an alternate system keymap and to
set flags on entry simultaneously, as both tasks require
explicit use of the arg2 argument. In this case, enter the
required flags into your .edrc file, using wi to edit it.
If you assign a macro to the control-z key combination, there
is no way to leave wi except by encouraging a caenobite-process
to take over your serIOus line. In this instance, some data
may be lost. If the wi session is being run from the system
console, it may not be possible to contact a caenobite; in
which case, the system must be powered down to free the
console.
We're not kidding about the symbolic links, you know.
[ Back ] [ Up ] [ Next ]
Sunburne Computer, Inc. 22 October 1991
© nikolai@ariel.ucs.unimelb.edu.au. Last update: Sunday, June 16, 1996
|