Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
VIS(1)			     General Commands Manual			  VIS(1)

NAME
     vis -- a highly efficient text editor

SYNOPSIS
     vis [-v] [+command] [--] [files ...]

DESCRIPTION
     vis  is  a  highly  efficient  screen-oriented  text  editor  combining the
     strengths of both vi(m) and sam.  This manual page is  intended  for  users
     already  familiar	with vi/sam.  Anyone else should almost certainly read a
     good tutorial on either editor before this manual page.  The following  op-
     tions are available:

     -v      Print version information and exit.

     +command
	     Execute command after loading file.

     --      Denotes  the end of the options.  Arguments after this will be han-
	     dled as a file name.

     The special file - instructs vis to read from standard input in which  case
     :wq will write to standard output, thereby enabling usage as an interactive
     filter.

     If  standard  input  is redirected and all input is consumed, vis will open
     /dev/tty to gather further commands.  Failure to do so results  in  program
     termination.

   Selections
     vis  uses	selections  as	core  editing primitives.  A selection is a non-
     empty, directed range with two endpoints called cursor and anchor.   A  se-
     lection  can  be anchored in which case the anchor remains fixed while only
     the position of the cursor is adjusted.  For non-anchored	selections  both
     endpoints are updated.  A singleton selection covers one character on which
     both  cursor  and	anchor	reside.  There always exists a primary selection
     which remains visible (i.e. changes to its position will adjust  the  view-
     port).

   Modes
     vis employs the same modal editing approach as vi.  It supports a `normal',
     `operator	pending',  `insert',  `replace'  and  `visual' (in both line and
     character wise variants) mode.  The visual block and ex modes are	deliber-
     ately not implemented, instead vis has built in support for multiple selec-
     tions and an interactive variant of the structural regular expression based
     command language of sam.

     In  normal  mode  all  selections	are non-anchored and reduced to a single
     character.

   Undo/Redo
     vis uses an undo tree to keep track of text revisions.  The  u  (undo)  and
     <C-r>  (redo)  commands  can  be  used  to traverse the tree along the main
     branch.  g+ and g-  traverse  the	history  in  chronological  order.   The
     :earlier  and :later commands provide means to restore the text to an arbi-
     trary state.

   Marks
     A mark associates a symbolic name to a set of selections.	A stored  selec-
     tion  becomes invalid when its delimiting boundaries change in the underly-
     ing buffer.  If said changes are later undone the mark becomes valid again.
     m sets a mark, M restores it.  For example, 'am sets the mark a  while  'aM
     restores  it.   Use  of  m  or M without specifying a mark uses the default
     mark.

     Available marks are:

     ''      default mark

     '^      active selections when leaving visual mode

     'a-'z   general purpose marks

     No marks across files are supported.  Marks are not preserved over  editing
     sessions.

   Jump list
     A	per  window,  fixed sized file local jump list exists which stores marks
     (i.e. set of selections).

     g<      jump backward

     g>      jump forward

     gs      save currently active selections

   Registers
     Registers are named lists of text.  Uninitialized register slots default to
     the empty string.	Available registers are:

     ""      default register

     "a-"z   general purpose registers

     "A-"Z   append to corresponding general purpose register

     "*, "+  system clipboard integration via shell script vis-clipboard(1)

     "0      yank register, most recently yanked range

     "1-"9

     "&      sub expression matches of most recent x or y command

     "/      search register, most recently used search pattern

     ":      command register, most recently executed command

     "_      black hole (/dev/null) register, ignore content is always empty

     "#      selection number (readonly)

     If no explicit register is specified the default register is used.

   Macros
     The general purpose registers "a-"z can be used to record macros.	Use  one
     of  "A-"Z to append to an existing macro.	q starts a recording, @ plays it
     back.  @@ refers to the most recently recorded macro.  @: repeats the  last
     :-command.  @/  is equivalent to n in normal mode.  These operations always
     use the first register slot.

   Encoding, Tab and Newline handling
     vis always assumes the input file to be UTF-8 encoded with \n line endings.
     If you wish to edit files with legacy encodings or non-Unix  line	endings,
     use  iconv(1) and dos2unix(1) to convert them as needed.  <Tab> can option-
     ally be expanded to a configurable number of spaces (see "SET OPTIONS").

   Mouse support
     The mouse is currently not used at all.

