# vile(1)

## NAME

           vile, xvile, uxvile, lxvile - VI Like Emacs

## SYNOPSIS

           vile  [@cmdfile] [+command] [-FhIiRVv] [-gNNN] [-kcryptkey] [-spattern]
           [-ttag] [filename]...

## DESCRIPTION

           vile is a text editor.  This man page is fairly terse.   More  informa-
           tion  can  be  obtained  from  the internal help, available with the -h
           option or by using the ":help" command from within vile.

           xvile is the same text editor, built as an X-windows application,  with
           fully integrated mouse support, scrollbars, etc.

           uxvile  is a wrapper around xvile which invokes the latter program with
           the correct locale environment required to use a unicode character  set
           and the "UXVile" X resource class set.

           lxvile  is a wrapper around xvile which invokes the latter program with
           a font chosen to match the current locale environment.

## SPIRIT

           vile retains the "finger-feel", if you will, of vi,  while  adding  the
           multiple  buffer  and  multiple window features of emacs and other edi-
           tors.  It is definitely not a vi clone, in that some substantial  stuff
           is  missing,  and  the  screen doesn't look quite the same.  The things
           that you tend to type over and over probably work.   Things  done  less
           frequently,  like  configuring  a  startup file, are somewhat (or very,
           depending on how ambitious you are) different.  But what  matters  most
           is that one's "muscle memory" does the right thing to the text in front
           of you, and that is what vile tries to do for vi users.

## OPTIONS

           Vile accumulates most options into two temporary buffers [vileinit] and
           [vileopts].   The former is executed before reading the first file into
           a buffer.  The latter is executed after reading the first file  into  a
           buffer.  Each is removed after executing (unless an error is detected).

### COMMON OPTIONS

           -ccommand
                  vile will begin the session on the first file invoking the given
                  command.  Legal commands include many ex-style  commands,  vile-
                  commands,  etc.,  subject to shell quoting.  This option is used
                  most often with a line number or search pattern.  For example

                     vile -c123 filename
                     vile -c/pattern filename

                  They correspond to ex-style commands on the given file:

                     :123
                     :/pattern

                  These are more verbose equivalents:

                     vile -c'123 goto-line' filename
                     vile -c'search-forward /pattern/' filename

                  You can use more than one command, e.g.,

                     vile -c'123' -c'10*goto-col' filename

                  to put the cursor on column 10 of line 123.  The  "*"  (or  ":")
                  separates  the repeat count (used by goto-col) from the line- or
                  range-specification used by line-oriented commands.

           @cmdfile
                  vile will run the specified file as its startup file,  and  will
                  bypass  any  normal  startup file (i.e.  .vilerc) or environment
                  variable (i.e.  $VILEINIT).  This is added to [vileinit].

           -D     tells vile to trace the results of macro execution into the hid-
                  den buffer "[Trace]".

           -e | -E
                  Invokes  vile  in  "noview"  mode - changes are permitted to any
                  buffer while in this mode (see "-v").

           -F     will run the syntax filter that applies to each filename on  the
                  command-line, and write the attributed text to the standard out-
                  put.

           -h     Invokes vile on the helpfile.

           -i | -I
                  Tells vile to use vileinit.rc (which is installed) as  the  ini-
                  tialization  file.  If you do not have a .vilerc, vile will make
                  a  short  one  that  sources  vileinit.rc  This  is   added   to
                  [vileinit].

           -k cryptkey | -K cryptkey
                  Specifies  an  encryption/decryption key.  See below for further
                  discussion.  This option applies only  locally  to  the  buffers
                  named on the command-line, and is not added to [vileopts], since
                  that is executed too late.

           -R     Invokes vile in "readonly" mode - no writes are permitted  while
                  in  this  mode.   (This  will also be true if vile is invoked as
                  view, or if "readonly" mode is set in the startup file.)

           -s pattern | -S pattern
                  In the first file, vile will execute an initial search  for  the
                  given pattern.  This is not the same as "-c/pattern", since that
                  positions the cursor to the line  matching  the  pattern.   This
                  option positions the cursor within the line.

           -t tag
                  vile will edit the correct file and move the cursor to the loca-
                  tion of the tag.  This requires  a  tagsfile  created  with  the
                  ctags(1)  command.  The option -T is equivalent, and can be used
                  when X11 option parsing eats the -t.

           -U     overrides the $system-crlf variable, making new buffers start in
                  dos mode.

           -u     overrides the $system-crlf variable, making new buffers start in
                  nodos mode.

           -v     Invokes vile in "view" mode - no changes are  permitted  to  any
                  buffer while in this mode (see "-e").

           -V     vile will report its version number.

           -25 -43 -50 -60
                  On  PC systems you may be able to set the initial screen resolu-
                  tion from the command line.

           -80 -132
                  On VMS systems you may be able to set the initial screen resolu-
                  tion from the command line.  See vile.hlp for details.

### X11 OPTIONS

           xvile-specific  command-line options are detailed in the help file (see
           "Standard X command line arguments").  The standard  ones  (e.g.  -dis-
           play, -fn, -geometry, -name, etc.) are all supported.

