The Porting and Archiving Centre for HP-UX 
 Home
 Catalogue
 FAQ
 What's New?
 

Search for a package

Package name
Description
Author

Search Term

Case Sensitive




 XVI(1)                             Unix                              XVI(1)
                                  19/6/1992



 NAME
      xvi - multi-file text editor

 SYNOPSIS
      xvi { -s parameter-assignment } [ -t tag | +number | +/pattern ] {
      filename ...  }

 DESCRIPTION
      Xvi (pronounced ecks-vee-eye) is a free, portable, multi-window
      implementation of the popular vi(1) editor.  It has some useful
      enhancements, although, as described below, not all of vi's features
      have been implemented yet, and some things work differently from vi.

 OPTIONS
      The following command-line options are available:

      -s parameter-assignment
           Set the value of the specified parameter at startup.  The
           assignment has the same form as when given as an editor command,
           i.e:

           name=string
                for string parameters

           name=number
                for numeric parameters

           name to turn a Boolean parameter on

           noname
                to turn a Boolean parameter off

      -t tag
           Edit the file containing the definition specified as tag, at the
           start of the definition (as per vi).

      +number
           Go to the specified line number of the file being edited.

      +/pattern
           Go to the first occurrence of the specified pattern within the
           file being edited.  The -r command line option is not supported.

 ENHANCEMENTS
    Multiple buffers and windows
      A buffer is the internal object which holds a file in memory, while a
      window is an area of the screen which shows part of a buffer.  Every
      window references a buffer, even if no file is being edited.  The
      following commands are available for operating on buffers and windows:





                                    - 1 -      Formatted:  February 10, 2012






 XVI(1)                             Unix                              XVI(1)
                                  19/6/1992



      :buffer
           create a new buffer in a new window; can be followed by a
           filename, which will be edited in the new buffer.

      :split
           create a new window on to the current buffer by splitting the
           current window in half.  The two resulting windows are similar to
           viewports on to a single editing buffer, in that changes made in
           one window are reflected in the other one.

      :close
           close the current window; will also close the buffer if this is
           the last window on to it.

      :x / ZZ
           close only the current window.  If the window is the only one on
           to the buffer, the buffer will be closed as well, writing it
           first if it is modified.

      g    move to the next window.

      ^W   increase the size of the current window (may be given a numeric
           prefix, default is one line).

      ^T   decrease the size of the current window (may be given a numeric
           prefix, default is one line).

      ^O   make the current window as large as possible.

      ^]   as for vi, but create a new buffer window if appropriate (and if
           autosplit allows).  Note that the :quit command quits out of the
           editor, not out of a window.  The :close command is thus the
           equivalent of :quit for windows.  There is no equivalent of :x or
           ZZ for the whole editor; these have been hijacked for operations
           on windows.  The numeric autosplit parameter specifies the
           maximum number of buffer windows that will be created
           automatically whenever you either edit more than one file, or use
           tags to edit a different file.  Undo works per buffer, as do
           marks; yank/put and redo (the . command) work over all buffers,
           i.e. you can delete from one buffer and put the text into a
           different buffer.

    File preservation
      Rather than use vi's Unix-specific method for preservation, xvi does
      periodic preservation of all files currently being edited into
      temporary files in the same directory.  It tries to do this when you
      aren't typing, so that you won't notice the short delay when the
      temporary file is written out.  Obviously, only changed files are
      preserved in this way, and the temporary file is removed once the real
      file has been successfully written.




                                    - 2 -      Formatted:  February 10, 2012






 XVI(1)                             Unix                              XVI(1)
                                  19/6/1992



    8-bit character support
      Characters with the top bit set are accepted by xvi, but it is not yet
      possible to have null ('\0') bytes in a file buffer.  How characters
      are displayed can be controlled by the cchars and mchars parameters,
      which, if set, cause control and meta-characters respectively to be
      output unchanged; otherwise they are shown as sequences of printable
      characters.  Tabs are normally displayed as a series of spaces of the
      appropriate length (according to the tabstops parameter); setting list
      mode will cause them to be displayed as control characters, as will
      unsetting the tabs parameter.  How the tab character is displayed is
      then under the control of the cchars parameter.  You can use the ^_
      (control-underscore) command to flip the top bit of the character the
      cursor is on.  This may be useful on systems where it is otherwise
      impossible to enter 8-bit characters.

    File formats
      Xvi can read and write text files in non-Unix formats.  The current
      format is given by the value of the format parameter, which may be set
      to "unix", "msdos", etc.  To see a list of available formats, type

           :se fmt=?

    Extended regular expressions
      vi's magic parameter is superseded by the regextype parameter, which
      can take the following values:

      tags only ^ and $ are significant (used for tags)

      grep like grep(1), but with \< and \> added

      egrep
           like egrep(1), but with \< and \> added The default is grep.
           Note that it is still possible to set or unset magic as in vi;
           this will simply result in regextype being set as appropriate.
           The sections and paragraphs parameters define egrep-style
           patterns to search for, rather than vi's simplistic (and troff-
           dependent) character pairs.

    Improved replace mode
      The R command acts more intelligently when you press return - it
      leaves the rest of the current line alone, and just starts replacing
      text on the next line, starting at the screen column where you first
      typed R.

    Command re-execution
      As well as the normal named (conjugate) buffers, and the default one
      (named @), there exist several extra ones named :, /, ? and !, which
      contain the last command lines typed to each of the given commands.
      So for instance, @: will re-execute the last ex command, or you can
      insert it into your buffer, edit it and then re-execute it (e.g. with
      dd@@).



                                    - 3 -      Formatted:  February 10, 2012






 XVI(1)                             Unix                              XVI(1)
                                  19/6/1992



    Jumpscroll
      When multiple windows are used, xvi normally has to be able to scroll
      individual windows without scrolling the whole screen.  This can be
      very inefficient on terminals without scrolling regions, so the
      jumpscroll parameter is provided to control the editor's scrolling
      behaviour.  It can be set to one of:

      off  When the cursor moves outside a window's boundaries, and the new
           position is near enough, the window will scroll to the new
           position.

      on   When the cursor moves outside a window's boundaries, the window
           will always jump to the new position.

      auto A window will scroll only if it can do so efficiently; otherwise
           it will jump.  The default value is auto.  On ISA-type systems
           which have memory-mapped displays, hardware character generators
           and reasonably fast processors, jumpscroll should generally be
           set to off; however, on LCD screens or other displays with a long
           image persistence, this may actually make the text more difficult
           to read, and many users may be more comfortable with it turned
           on.  Explicit scroll commands (e.g.  ^D and ^E) are not affected
           by the jumpscroll parameter.

    Colour
      There are four new parameters to control screen colours:
      colour      colour used for text statuscolourcolour used for status
      lines roscolour   as statuscolour, but for readonly files
      systemcolourcolour used for system mode (i.e. subshells and after
      termination) These parameters are numeric, and the value means
      different things on different operating systems.  On Unix, it is an
      index into the termcap(5) entries "c0" to "c9", which are assumed to
      be colour-setting escape sequences if they are present.  If they are
      not present, "so" (begin standout mode) and "se" (end standout mode)
      are used instead.  Values of 0 and 1 give normal text, whereas 2 and
      above give standout mode.  The default colour for the roscolour
      parameter will generally involve red if colours are available; this is
      intended to provide a warning to the user that writing the file may
      not be possible.

    On-line help
      A primitive help facility is available; the :help command simply
      creates a new buffer window on to a standard help file.  The name of
      the file which is edited is given by the helpfile string parameter;
      the default on Unix versions is "/usr/lib/xvi.help".  Note that the
      help file buffer will be marked "not editable" when it is created,
      which prevents accidental overwriting of the help file even when the
      file permissions would allow it.

    Miscellaneous
      The command :wn (write file and edit next) is provided, as in PC-vi.



                                    - 4 -      Formatted:  February 10, 2012






 XVI(1)                             Unix                              XVI(1)
                                  19/6/1992



      The new edit parameter controls whether a buffer can be modified.
      This may be used to implement a nicer version of view(1) than the
      standard vi version, since it won't fool you into thinking that
      editing the buffer is in any way safe.  Be warned: once having set
      noedit, it is not possible to do a :set edit any more.  It's a one-way
      street.  In insert and replace modes, ^A has the same meaning as ^@ in
      vi, except that it works at any time, not just for the first
      character.  Also, typing ^Bx where x is the name of a conjugate
      buffer, inserts the contents of that buffer into the input stream at
      that point.  The buffer named < always contains the last thing
      inserted, so that ^B< is the same as ^A.

 LIMITATIONS
    Ex mode
      The main area in which xvi is lacking is vi's ex mode, which is not
      implemented at all (and neither are edit, e, or open modes).  However,
      many of the ex commands are available in vi mode as colon commands;
      the colon commands that have not been implemented are mostly those
      which offer the same functionality as other commands in vi mode.  In
      particular, abbreviate, append, change, ex, insert, join, open,
      recover, unabbreviate, undo, write>>, z and | have not been
      implemented as colon commands yet.

    Vi mode
      In vi mode, the U and = commands are not implemented, although there
      is no real reason why they shouldn't be, whilst Q is inappropriate in
      the context of xvi, since there is no ex mode.

    Parameters
      Many of vi's parameters have not been implemented; the command :se all
      gives a complete list, with current values, of those that have been.

    Miscellaneous
      Repeat counts before insertions don't work.  Appending to named
      buffers is not yet implemented.  Typing ^Q in input mode does not mean
      the same as ^V; it just inserts a `^Q', assuming it gets as far as the
      editor at all.  Typing ^W in insert mode does not back up one word as
      in vi.  It is not possible to interrupt the editor while it is
      performing certain operations.  If you start off a big global command,
      you have to wait for it to finish.  Flags and counts after ex mode
      commands are not supported.  It is not possible to read the output of
      a system command using

           :r !command or to write into a command using

           :w !command.  Regular expressions, although implemented (see
           above), do not support the ~ metacharacter; also, the \u and \l
           escape sequences are not supported in substitute replacement
           patterns.  Newlines included on the right hand side of a
           substitution do not currently cause the line to be split; the
           newline character is literally inserted into the line.  The



                                    - 5 -      Formatted:  February 10, 2012






 XVI(1)                             Unix                              XVI(1)
                                  19/6/1992



           :global command only supports the commands [lps&~d].

 OTHER DIFFERENCES FROM VI
      The XVINIT environment variable is read instead of EXINIT.  Whilst no
      files are sourced automatically, users who wish to have a startup file
      can arrange it very easily.  sh(1) or ksh(1) users should add this
      line to their $HOME/.profile:

           XVINIT='source xvi-startup-file'; export XVINIT csh(1) users
           should add this to their $HOME/.login:

           setenv XVINIT 'source xvi-startup-file' The tags parameter can be
           used to specify multiple tags files; these can be separated by
           either ``\ '' (backslash space) or ``,'' (comma).  Alternate
           files are handled slightly differently, owing to the presence of
           buffer and window handling.  Essentially, when you close a
           buffer, its filename is remembered as the alternate file; when
           you invoke the ^^ or :e # commands, this file is re-edited.  Note
           that ^^ edits the alternate file in a new buffer window, if
           autosplit allows.  Hitting the escape key while in the command
           line does not terminate input; instead, it cancels input,
           returning the prompt to the beginning of the line.  This applies
           to input for :, /, ? and !.

 FILES
      /usr/lib/xvi.helpDefault help file.

 SEE ALSO
      ex(1), vi(1), termcap(5).
      Summary of Differences between Vi and Xvi.

 BUGS
      +    When the cursor is on the last word of a buffer, the command dw
           leaves the last character of the word undeleted.

      +    Some screen updates do not get shown properly when buffers are
           split, and certain commands (e.g.  x) are executed.

      +    If you do something like cf.WORD<esc> and then redo it, and the
           f. fails, then the WORD<esc> gets taken as normal input.  The
           rest of the input should really be cancelled when part of a redo
           fails.

      +    A command of the form :/pat/;+1m. will not work because the
           editor incorrectly detects a conflict between source and
           destination.

      +    The editor in its present form is very inefficient in terms of
           CPU cycles.





                                    - 6 -      Formatted:  February 10, 2012






 XVI(1)                             Unix                              XVI(1)
                                  19/6/1992



      +    Most termcap(5) terminal descriptions are only tested with vi(1)
           (and possibly rogue(6)).  Since xvi is, in some ways, more
           demanding than vi in its use of termcap capabilities, it
           sometimes exposes bugs or inadequacies in termcap entries.  This
           applies especially to scrolling regions.

 AVAILABILITY
      Xvi has been ported to MS-DOS, OS/2, QNX and many different versions
      of Unix.  Source code is available from the authors.

 AUTHORS
      Chris and John Downey.  Derived from STEVIE, written by Tim Thompson
      and Tony Andrews.









































                                    - 7 -      Formatted:  February 10, 2012




 

    
Home | Catalogue | FAQ | What's New? | Contact Us
A service by Connect Internet SolutionsHewlett Packard Logo