SAM COMMANDS
     vis supports an interactive variant of the  structural  regular  expression
     based command language introduced by sam(1).

   Regular expressions
     vis  currently  defers  regular expression matching to the underlying C li-
     brary.  It uses what POSIX refers to as "Extended Regular	Expressions"  as
     described	in  regex(7).	The anchors ^ and $ match the beginning / end of
     the range they are applied to.  Additionally \n and \t may be used to refer
     to newlines and tabs, respectively.  The . atom matches any  character  ex-
     cept  newline.   The  empty regular expression stands for the last complete
     expression encountered.

   Addresses
     An address identifies a substring (or range) in a file.  In  the  following
     "character  n"  means the null string after the n-th character in the file,
     with 1 the first character in the file.  "Line n"	means  the  n-th  match,
     starting at the beginning of the file, of the regular expression ".*\n?".

     All windows always have at least one current substring which is the default
     address.	In  sam  this is referred to as dot.  In vis multiple "dots" (or
     selections) can exist at the same time.

   Simple addresses
     #n      The empty string after character n; #0  is  the  beginning  of  the
	     file.

     n	     Line n.

     /regexp/

     ?regexp?
	     The substring that matches the regular expression, found by looking
	     towards  the end (/) or beginning (?) of the file.  The search does
	     not wrap around when hitting the end (start) of the file.

     0	     The string before the first full line.  This is not necessarily the
	     null string; see + and - below.

     $	     The null string at the end of the file.

     .	     Dot, the current range.

     'm      The mark m in the file.

   Compound addresses
     In the following, a1 and a2 are addresses.

     a1+a2   The address a2 evaluated starting at the end of a1.

     a1-a2   The address a2 evaluated looking the reverse direction starting  at
	     the beginning of a1.

     a1,a2   The  substring from the beginning of a1 to the end of a2.	If a1 is
	     missing, 0 is substituted.  If a2 is missing, $ is substituted.

     a1;a2   Like a1,a2 but with a2 evaluated at the end of, and range	set  to,
	     a1.

     The  operators  +	and  - are high precedence, while , and ; are low prece-
     dence.

     In both + and - forms, if a2 is a line or character address with a  missing
     number,  the number defaults to 1.  If a1 is missing, . is substituted.  If
     both a1 and a2 are present and distinguishable, + may be elided.  a2 may be
     a regular expression; if it is delimited by ? characters, the effect of the
     + or - is reversed.  The % sign is an alias for , and hence 0,$.  It is  an
     error for a compound address to represent a malformed substring.

   Commands
     In  the  following, text demarcated by slashes represents text delimited by
     any printable ASCII character except alphanumerics.  Any number of trailing
     delimiters may be elided, with multiple  elisions	then  representing  null
     strings,  but the first delimiter must always be present.	In any delimited
     text, newline may not appear literally; \n and \t may be typed for  newline
     and  tab;	\/ quotes the delimiter, here /.  An ampersand & and \n, where n
     is a digit (1-9) are replaced by the corresponding register.  Backslash  is
     otherwise interpreted literally.

     Most  commands  may  be prefixed with an address to indicate their range of
     operation.  If a command takes an address and none is supplied,  a  default
     address  is  used.  In normal mode this equates to the character the selec-
     tion is currently over.  If only one selection exists x and  y  default  to
     the  whole file 0,$.  In normal mode the write commands w and wq always ap-
     ply to the whole file.  Commands are executed once for every selection.  In
     visual mode the commands are applied to every selection as if an implicit x
     command, matching the existing selections, was present.

     In the description, "range" is used to represent whatever address	is  sup-
     plied.

     Many commands create new selections as a side effect when issued from a vi-
     sual mode.  If so, it is always to the aresulta of the change: the new text
     for  an insertion, the empty string for a deletion, the command output of a
     filter etc.  If after a successful command execution no selections  remain,
     the editor will switch to normal mode, otherwise it remains in visual mode.
     This allows interactive refinements of ranges.

   Text commands
     a[count]/text/
	     Insert the text count times into the file after the range.

	     May also be written as

		    a
		    lines
		    of
		    text
		    .

     c or i  Same  as  a,  but	c  replaces the text, while i inserts before the
	     range.

     d	     Delete the text in range.

   Display commands
     p	     Create a new selection for the range.

   I/O commands
     e[!] [file name]
	     Replace the file by the contents of the named external file.  If no
	     file name is given, reload file from disk.

     r file name
	     Replace the text in the range by the contents of the named external
	     file.

     w[!] [file name]
	     Write the range (default 0,$) to the named external file.

     wq[!] [file name]
	     Same as w, but close file afterwards.

     If the file name argument is absent from any of  these,  the  current  file
     name is used.  e always sets the file name, w will do so if the file has no
     name.   Forcing  the  e  command  with  ! will discard any unsaved changes.
     Forcing w will overwrite the file on disk even if it  has	been  externally
     modified since loading it.  Write commands with a non-default addresses and
     no file name are destructive and need always to be forced.

     < shell command
	     Replace the range by the standard output of the shell command.

     > shell command
	     Sends the range to the standard input of the shell command.

     | shell command
	     Send  the	range to the standard input, and replace it by the stan-
	     dard output, of the shell command.

     ! shell command
	     Run interactive shell command, redirect keyboard input to it.

     cd directory
	     Change working directory.	If no directory is specified,  $HOME  is
	     used.

     In  any  of  <, >, |, or !, if the shell command is omitted, the last shell
     command (of any type) is substituted.  Unless the file being edited is  un-
     named,  all these external commands can refer to its absolute path and file
     name through the vis_filepath and vis_filename environment variables.

   Loops and conditionals
     x/regexp/ [command]
	     For each match of the regular expression in the range, run the com-
	     mand with range set to the match.	If the	regular  expression  and
	     its  slashes  are	omitted, /.*\n/ is assumed.  Null string matches
	     potentially occur before every character of the range  and  at  the
	     end of the range.

	     The  "1-"9  and  "& registers are updated with the (sub) expression
	     matches of the pattern.

     y/regexp/ [command]
	     Like x, but run the command for each substring  that  lies  before,
	     between,  or after the matches that would be generated by x.  There
	     is no default behavior.  Null substrings potentially  occur  before
	     every character in the range.

     X/regexp/ command
	     For  each file whose file name matches the regular expression, make
	     that the current file and run the command.  If  the  expression  is
	     omitted, the command is run in every file.

     Y/regexp/ command
	     Same  as X, but for files that do not match the regular expression,
	     and the expression is required.

     g[count][/regexp/] command

     v[count][/regexp/] command
	     If the count range contains (g) or does not contain (v) a match for
	     the expression, run command on the range.

	     The count specifier has the following format, where n and m are in-
	     tegers denoting the ranges.

	     n,m     The closed interval from n to m.  If n  is  missing,  1  is
		     substituted.   If m is missing, ^a is substituted.	Negative
		     values are interpreted relative to the last range.

	     %n      Matches every n-th range.

     These may be nested arbitrarily deeply.  An empty command in an x or y  de-
     faults to p.  X, Y, g and v do not have defaults.

   Grouping and multiple changes
     Commands  may  be grouped by enclosing them in curly braces.  Semantically,
     the opening brace is like a command: it takes  an	(optional)  address  and
     runs  each  sub-command  on the range.  Commands within the braces are exe-
     cuted sequentially, but changes made by one  command  are	not  visible  to
     other commands.

     When  a  command  makes a number of changes to a file, as in x/re/ c/text/,
     the addresses of all changes are computed based on the initial  state.   If
     the  changes  are non-overlapping, they are applied in the specified order.
     Conflicting changes are rejected.

     Braces may be nested arbitrarily.

