Back ] Up ] Next ]

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