### OBSOLETE OPTIONS

           vile  recognizes  some options which duplicate the functionality of the
           POSIX "-c" option:

           +command
                  This has the same effect as "-ccommand".

           -g NNN | -G NNN
                  This has the same effect as "-cNNN".  vile will begin  the  ses-
                  sion on the first file jumping to the given line number NNN.

## INVOCATION

           vile  will  edit  the files specified on the command line.  If no files
           are specified, and standard input is not connected to a terminal,  then
           vile  will  bring  up  a buffer containing the output of the pipe it is
           connected to, and will re-open /dev/tty for  commands.   Files  (except
           for the first) are not actually read into buffers until "visited".  All
           buffers are kept in memory: machines with not much memory or swap space
           may have trouble with this.

## STARTUP

           If  the @cmdfile option is given, then the file given as "cmdfile" will
           be run before any files are loaded.  If no @  option  appears,  startup
           commands will be taken from the user's VILEINIT variable, if it is set,
           from the file .vilerc in the current directory, if it exists,  or  from
           $HOME/.vilerc,  as  a  last  resort.  See the help file for examples of
           what sorts of things might go into these command files.

## COMMANDS

           Please refer to the help available within vile for  vile-specific  com-
           mands.   (That  document, however, assumes familiarity with vi.)  Short
           descriptions of each vile command may be obtained with the  ":describe-
           function"  and  ":describe-key"  commands.   All commands may be listed
           with ":show-commands".

           Additional documentation on writing macros using the internal scripting
           language can be found in the file macros.doc, distributed with the vile
           source.

## RELATED PROGRAMS

           vile may also be built and installed as xvile, in which case it behaves
           as  a  native X Windows application, with scrollbars, better mouse sup-
           port, etc.  The help file has more information on this.

           There is a program distributed with the vile source  which  is  usually
           installed  as  vile-manfilt.  (Two versions of the source for vile-man-
           filt are available, in C (manfilt.c) and in Perl (manfilt.pl).)  It may
           be  used  in conjunction with vile or xvile (with the help of the macro
           in the file manpage.rc) to filter and view system manual pages.   xvile
           will even (with your font set properly) display certain portions of the
           manual page text in bold or italics as appropriate.  See the help  file
           for details.

           Likewise,  there are several language filters, e.g., vile-c-filt for C,
           which can embolden, underline, or perform coloring  on  program  source
           code.  Again, see the help file for more information.

## ENCRYPTION

           The  program  vile-crypt can be used to encrypt/decrypt files using the
           same algorithm as microEmac's internal crypt algorithm.  This  program,
           which  uses public domain code written by by Dana Hoggatt, is no longer
           used in vile, though it is provided for compatibility.

           vile currently uses the crypt(3)  function  for  encryption/decryption,
           which  is  available  on  most Unix systems.  This ensures that vile is
           able to read and write files compatibly with vi  (but  not  vim,  which
           uses  an  different  algorithm  derived  from  info-zip).  The editor's
           encryption/decryption key can be specified on the command line with "-k
           key".   Text  to be encrypted can be specified as filenames on the com-
           mand line, or provided as the standard input.  On systems with  a  get-
           pass()  library  routine,  the user will be prompted for the encryption
           key if it is not given on the command  line.   To  accommodate  systems
           (such  as  linux) where the getpass() library routine is not interrupt-
           ible from the keyboard, entering a crypt-key password which ends in  ^C
           will cause the program to quit.  See the help file for more information
           on vile's encryption support, including a discussion of a collection of
           macros that interface with GNU's gpg package.

## ENVIRONMENT VARIABLES

           VILEINIT
                  Editor initialization commands in lieu of a startup file.  These
                  are copied into [vileinit], and executed.

           VILE_HELP_FILE
                  Override the name of the help file, normally ``vile.hlp''.

           VILE_LIBDIR_PATH
                  Augment $PATH when searching for a filter program.

           VILE_STARTUP_FILE
                  Override the name of the startup file, normally ``.vilerc''  (or
                  ``vile.rc'' for non-UNIX systems).

           VILE_STARTUP_PATH
                  Override the search path for the startup and help files.

## SEE ALSO

           Your favorite vi document, the file macros.doc, and the vile help page,
           available with the -h option or as the text file vile.hlp.

## DEBTS and CREDITS

           vile was originally built from a copy of microEmacs, so a large debt of
           gratitude  is  due  to the developers of that program.  A lot of people
           have helped with code and bug reports on vile.  Names are named at  the
           bottom of the help file.

## AUTHORS

           vile was created by Paul Fox, Tom Dickey, and Kevin Buettner.

## BUGS

           The  "VI Like Emacs" joke isn't really funny.  It only sounds that way.
           :-)   Other suspicious behavior should  be  reported  via  the  project
           mailing list, or via the web-based bug reporting system.  Both of these
           are available here:

           https://savannah.nongnu.org/projects/vile

                                                                           VILE(1)