packages icon



 elvis(1)                                                           elvis(1)




 NAME
      elvis - a clone of the ex/vi text editor

 SYNOPSIS
      elvis [-V...] [-a] [-r] [-e] [-i] [-s|-] [-b] [-R] [-S|-SS] [-f
      session] [-o logfile] [-G gui] [-c command|+command] [-t tag] [-w
      scroll] [-B blksize] [file]...

 VERSION
      Elvis 2.2_0

 DESCRIPTION
      Elvis is a text editor.  It is intended to be a modern replacement for
      the classic ex/vi editor of UNIX fame.  Elvis supports many new
      features, including multiple edit buffers, multiple windows, multiple
      user interfaces (including an X11 interface), and a variety of display
      modes.

      To exit Elvis, you can give the command ":q" in each of its windows.
      If you've modified the buffer in a window, and you want to abandon
      those changes, then give the command ":q!" instead.

 HELP PAGES
      For more information please take a look at Elvis' help pages.  These
      pages should have been installed together with Elvis.  To view the
      help pages, start Elvis and give the command ":help".

      If this does not show you the main help file then something is wrong.
      Perhaps the help pages were installed in the wrong place.  In that
      case, search for a file named "elvis.html" using either GNU's
      locate(1) or the standard find(1) program.  Hopefully this will show
      you where the file is located.  You can then view it with...

           :sp /directory/elvis.html

      If the help pages aren't installed on your system but you have access
      to the Internet, then you can view the help pages via HTTP by
      running...

           :sp http://elvis.vi-editor.org/elvisman/elvis.html

 OPTIONS
      -V   "Verbose" mode, causes Elvis to output more status messages.  You
           can use multiple -V flags to get even more detailed information.
           -VVV can be handy when Elvis isn't initializing itself quite the
           way you expected.  See also the -ologfile option, described
           below.

      -a   Instructs Elvis to load all files named on the command line
           simultaneously with a separate window for each.




                                    - 1 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




      -r   This is used for recovering an edit session after a crash.  Each
           Elvis process uses a single "session file" to store the contents
           of all edit buffers.  While Elvis is running, a flag is set near
           the beginning of the session file so that other Elvis processes
           won't try to use it at the same time.  If an Elvis process dies
           abnormally, though, it will leave the session file lying around
           with that flag set; the -r flag allows Elvis to open a session
           file even if it is marked as being in use.

      -e   Causes Elvis to start each window in ex mode, instead of visual
           command mode.  Invoking Elvis as "ex" implies this.

      -i   Causes Elvis to start each window in input mode, instead of
           visual command mode.  Novice users may prefer this.

      -b   This sets the "binary" option, which causes new buffers to be
           marked as "readeol=binary".  Without -b, Elvis will try to guess
           the format by examining the first hundred bytes or so of the
           file.

      -R   This sets the "defaultreadonly" option, which causes all new
           buffers to be marked as "readonly" so you won't accidentally
           overwrite the original file.

      -S   Sets security=safer, making Elvis paranoid about certain
           potentially harmful commands.  The intent is to protect the user
           against writing by malicious scripts.  The ./.exrc file and
           modelines are executed with security=safer temporarily regardless
           of whether -S was given.  The -S flag is just used to make Elvis
           permanently paranoid, for the duration of this process.

      -SS  Sets security=restricted.  This is more extreme security than "-
           S".  The intent is to protect the system against reading by
           malicious users.

      -f session
           Makes Elvis use the session file named "session" instead of the
           default file.  Session files are discussed in the description of
           the -r flag, above.

      -o logfile
           Redirects messages and trace information out to logfile instead
           of going to stdout/stderr as usual.  This is useful under
           Windows95, where stdout/stderr don't show anywhere.  If you're
           having trouble configuring WinElvis, try running "WinElvis -VVV
           -o log" and then you can find the trace and error messages in the
           file "log".

      -G gui
           Makes Elvis use the named gui user interface instead of the
           default.  To see a list of supported user interfaces, give the



                                    - 2 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




           command "elvis -?".

      -c command
           After loading the first file, interpret command as an ex command
           line.  Several ex command lines can be sent in one line,
           separated by "|".  This is good to know, because only a single -
           ccommand or +command flag can be used.

      -s   Read an ex script from stdin, and execute it.  This is similar to
           the -Gscript flag, except that -s has the additional side-effect
           of bypassing all initialization scripts.

      -t tag
           Causes editing to begin at the location where the given tag is
           defined.  See the ctags(1) command for more information about
           tags.

      -w scroll
           This sets the "window" option, which has very little effect in
           Elvis.

      -B blksize
           If a new session file is created, this causes it to use blocks of
           size blksize.

      In addition, the following options are also supported to maintain
      backward compatibility, although their future use is discouraged.

      +command
           Like -c command, this causes the ex command to be executed after
           the first file is loaded.  If the command is omitted, it is
           understood to be "$", which causes the cursor to move to the last
           line of the file.

      -    Like -s, this causes Elvis to read a script from stdin and
           execute it.

 TERMCAP INTERFACE
      The termcap interface is the one you'll use most often on non-graphic
      terminals.  It looks and acts a heck of a lot like the traditional vi.
      The biggest addition is the support for multiple windows.  For more
      information on how to use multiple windows, start Elvis and give the
      command ":help ^W".  The short form of that help is: ^Ws splits the
      screen to form an additional window, ^Wq closes the window, and ^W^W
      switches the cursor from one window to another.

      If your terminal supports ANSI color escape sequences, then you can
      use the ":color" command to assign different colors to various fonts.
      You must assign a "normal" color first, e.g., ":color normal yellow on
      blue".




                                    - 3 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




      The DOS and (text mode) Win32 version of the termcap interface support
      the mouse.  The mouse behaves almost exactly like the X11 mouse,
      described below.  The only differences are that the mouse can't be
      used to cut & paste to the clipboard, and on a two-button mouse you
      can simulate a middle button by simultaneously pressing the left and
      right buttons.

 X11 INTERFACE
      The x11 interface is used under X-Windows on UNIX systems.  It
      provides a scrollbar and mouse support, and allows you to select which
      fonts to use.

    X11 Options
      To specify a normal font, use -font fontname or -fn fontname.
      Proportional fonts are not properly supported, but they aren't
      rejected with an error message either.  If you don't specify a normal
      font, then Elvis will use a font named "fixed" by default.  (This
      default can be overridden by a "set font=..." command in the elvis.ini
      file.  The default elvis.ini file does this, making the new default
      font be 18-point Courier.)

      To specify a bold font, use -fb fontname.  The specified font should
      have the same size character cell as the normal font, but Elvis does
      not verify this.  If you don't specify a bold font, then Elvis will
      fake it by smearing the normal font rightward one pixel.

      To specify an italic font, use -fi fontname.  The specified font
      should have the same size character cell as the normal font, but Elvis
      does not verify this.  If you don't specify an italic font, then Elvis
      will fake it by sliding the top half of the normal font rightward one
      pixel.

      If you want to use Courier fonts, there is a shortcut: -courier size
      will use the normal, bold, and italic versions of the Courier font in
      the requested size.

      You can force Elvis to use only black and white with the -mono flag;
      this is the default if your display only has one bitplane.  For color
      displays, -fg color and -bg color can be used to set the normal text
      color and the background color, respectively.

      Elvis has a built-in icon, which is generally a good thing.  Some
      window managers won't allow you to assign a new icon to a program that
      has a built-in one, so Elvis has a -noicon flag which disables the
      built-in icon.

      The -fork client causes Elvis to run in the background, so that your
      shell prompt returns immediately.

      The -client option causes Elvis to look for an already-running Elvis
      process on the same X server and, if there is one, send the new



                                    - 4 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




      arguments to it.  This causes the old Elvis process to create new
      windows for file arguments.  The new Elvis process then exits, leaving
      the old one to do the real work and allowing your shell program to
      prompt for a new command immediately.  For the sake of uniformity, if
      -client fails to find an existing Elvis process, then a new Elvis
      process starts up as though you had used the -fork argument instead.

      The -client option is implemented in an interesting way: the client
      Elvis simply sends a series of ex commands to an existing window of
      the server Elvis.  For each file name argument, the client Elvis sends
      a ":split file" command.  For -ttag, the client Elvis sends a ":stag
      tag" command.  For -ccommand, the client Elvis simply sends the
      command, and this results in some quirks.  First, the server Elvis
      temporarily sets security=safer while the command is executed, for
      security reasons.  Second, the command is executed by the server's
      existing window, not the new one, so (for example) "elvis -client -c
      20 foo" creates a new window for the file "foo", and then moves the
      OLD WINDOW's cursor to line 20 of whatever file it was showing.

    X11 Mouse
      I've tried to reach a balance between the mouse behavior of xterm(1)
      and what makes sense for an editor.  To do this right, Elvis has to
      distinguish between clicking and dragging.

      Dragging the mouse always selects text.  Dragging with button 1
      pressed (usually the left button) selects characters, dragging with
      button 2 (the middle button) selects a rectangular area, and dragging
      with button 3 (usually the right button) selects whole lines.  These
      operations correspond to Elvis' v, ^V, and V commands, respectively.
      When you release the button at the end of the drag, the selected text
      is immediately copied into an X11 cut buffer, so you can paste it into
      another application such as xterm.  The text remains selected, so you
      can apply an operator command to it.

      Clicking button 1 cancels any pending selection, and moves the cursor
      to the clicked-on character.  Clicking button 3 moves the cursor
      without canceling the pending selection; you can use this to extend a
      pending selection.

      Clicking button 2 "pastes" text from the X11 cut butter.  If you're
      entering an ex command line, the text will be pasted into the command
      line as though you had typed it.  If you're in visual command mode or
      input mode, the text will be pasted into your edit buffer.  When
      pasting, it doesn't matter where you click in the window; Elvis always
      inserts the text at the position of the text cursor.

      Double-clicking button 1 simulates a ^] keystroke, causing Elvis to
      perform tag lookup on the clicked-on word.  If Elvis happens to be
      displaying an HTML document, then tag lookup pursues hypertext links
      so you can double-click on any underlined text to view the topic that
      describes that text.  Double-clicking button 3 simulates a ^T



                                    - 5 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




      keystroke, taking you back to where you did the last tag lookup.

      If your mouse has a scroll wheel, then Elvis can be configured to use
      it.  For instructions on doing this, start Elvis and give the command
      ":howto scrollwheel".

 ENVIRONMENT VARIABLES
      Elvis has commands which can examine any environment variable.
      Because of this, a comprehensive list of environment variables isn't
      possible.  The following list contains the environment variables which
      have hardcoded meaning in Elvis.

      BASH or BASH_VERSION
           Under Unix/Linux, Elvis tests for the presence of these variables
           to decide whether or not the /bin/sh shell supports process
           control, especially the ^Z key.  The values of these variables
           doesn't matter, only the fact that they exist.

      COLUMNS
           For the "termcap" user interface, this overrides the number of
           columns specified in the termcap/terminfo entry.

      DISPLAY
           For the "x11" user interface, this indicates which display it
           should run on.

      ELVISBG
           If set to "light" or "dark", its value is used as the default
           value for the background option.

      ELVISGUI
           If set, its value is used to select the default user interface.
           You can still override it by using the -Ggui command line flag.

      ELVISPATH
           If ELVISPATH is defined in the environment, then its value is
           copied into the elvispath option, which is a list of directories
           that Elvis should search through when looking for its support
           files.  If ELVISPATH is undefined, Elvis will use a default list
           which usually includes the your home directory, and maybe a
           system-wide default location.

      EXINIT
           If defined, the value of this option is typically interpreted as
           a series of EX commands when Elvis starts up.  This behavior
           isn't built into Elvis though; it is handled by the standard
           elvis.ini file.

      HOME This is your home directory.  Its value is used as the default
           value for the home option, which is used in ~ substitution in
           file names.



                                    - 6 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




      HOMEDRIVE and HOMEPATH
           For Windows, if HOME is unset then HOMEDRIVE and HOMEPATH are
           checked; if they're set then they're concatenated to form the
           default value of the home option.

      INCLUDE
           The "syntax" display mode uses this as a list of directories to
           search through when looking for a header file such as <stdio.h>.

      LC_ALL, LC_MESSAGES, and LANG
           If LANG is defined, then Elvis will look for for its message
           translations in $LANG/elvis.msg, and only use just plain
           elvis.msg if it can't find $LANG/elvis.msg.  The LC_MESSAGES and
           LC_ALL environment variables work similarly, and take precedence
           over LANG.

      LINES
           For the "termcap" user interface, this overrides the number of
           lines specified in the termcap/terminfo entry.

      LOGNAME
           This stores your login name.  It is used when reading via the FTP
           protocol, to choose the default login information.

      OLDPWD
           This stores the name of the previous directory you were in.  Its
           value is stored in the prevdir option, which is used for ~-
           substitution in file names.

      PATH The usual search path for programs.

      SESSIONPATH
           This is a list of directories where Elvis might be able to create
           the session file.  Elvis uses the first writable directory from
           the list, and ignores all others.

      SHELL or COMSPEC
           This is the name of your command-line interpreter.  Elvis needs
           to know this so you can run programs from inside Elvis.  SHELL is
           used in Unix/Linux, and COMSPEC is used in MS-DOS.

      TAGPATH
           This is a path for tags files, used by the :tag command.  For
           Microsoft it is semicolon-delimited; for all others it is colon-
           delimited.  Each entry in the path can be either a filename, or
           the name of a directory containing a file named tags.

      TERM For the termcap interface, this is the name of the terminal's
           termcap/terminfo entry.  Also, if its value is "kvt" or ends with
           "-r" or "-rv", then the background option will be "light" by
           default; else it will be "dark".



                                    - 7 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




      TERMCAP
           For the termcap interface, this can either store the name of a
           termcap file or the actual contents of a termcap entry.

      TMP  This is where Elvis stores its temporary files other than session
           files.

      WINDOWID
           Elvis uses this when choosing the default value of the background
           option.  If the WINDOWID environment variable exists, then Elvis
           assumes it is running in an xterm-like terminal emulator, and
           those emulators usually have a light background.

      XENVIRONMENT, XFILESEARCHPATH, and XUSERFILESEARCHPATH
           These are used by the "x11" user interface, when loading Elvis'
           resources.

 FILES
      ~    This is your home directory.  Whenever Elvis sees a ~ at the
           start of a pathname, it replaces the ~ with the value of the
           "home" option.  The "home" option is initialized from the HOME
           environment variable; if HOME is unset then some operating
           systems will set "home" to the the directory where the Elvis
           program resides.

      lib  In this man-page, "lib" is a placeholder for the name of a
           directory in which Elvis' configuration files reside.  The
           "elvispath" option's value is a list of directories that Elvis
           will check for each configuration file.

      elvis*.ses
           These are the default names for sessions files.  Session files
           store the contents of all edit buffers for a given edit session.
           You can instruct Elvis to use a specific session file via the -
           fsession command-line flag.  Note that sessions specified via -
           fsession normally reside in the current directory, but when Elvis
           chooses its own session file name, it will place it in the first
           writable directory named in the SESSIONPATH environment variable.

      tags This file stores the tags for the files in a directory.  It is
           used by the :tag command, among others.

      lib/elvis.ini
           This file contains EX commands which are executed whenever Elvis
           starts up.  Elvis searches through the ELVISPATH for the file.

      ~/.exrc, ~/.elvisrc, or ~\elvis.rc
           The .exrc or .elvisrc (for UNIX) or elvis.rc (for non-UNIX) file
           in your home directory will generally be executed as a series of
           EX commands, unless the EXINIT environment variable is defined.
           This behavior isn't built into Elvis though; it is handled by the



                                    - 8 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




           standard elvis.ini file.

      .exrc, .elvisrc, or elvis.rc
           The .exrc or .elvisrc (for UNIX) or elvis.rc (for non-UNIX) file
           in the current directory is interpreted as a series of EX
           commands, but only if the exrc option has been set.  This
           behavior isn't built into Elvis; it is handled by the standard
           elvis.ini file.

      lib/elvis.brf
           This file contains EX commands which are executed Before Reading
           a File.  Typically this is used to distinguish a binary file from
           a text file by examining the file name extension of the file.
           The "readeol" option is then set accordingly.

      lib/elvis.arf
           This file contains EX commands which are executed After Reading a
           File.  If the current directory doesn't contain an elvis.arf
           file, then Elvis searches through the ELVISPATH for the file.
           Typically, this is used to set the bufdisplay option for a
           buffer, based on the file name extension of the file.

      lib/elvis.bwf
           This file contains EX commands which are executed Before Writing
           a File.  Typically, lib/elvis.bwf is used to perform an RCS
           "checkout" command before writing a file.

      lib/elvis.lat
           This contains a series of ":digraph" commands which set up the
           digraph table appropriately for the ISO Latin-1 symbol set.  The
           lib/elvis.ini file executes this script during initialization,
           except under OS/2, MS-DOS, or text-mode Win32.

      lib/elvis.pc8
           This contains a series of ":digraph" commands which set up the
           digraph table appropriately for the PC-8 symbol set.  This is the
           normal symbol set for MS-DOS, OS/2, and text-mode Win32 (although
           the graphical Win32 uses lib/elvis.lat).  The lib/elvis.ini file
           executes this script during initialization under MS-DOS.

      lib/elvis.msg
           This file's data is used for mapping the Elvis' terse error
           messages into verbose messages.

      lib/elvistrs.msg
           Elvis doesn't use this file directly; it is simply meant to serve
           as a resource from which you can extract the terse form of one of
           elvis' messages; you can then add the terse form and your own
           custom verbose form to the lib/elvis.msg file.





                                    - 9 -      Formatted:  December 26, 2024






 elvis(1)                                                           elvis(1)




      lib/elvis.syn
           This file controls how Elvis' "syntax" display mode highlights
           the text for a given language.

      lib/elvis.x11
           This file contains a series of ex command.  This file is sourced
           by lib/elvis.ini if Elvis is using its X11 user interface.  It
           configures up the toolbar and default colors.

      lib/elvis.ali
           This contains a set of aliases.  If your copy of Elvis is
           configured to support aliases (i.e., if it isn't the MS-DOS
           version) then these aliases will be loaded automatically.  They
           are partly intended to serve as examples of what aliases can do
           and how to write them, but mostly these aliases are intended to
           be truly useful.  To see a list of the aliases, give the command
           ":alias".

      lib/elvis*.html
           These files contain the online documentation.

      lib/*.man
           These contain the man pages -- shorter summaries of the programs,
           with descriptions of the command-line flags.

      guix11/*.xpm and guix11/elvis.xbm
           These contain icon images for use with X-windows.  The
           "elvis.xbm" image is a 2-color bitmap, and it is compiled into
           Elvis.  The other files, such as "elvis.xpm," contain color
           images.  The "insticon.sh" shell script (which is invoked as part
           of the "make install" operation) tries to copy these into
           appropriate directories.

 SEE ALSO
      ex(1), vi(1), ctags(1)

      You should also view the on-line documentation, via ":help".

 AUTHOR
      Steve Kirkendall
      kirkenda@cs.pdx.edu













                                   - 10 -      Formatted:  December 26, 2024