VI(M) KEY BINDINGS
     In the following sections angle brackets are used to denote  special  keys.
     The  prefixes  C-,  S-, and M- are used to refer to the <Ctrl>, <Shift> and
     <Alt> modifiers, respectively.

     All active key bindings can be listed at runtime using the :help command.

   Operators
     Operators perform a certain operation on a text range indicated by either a
     motion, a text object or an existing selection.

     When used in normal mode,	the  following	operators  wait  for  a  motion,
     putting vis into operator pending mode.
     c		 change, delete range and enter insert mode
     d		 delete, cut range to register
     <		 shift-left, decrease indent
     >		 shift-right, increase indent
     y		 yank, copy range to register

     When used in normal mode, the following actions take effect immediately.
     =		 format, filter range through fmt(1)
     gu 	 make lowercase
     gU 	 make uppercase
     g~ 	 swap case
     J		 join lines, insert spaces in between
     gJ 	 join lines remove any delimiting white spaces
     p		 put register content after cursor
     P		 put register content before cursor

   Motions
     Motions  take  an	initial  file position and transform it to a destination
     file position, thereby defining a range.

     0		 start of line
     b		 previous start of a word
     B		 previous start of a WORD
     $		 end of line
     e		 next end of a word
     E		 next end of a WORD
     F<char>	 to next occurrence of <char> to the left
     f<char>	 to next occurrence of <char> to the right
     ^		 first non-blank of line
     g0 	 begin of display line
     g$ 	 end of display line
     ge 	 previous end of a word
     gE 	 previous end of a WORD
     gg 	 begin of file
     G		 goto line or end of file
     gj 	 display line down
     gk 	 display line up
     gh 	 codepoint left
     gl 	 codepoint right
     gH 	 byte left
     gL 	 byte right
     g_ 	 last non-blank of line
     gm 	 middle of display line
     g| 	 goto column
     h		 char left
     H		 goto top/home line of window
     j		 line down
     k		 line up
     l		 char right
     L		 goto bottom/last line of window
     %		 match bracket, quote or backtick
     }		 next paragraph
     )		 next sentence
     N		 repeat last search backwards
     n		 repeat last search forward
     [{ 	 previous start of block
     ]} 	 next start of block
     [( 	 previous start of parentheses pair
     ]) 	 next start of parentheses pair
     {		 previous paragraph
     (		 previous sentence
     ;		 repeat last to/till movement
     ,		 repeat last to/till movement but in opposite direction
     #		 search word under selection backwards
     *		 search word under selection forwards
     T<char>	 till before next occurrence of <char> to the left
     t<char>	 till before next occurrence of <char> to the right
     ?pattern	 to next match of pattern in backward direction
     /pattern	 to next match of pattern in forward direction
     w		 next start of a word
     W		 next start of a WORD

   Text objects
     Text objects take an initial file position and  transform	it  to	a  range
     where  the  former does not necessarily have to be contained in the latter.
     All of the following text objects are implemented in an inner variant (pre-
     fixed with i) where the surrounding white space  or  delimiting  characters
     are  not part of the resulting range and a normal variant (prefixed with a)
     where they are.

     w		 word
     W		 WORD
     s		 sentence
     p		 paragraph
     [, ], (, ), {, }, <, >, ", ', `
		 block enclosed by these symbols

     Further available text objects include:
     gn 	 matches the last used search term in forward direction
     gN 	 matches the last used search term in backward direction
     al 	 current line
     il 	 current line without leading and trailing white spaces

   Multiple Selections
     vis supports multiple selections with immediate visual feedback.  There al-
     ways exists one primary selection located within  the  current  view  port.
     Additional selections can be created as needed.  If more than one selection
     exists, the primary one is styled differently.

     To manipulate selections use in normal mode:

     <C-k>	 create count new selections on the lines above
     <C-M-k>	 create count new selections on the lines above the first selec-
		 tion
     <C-j>	 create count new selections on the lines below
     <C-M-j>	 create  count new selections on the lines below the last selec-
		 tion
     <C-p>	 remove primary selection
     <C-n>	 select word the selection is currently over, switch  to  visual
		 mode
     <C-u>	 make the count previous selection primary
     <C-d>	 make the count next selection primary
     <C-c>	 remove the count selection column
     <C-l>	 remove all but the count selection column
     <Tab>	 try to align all selections on the same column
     <Escape>	 dispose all but the primary selection

     The visual modes were enhanced to recognize:

     I		 create a selection at the start of every selected line
     A		 create a selection at the end of every selected line
     <Tab>	 left align selections by inserting spaces
     <S-Tab>	 right align selections by inserting spaces
     <C-a>	 create  new  selections everywhere matching current word or se-
		 lection
     <C-n>	 create new selection and select next word matching current  se-
		 lection
     <C-x>	 clear (skip) current selection, but select next matching word
     <C-p>	 remove primary selection
     <C-u> <C-k>
		 make the count previous selection primary
     <C-d> <C-j>
		 make the count next selection primary
     <C-c>	 remove the count selection column
     <C-l>	 remove all but the count selection column
     +		 rotate selections rightwards count times
     -		 rotate selections leftwards count times
     _		 trim selections, remove leading and trailing white space
     o		 flip selection direction, swap cursor and anchor
     <Escape>	 clear all selections, switch to normal mode

     In insert and replace mode:

     <S-Tab>	 align all selections by inserting spaces

     Selections  can  be manipulated using set operations.  The first operand is
     the currently active selections while the second  can  be	specified  as  a
     mark.   For  example,  'a| produces the union of the mark a and the current
     selection.  Use of set operations without specifying a mark use the default
     mark as the first operand.

     |		 set union
     &		 set intersection
     \		 set minus
     ~		 set complement

VI(M) COMMANDS
     Any unique prefix can be used to abbreviate a command.

   File and Window management
     A file must be opened in at least one window.  If the last window	display-
     ing  a  certain  file is closed all unsaved changes are discarded.  Windows
     are equally sized and can be displayed in rows (horizontally) or in columns
     (vertically).  The <C-w> h, <C-w> j, <C-w> k and <C-w> l key  mappings  can
     be used to switch between windows.

     :new    open an empty window, arranged as a new row (horizontally)

     :vnew   open an empty window, arranged as a new column (vertically)

     :open[!] [file name]
	     open a new window, displaying file name if given

     :split [file name]
	     split window into rows (horizontally)

     :vsplit [file name]
	     split window into columns (vertically)

     :q[!] [exit code]
	     close currently focused window

     :qall[!] [exit code]
	     close all windows, terminate editor with exit code (defaults to 0)

     Commands taking a file name will invoke the vis-open(1) utility, if given a
     file pattern or directory.

   Runtime key mappings
     vis supports global as well as window local run time key mappings which are
     always evaluated recursively.

     :map[!] mode lhs rhs
	     add a global key mapping

     :map-window[!] mode lhs rhs
	     add a window local key mapping

     :unmap mode lhs
	     remove a global key mapping

     :unmap-window mode lhs
	     remove a window local key mapping

     In the above mode refers to one of `normal', `insert', `replace', `visual',
     `visual-line'  or	`operator-pending'; lhs refers to the key to map and rhs
     is a key action or alias.	An existing mapping may be overridden by forcing
     the map command by specifying !.

     Because key mappings are always recursive, doing something like:

	   :map! normal j 2j

     will not work because it would enter an endless loop.   Instead,  vis  uses
     pseudo keys referred to as key actions which can be used to invoke a set of
     available	editor functions.  :help lists all currently active key bindings
     as well as all available symbolic keys.

   Keyboard Layout Specific Mappings
     In order to facilitate usage of non-latin keyboard layouts, vis allows  one
     to map locale specific keys to their latin equivalents by means of the

	   :langmap locale-keys latin-keys

     command.	As  an	example, the following maps the movement keys in Russian
     layout:

	   :langmap ~NDh3/4Dh>>Dh' hjkl

     If the key sequences have not the same length, the remainder of the  longer
     sequence will be discarded.

     The  defined  mappings  take effect in all non-input modes, i.e. everywhere
     except in insert and replace mode.

   Undo/Redo
     :earlier [count]
	     revert to older text state

     :later [count]
	     revert to newer text state

     If count is suffixed by either of d (days), h (hours),  m	(minutes)  or  s
     (seconds)	it  is interpreted as an offset from the current system time and
     the closest available text state is restored.

SET OPTIONS
     There are a small number of options that may be set (or  unset)  to  change
     the  editor's  behavior using the :set command.  This section describes the
     options, their abbreviations and their default values.  Boolean options can
     be toggled by appending ! to the option name.

     In each entry below, the first part of the tag line is the full name of the
     option, followed by any  equivalent  abbreviations.   The	part  in  square
     brackets is the default value of the option.

     shell ["/bin/sh"]
	     User  shell to use for external commands, overrides SHELL and shell
	     field of password database /etc/passwd

     escdelay [50]
	     Milliseconds to wait before deciding  whether  an	escape	sequence
	     should be treated as an <Escape> key.

     tabwidth, tw [8]
	     Display  width of a tab and number of spaces to use if expandtab is
	     enabled.

     autoindent, ai [off]
	     Automatically indent new lines by copying white space from previous
	     line.

     expandtab, et [off]
	     Whether <Tab> should be expanded to tabwidth spaces.

     number, nu [off]
	     Display absolute line numbers.

     relativenumbers, rnu [off]
	     Display relative line numbers.

     cursorline, cul [off]
	     Highlight line primary cursor resides on.

     colorcolumn, cc [0]
	     Highlight a fixed column.

     horizon [32768]
	     How many bytes back the lexer will look to synchronize parsing.

     theme ["default-16" or "default-256"]
	     Color theme to use, name without file  extension.	 Loaded  from  a
	     themes/ sub directory of the paths listed in the "FILES" section.

     syntax [auto]
	     Syntax highlighting lexer to use, name without file extension.

     showtabs [off]
	     Whether to display replacement symbol instead of tabs.

     shownewlines [off]
	     Whether to display replacement symbol instead of newlines.

     showspaces [off]
	     Whether to display replacement symbol instead of blank cells.

     showeof [on]
	     Whether  to  display  replacement symbol for lines after the end of
	     the file.

     savemethod [auto]
	     How the current file should be saved, atomic which  uses  rename(2)
	     to  atomically  replace  the file, inplace which truncates the file
	     and then rewrites it or auto which tries the former before  falling
	     back  to  the  latter.   The  rename  method  fails  for  symlinks,
	     hardlinks, in case of insufficient directory  permissions	or  when
	     either  the  file owner, group, POSIX ACL or SELinux labels can not
	     be restored.

     loadmethod [auto]
	     How existing files should be loaded, read	which  copies  the  file
	     content  to an independent in-memory buffer, mmap which memory maps
	     the file from disk and uses OS capabilities  as  caching  layer  or
	     auto which tries the former for files smaller than 8Mb and the lat-
	     ter  for  lager  ones.  WARNING: modifying a memory mapped file in-
	     place will cause data loss.

     layout ["v" or "h"]
	     Whether to use vertical or horizontal layout.

     ignorecase, ic [off]
	     Whether to ignore case when searching.

     wrapcolumn, wc [0]
	     Wrap lines at minimum of window width and wrapcolumn.

     breakat, brk [""]
	     Characters which might cause a word wrap.

COMMAND and SEARCH PROMPT
     The command and search prompt as opened by :, /, or ? is implemented  as  a
     single  line  height window, displaying a regular file whose editing starts
     in insert mode.  <Escape> switches to normal mode, a second  <Escape>  can-
     cels  the	prompt.   <Up> enlarges the window, giving access to the command
     history.  <C-v> <Enter> inserts a literal new line thus enabling  multiline
     commands.	<Enter> executes the visual selection if present, or else every-
     thing  in	the  region spawned by the selection position and the delimiting
     prompt symbols at the start of adjacent lines.

CONFIGURATION
     vis uses Lua for configuration  and  scripting  purposes.	 During  startup
     visrc.lua	(see  the  "FILES"  section) is sourced which can be used to set
     personal configuration options.  As an example the  following  will  enable
     the display of line numbers:

	   vis:command('set number')

ENVIRONMENT
     VIS_PATH
	     The default path to use to load Lua support files.

     HOME    The home directory used for the cd command if no argument is given.

     TERM    The  terminal  type  to use to initialize the curses interface, de-
	     faults to xterm if unset.

     SHELL   The command shell to use for I/O related commands like !, >, <  and
	     |.

     XDG_CONFIG_HOME
	     The  configuration  directory  to use, defaults to $HOME/.config if
	     unset.

ASYNCHRONOUS EVENTS
     SIGSTOP
	     Suspend editor.

     SIGCONT
	     Resume editor.

     SIGBUS  An mmap(2) ed file got truncated, unsaved	file  contents	will  be
	     lost.

     SIGHUP

     SIGTERM
	     Restore  initial  terminal  state.   Unsaved  file contents will be
	     lost.

     SIGINT  When an interrupt occurs while an external command is being run  it
	     is terminated.

     SIGWINCH
	     The screen is resized.

FILES
     Upon  startup  vis will source the first visrc.lua configuration file found
     from these locations.  All actively used paths can be listed at runtime us-
     ing the :help command.

     *	 $VIS_PATH

     *	 The location of the vis binary  (on  systems  where  /proc/self/exe  is
	 available).

     *	 $XDG_CONFIG_HOME/vis  where  XDG_CONFIG_HOME refers to $HOME/.config if
	 unset.

     *	 /usr/local/etc/vis for a system-wide configuration provided by adminis-
	 trator.

     *	 /usr/local/share/vis or /usr/share/vis depending on the build	configu-
	 ration.

	 When creating a new visrc.lua be sure to copy the structure from here.

EXIT STATUS
     The vis utility exits 0 on success, and >0 if an error occurs.

EXAMPLES
     Use vis as an interactive filter.

	   $ { echo Pick your number; seq 1 10; } | vis - > choice

     Use the vis-open(1) based file browser to list all C language source files:

	   :e *.c

     Spawn background process and pipe range to its standard input:

	   :> { plumber <&3 3<&- & } 3<&0 1>&- 2>&-

SEE ALSO
     sam(1),  vi(1),  vis-clipboard(1),  vis-complete(1),  vis-digraph(1),  vis-
     menu(1), vis-open(1)

     A Tutorial for the Sam Command Language by Rob Pike

     The Text Editor sam by Rob Pike

     Plan 9 manual page for sam(1)

     Structural Regular Expressions by Rob Pike

     vi - screen-oriented (visual) display editor IEEE Std 1003.1 ("POSIX.1")

STANDARDS
     vis does not strive to be	IEEE  Std  1003.1  ("POSIX.1")	compatible,  but
     shares obvious similarities with the vi utility.

AUTHORS
     vis is written by Marc AndrA(C) Tanner <mat at brain-dump.org>

BUGS
     On some systems there already exists a vis binary, thus causing a name con-
     flict.

Vis 0.9 			January 14, 2017			  VIS(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=vise&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help