1VIS(1)                    BSD General Commands Manual                   VIS(1)
2

NAME

4     vis — a highly efficient text editor
5

SYNOPSIS

7     vis [-v] [+command] [--] [files ...]
8

DESCRIPTION

10     vis is a highly efficient screen-oriented text editor combining the
11     strengths of both vi(m) and sam.  This manual page is intended for users
12     already familiar with vi/sam.  Anyone else should almost certainly read a
13     good tutorial on either editor before this manual page.  The following
14     options are available:
15
16     -v      Print version information and exit.
17
18     +command
19             Execute command after loading file.
20
21     --      Denotes the end of the options.  Arguments after this will be
22             handled as a file name.
23
24     The special file - instructs vis to read from standard input in which
25     case :wq will write to standard output, thereby enabling usage as an
26     interactive filter.
27
28     If standard input is redirected and all input is consumed, vis will open
29     /dev/tty to gather further commands.  Failure to do so results in program
30     termination.
31
32   Selections
33     vis uses selections as core editing primitives.  A selection is a non-
34     empty, directed range with two endpoints called cursor and anchor.  A
35     selection can be anchored in which case the anchor remains fixed while
36     only the position of the cursor is adjusted.  For non-anchored selections
37     both endpoints are updated.  A singleton selection covers one character
38     on which both cursor and anchor reside.  There always exists a primary
39     selection which remains visible (i.e. changes to its position will adjust
40     the viewport).
41
42   Modes
43     vis employs the same modal editing approach as vi.  It supports a
44     ‘normal’, ‘operator pending’, ‘insert’, ‘replace’ and ‘visual’ (in both
45     line and character wise variants) mode.  The visual block and ex modes
46     are deliberately not implemented, instead vis has built in support for
47     multiple selections and an interactive variant of the structural regular
48     expression based command language of sam.
49
50     In normal mode all selections are non-anchored and reduced to a single
51     character.
52
53   Undo/Redo
54     vis uses an undo tree to keep track of text revisions.  The u (undo) and
55C-r⟩ (redo) commands can be used to traverse the tree along the main
56     branch.  g+ and g- traverse the history in chronological order.  The
57     :earlier and :later commands provide means to restore the text to an
58     arbitrary state.
59
60   Marks
61     A mark associates a symbolic name to a set of selections.  A stored
62     selection becomes invalid when its delimiting boundaries change in the
63     underlying buffer.  If said changes are later undone the mark becomes
64     valid again.  m sets a mark, M restores it.  For example, 'am sets the
65     mark a while 'aM restores it.
66
67     Available marks are:
68
69     ''      default mark
70
71     '^      active selections when leaving visual mode
72
73     'a'z   general purpose marks
74
75     No marks across files are supported.  Marks are not preserved over edit‐
76     ing sessions.
77
78   Jump list
79     A per window, fixed sized file local jump list exists which stores marks
80     (i.e. set of selections).
81
82     g<      jump backward
83
84     g>      jump forward
85
86     gs      save currently active selections
87
88   Registers
89     Registers are named lists of text.  Uninitialized register slots default
90     to the empty string.  Available registers are:
91
92     ""      default register
93
94     "a"z   general purpose registers
95
96     "A"Z   append to corresponding general purpose register
97
98     "*, "+  system clipboard integration via shell script vis-clipboard(1)
99
100     "0      yank register, most recently yanked range
101
102     "1"9
103
104     "&      sub expression matches of most recent x or y command
105
106     "/      search register, most recently used search pattern
107
108     ":      command register, most recently executed command
109
110     "_      black hole (/dev/null) register, ignore content is always empty
111
112     "#      selection number (readonly)
113
114     If no explicit register is specified the default register is used.
115
116   Macros
117     The general purpose registers "a"z can be used to record macros.  Use
118     one of "A"Z to append to an existing macro.  q starts a recording, @
119     plays it back.  @@ refers to the most recently recorded macro.  @:
120     repeats the last :-command. @/ is equivalent to n in normal mode.  These
121     operations always use the first register slot.
122
123   Encoding, Tab and Newline handling
124     vis always assumes the input file to be UTF-8 encoded with \n line end‐
125     ings.  If you wish to edit files with legacy encodings or non-Unix line
126     endings, use iconv(1) and dos2unix(1) to convert them as needed.  ⟨Tab
127     can optionally be expanded to a configurable number of spaces (see SET
128     OPTIONS).
129
130   Mouse support
131     The mouse is currently not used at all.
132

SAM COMMANDS

134     vis supports an interactive variant of the structural regular expression
135     based command language introduced by sam(1).
136
137   Regular expressions
138     vis currently defers regular expression matching to the underlying C
139     library.  It uses what POSIX refers to as “Extended Regular Expressions”
140     as described in regex(7).  The anchors ^ and $ match the beginning / end
141     of the range they are applied to.  Additionally \n and \t may be used to
142     refer to newlines and tabs, respectively.  The . atom matches any charac‐
143     ter except newline.  The empty regular expression stands for the last
144     complete expression encountered.
145
146   Addresses
147     An address identifies a substring (or range) in a file.  In the following
148     “character n” means the null string after the n-th character in the file,
149     with 1 the first character in the file.  “Line n” means the n-th match,
150     starting at the beginning of the file, of the regular expression “.*\n?”.
151
152     All windows always have at least one current substring which is the
153     default address.  In sam this is referred to as dot.  In vis multiple
154     “dots” (or selections) can exist at the same time.
155
156   Simple addresses
157     #n      The empty string after character n; #0 is the beginning of the
158             file.
159
160     n       Line n.
161
162     /regexp/
163
164     ?regexp?
165             The substring that matches the regular expression, found by look‐
166             ing towards the end (/) or beginning (?) of the file.  The search
167             does not wrap around when hitting the end (start) of the file.
168
169     0       The string before the first full line.  This is not necessarily
170             the null string; see + and - below.
171
172     $       The null string at the end of the file.
173
174     .       Dot, the current range.
175
176     'm      The mark m in the file.
177
178   Compound addresses
179     In the following, a1 and a2 are addresses.
180
181     a1+a2   The address a2 evaluated starting at the end of a1.
182
183     a1-a2   The address a2 evaluated looking the reverse direction starting
184             at the beginning of a1.
185
186     a1,a2   The substring from the beginning of a1 to the end of a2.  If a1
187             is missing, 0 is substituted.  If a2 is missing, $ is substi‐
188             tuted.
189
190     a1;a2   Like a1,a2 but with a2 evaluated at the end of, and range set to,
191             a1.
192
193     The operators + and - are high precedence, while , and ; are low prece‐
194     dence.
195
196     In both + and - forms, if a2 is a line or character address with a miss‐
197     ing number, the number defaults to 1.  If a1 is missing, . is substi‐
198     tuted.  If both a1 and a2 are present and distinguishable, + may be
199     elided.  a2 may be a regular expression; if it is delimited by ? charac‐
200     ters, the effect of the + or - is reversed.  The % sign is an alias for ,
201     and hence 0,$.  It is an error for a compound address to represent a mal‐
202     formed substring.
203
204   Commands
205     In the following, text demarcated by slashes represents text delimited by
206     any printable ASCII character except alphanumerics.  Any number of trail‐
207     ing delimiters may be elided, with multiple elisions then representing
208     null strings, but the first delimiter must always be present.  In any
209     delimited text, newline may not appear literally; \n and \t may be typed
210     for newline and tab; \/ quotes the delimiter, here /.  An ampersand & and
211     \n, where n is a digit (1–9) are replaced by the corresponding register.
212     Backslash is otherwise interpreted literally.
213
214     Most commands may be prefixed with an address to indicate their range of
215     operation.  If a command takes an address and none is supplied, a default
216     address is used.  In normal mode this equates to the character the selec‐
217     tion is currently over.  If only one selection exists x and y default to
218     the whole file 0,$.  In normal mode the write commands w and wq always
219     apply to the whole file.  Commands are executed once for every selection.
220     In visual mode the commands are applied to every selection as if an
221     implicit x command, matching the existing selections, was present.
222
223     In the description, “range” is used to represent whatever address is sup‐
224     plied.
225
226     Many commands create new selections as a side effect when issued from a
227     visual mode.  If so, it is always to the “result” of the change: the new
228     text for an insertion, the empty string for a deletion, the command out‐
229     put of a filter etc.  If after a successful command execution no selec‐
230     tions remain, the editor will switch to normal mode, otherwise it remains
231     in visual mode.  This allows interactive refinements of ranges.
232
233   Text commands
234     a[count]/text/
235             Insert the text count times into the file after the range.
236
237             May also be written as
238
239                    a
240                    lines
241                    of
242                    text
243                    .
244
245     c or i  Same as a, but c replaces the text, while i inserts before the
246             range.
247
248     d       Delete the text in range.
249
250   Display commands
251     p       Create a new selection for the range.
252
253   I/O commands
254     e[!] [file name]
255             Replace the file by the contents of the named external file.  If
256             no file name is given, reload file from disk.
257
258     r file name
259             Replace the text in the range by the contents of the named exter‐
260             nal file.
261
262     w[!] [file name]
263             Write the range (default 0,$) to the named external file.
264
265     wq[!] [file name]
266             Same as w, but close file afterwards.
267
268     If the file name argument is absent from any of these, the current file
269     name is used.  e always sets the file name, w will do so if the file has
270     no name.  Forcing the e command with ! will discard any unsaved changes.
271     Forcing w will overwrite the file on disk even if it has been externally
272     modified since loading it.  Write commands with a non-default addresses
273     and no file name are destructive and need always to be forced.
274
275     < shell command
276             Replace the range by the standard output of the shell command.
277
278     > shell command
279             Sends the range to the standard input of the shell command.
280
281     | shell command
282             Send the range to the standard input, and replace it by the stan‐
283             dard output, of the shell command.
284
285     ! shell command
286             Run interactive shell command, redirect keyboard input to it.
287
288     cd directory
289             Change working directory.  If no directory is specified, $HOME is
290             used.
291
292     In any of <, >, |, or !, if the shell command is omitted, the last shell
293     command (of any type) is substituted.  Unless the file being edited is
294     unnamed, all these external commands can refer to its absolute path and
295     file name through the vis_filepath and vis_filename environment vari‐
296     ables.
297
298   Loops and conditionals
299     x/regexp/ [command]
300             For each match of the regular expression in the range, run the
301             command with range set to the match.  If the regular expression
302             and its slashes are omitted, /.*\n/ is assumed.  Null string
303             matches potentially occur before every character of the range and
304             at the end of the range.
305
306             The "1"9 and "& registers are updated with the (sub) expression
307             matches of the pattern.
308
309     y/regexp/ [command]
310             Like x, but run the command for each substring that lies before,
311             between, or after the matches that would be generated by x.
312             There is no default behavior.  Null substrings potentially occur
313             before every character in the range.
314
315     X/regexp/ command
316             For each file whose file name matches the regular expression,
317             make that the current file and run the command.  If the expres‐
318             sion is omitted, the command is run in every file.
319
320     Y/regexp/ command
321             Same as X, but for files that do not match the regular expres‐
322             sion, and the expression is required.
323
324     g[count][/regexp/] command
325
326     v[count][/regexp/] command
327             If the count range contains (g) or does not contain (v) a match
328             for the expression, run command on the range.
329
330             The count specifier has the following format, where n and m are
331             integers denoting the ranges.
332
333             n,m     The closed interval from n to m.  If n is missing, 1 is
334                     substituted.  If m is missing, is substituted.  Nega‐
335                     tive values are interpreted relative to the last range.
336
337             %n      Matches every n-th range.
338
339     These may be nested arbitrarily deeply.  An empty command in an x or y
340     defaults to p.  X, Y, g and v do not have defaults.
341
342   Grouping and multiple changes
343     Commands may be grouped by enclosing them in curly braces.  Semantically,
344     the opening brace is like a command: it takes an (optional) address and
345     runs each sub-command on the range.  Commands within the braces are exe‐
346     cuted sequentially, but changes made by one command are not visible to
347     other commands.
348
349     When a command makes a number of changes to a file, as in x/re/ c/text/,
350     the addresses of all changes are computed based on the initial state.  If
351     the changes are non-overlapping, they are applied in the specified order.
352     Conflicting changes are rejected.
353
354     Braces may be nested arbitrarily.
355

VI(M) KEY BINDINGS

357     In the following sections angle brackets are used to denote special keys.
358     The prefixes C-, S-, and M- are used to refer to the ⟨Ctrl⟩, ⟨Shift⟩ and
359     ⟨Alt⟩ modifiers, respectively.
360
361     All active key bindings can be listed at runtime using the :help command.
362
363   Operators
364     Operators perform a certain operation on a text range indicated by either
365     a motion, a text object or an existing selection.
366
367     When used in normal mode, the following operators wait for a motion,
368     putting vis into operator pending mode.
369     c           change, delete range and enter insert mode
370     d           delete, cut range to register
371     <           shift-left, decrease indent
372     >           shift-right, increase indent
373     y           yank, copy range to register
374
375     When used in normal mode, the following actions take effect immediately.
376     =           format, filter range through fmt(1)
377     gu          make lowercase
378     gU          make uppercase
379     g~          swap case
380     J           join lines, insert spaces in between
381     gJ          join lines remove any delimiting white spaces
382     p           put register content after cursor
383     P           put register content before cursor
384
385   Motions
386     Motions take an initial file position and transform it to a destination
387     file position, thereby defining a range.
388
389     0           start of line
390     b           previous start of a word
391     B           previous start of a WORD
392     $           end of line
393     e           next end of a word
394     E           next end of a WORD
395     Fchar⟩     to next occurrence of ⟨char⟩ to the left
396     fchar⟩     to next occurrence of ⟨char⟩ to the right
397     ^           first non-blank of line
398     g0          begin of display line
399     g$          end of display line
400     ge          previous end of a word
401     gE          previous end of a WORD
402     gg          begin of file
403     G           goto line or end of file
404     gj          display line down
405     gk          display line up
406     gh          codepoint left
407     gl          codepoint right
408     gH          byte left
409     gL          byte right
410     g_          last non-blank of line
411     gm          middle of display line
412     g|          goto column
413     h           char left
414     H           goto top/home line of window
415     j           line down
416     k           line up
417     l           char right
418     L           goto bottom/last line of window
419     %           match bracket, quote or backtick
420     }           next paragraph
421     )           next sentence
422     N           repeat last search backwards
423     n           repeat last search forward
424     [{          previous start of block
425     ]}          next start of block
426     [(          previous start of parentheses pair
427     ])          next start of parentheses pair
428     {           previous paragraph
429     (           previous sentence
430     ;           repeat last to/till movement
431     ,           repeat last to/till movement but in opposite direction
432     #           search word under selection backwards
433     *           search word under selection forwards
434     Tchar⟩     till before next occurrence of ⟨char⟩ to the left
435     tchar⟩     till before next occurrence of ⟨char⟩ to the right
436     ?pattern    to next match of pattern in backward direction
437     /pattern    to next match of pattern in forward direction
438     w           next start of a word
439     W           next start of a WORD
440
441   Text objects
442     Text objects take an initial file position and transform it to a range
443     where the former does not necessarily have to be contained in the latter.
444     All of the following text objects are implemented in an inner variant
445     (prefixed with i) where the surrounding white space or delimiting charac‐
446     ters are not part of the resulting range and a normal variant (prefixed
447     with a) where they are.
448
449     w           word
450     W           WORD
451     s           sentence
452     p           paragraph
453     [, ], (, ), {, }, <, >, ", ', `
454                 block enclosed by these symbols
455
456     Further available text objects include:
457     gn          matches the last used search term in forward direction
458     gN          matches the last used search term in backward direction
459     al          current line
460     il          current line without leading and trailing white spaces
461
462   Multiple Selections
463     vis supports multiple selections with immediate visual feedback.  There
464     always exists one primary selection located within the current view port.
465     Additional selections can be created as needed.  If more than one selec‐
466     tion exists, the primary one is styled differently.
467
468     To manipulate selections use in normal mode:
469
470C-k⟩       create count new selections on the lines above
471C-M-k⟩     create count new selections on the lines above the first
472                 selection
473C-j⟩       create count new selections on the lines below
474C-M-j⟩     create count new selections on the lines below the last
475                 selection
476C-p⟩       remove primary selection
477C-n⟩       select word the selection is currently over, switch to visual
478                 mode
479C-u⟩       make the count previous selection primary
480C-d⟩       make the count next selection primary
481C-c⟩       remove the count selection column
482C-l⟩       remove all but the count selection column
483Tab⟩       try to align all selections on the same column
484Escape⟩    dispose all but the primary selection
485
486     The visual modes were enhanced to recognize:
487
488     I           create a selection at the start of every selected line
489     A           create a selection at the end of every selected line
490Tab⟩       left align selections by inserting spaces
491S-Tab⟩     right align selections by inserting spaces
492C-a⟩       create new selections everywhere matching current word or
493                 selection
494C-n⟩       create new selection and select next word matching current
495                 selection
496C-x⟩       clear (skip) current selection, but select next matching word
497C-p⟩       remove primary selection
498C-u
499C-k⟩       make the count previous selection primary
500C-d
501C-j⟩       make the count next selection primary
502C-c⟩       remove the count selection column
503C-l⟩       remove all but the count selection column
504     +           rotate selections rightwards count times
505     -           rotate selections leftwards count times
506     _           trim selections, remove leading and trailing white space
507     o           flip selection direction, swap cursor and anchor
508Escape⟩    clear all selections, switch to normal mode
509
510     In insert and replace mode:
511
512S-Tab⟩     align all selections by inserting spaces
513
514     Selections can be manipulated using set operations.  The first operand is
515     the currently active selections while the second can be specified as a
516     mark.
517
518     |           set union
519     &           set intersection
520     \           set minus
521     ~           set complement
522

VI(M) COMMANDS

524     Any unique prefix can be used to abbreviate a command.
525
526   File and Window management
527     A file must be opened in at least one window.  If the last window dis‐
528     playing a certain file is closed all unsaved changes are discarded.  Win‐
529     dows are equally sized and can be displayed in either horizontal or ver‐
530     tical fashion.  The ⟨C-wh, ⟨C-wj, ⟨C-wk and ⟨C-wl key mappings
531     can be used to switch between windows.
532
533     :new    open an empty window, arrange horizontally
534
535     :vnew   open an empty window, arrange vertically
536
537     :open[!] [file name]
538             open a new window, displaying file name if given
539
540     :split [file name]
541             split window horizontally
542
543     :vsplit [file name]
544             split window vertically
545
546     :q[!] [exit code]
547             close currently focused window
548
549     :qall[!] [exit code]
550             close all windows, terminate editor with exit code (defaults to
551             0)
552
553     Commands taking a file name will invoke the vis-open(1) utility, if given
554     a file pattern or directory.
555
556   Runtime key mappings
557     vis supports global as well as window local run time key mappings which
558     are always evaluated recursively.
559
560     :map[!] mode lhs rhs
561             add a global key mapping
562
563     :map-window[!] mode lhs rhs
564             add a window local key mapping
565
566     :unmap mode lhs
567             remove a global key mapping
568
569     :unmap-window mode lhs
570             remove a window local key mapping
571
572     In the above mode refers to one of ‘normal’, ‘insert’, ‘replace’,
573     ‘visual’, ‘visual-line’ or ‘operator-pending’; lhs refers to the key to
574     map and rhs is a key action or alias.  An existing mapping may be over‐
575     ridden by forcing the map command by specifying !.
576
577     Because key mappings are always recursive, doing something like:
578
579           :map! normal j 2j
580
581     will not work because it would enter an endless loop.  Instead, vis uses
582     pseudo keys referred to as key actions which can be used to invoke a set
583     of available editor functions.  :help lists all currently active key
584     bindings as well as all available symbolic keys.
585
586   Keyboard Layout Specific Mappings
587     In order to facilitate usage of non-latin keyboard layouts, vis allows
588     one to map locale specific keys to their latin equivalents by means of
589     the
590
591           :langmap locale-keys latin-keys
592
593     command.  As an example, the following maps the movement keys in Russian
594     layout:
595
596           :langmap ролд hjkl
597
598     If the key sequences have not the same length, the remainder of the
599     longer sequence will be discarded.
600
601     The defined mappings take effect in all non-input modes, i.e. everywhere
602     except in insert and replace mode.
603
604   Undo/Redo
605     :earlier [count]
606             revert to older text state
607
608     :later [count]
609             revert to newer text state
610
611     If count is suffixed by either of d (days), h (hours), m (minutes) or s
612     (seconds) it is interpreted as an offset from the current system time and
613     the closest available text state is restored.
614

SET OPTIONS

616     There are a small number of options that may be set (or unset) to change
617     the editor's behavior using the :set command.  This section describes the
618     options, their abbreviations and their default values.  Boolean options
619     can be toggled by appending ! to the option name.
620
621     In each entry below, the first part of the tag line is the full name of
622     the option, followed by any equivalent abbreviations.  The part in square
623     brackets is the default value of the option.
624
625     shell [“/bin/sh”]
626             User shell to use for external commands, overrides SHELL and
627             shell field of password database /etc/passwd
628
629     escdelay [50]
630             Milliseconds to wait before deciding whether an escape sequence
631             should be treated as an ⟨Escape⟩ key.
632
633     tabwidth, tw [8]
634             Display width of a tab and number of spaces to use if expandtab
635             is enabled.
636
637     autoindent, ai [off]
638             Automatically indent new lines by copying white space from previ‐
639             ous line.
640
641     expandtab, et [off]
642             Whether ⟨Tab⟩ should be expanded to tabwidth spaces.
643
644     number, nu [off]
645             Display absolute line numbers.
646
647     relativenumbers, rnu [off]
648             Display relative line numbers.
649
650     cursorline, cul [off]
651             Highlight line primary cursor resides on.
652
653     colorcolumn, cc [0]
654             Highlight a fixed column.
655
656     horizon [32768]
657             How many bytes back the lexer will look to synchronize parsing.
658
659     redrawtime [1.0]
660             Maximum time (in seconds) to wait for syntax highlighting before
661             aborting it.
662
663     theme [“default-16” or “default-256”]
664             Color theme to use, name without file extension.  Loaded from a
665             themes/ sub directory of the paths listed in the FILES section.
666
667     syntax [off]
668             Syntax highlighting lexer to use, name without file extension.
669
670     show-tabs [off]
671             Whether to display replacement symbol instead of tabs.
672
673     show-newlines [off]
674             Whether to display replacement symbol instead of newlines.
675
676     show-spaces [off]
677             Whether to display replacement symbol instead of blank cells.
678
679     show-eof [on]
680             Whether to display replacement symbol for lines after the end of
681             the file.
682
683     savemethod [auto]
684             How the current file should be saved, atomic which uses rename(2)
685             to atomically replace the file, inplace which truncates the file
686             and then rewrites it or auto which tries the former before fall‐
687             ing back to the latter.  The rename method fails for symlinks,
688             hardlinks, in case of insufficient directory permissions or when
689             either the file owner, group, POSIX ACL or SELinux labels can not
690             be restored.
691
692     loadmethod [auto]
693             How existing files should be loaded, read which copies the file
694             content to an independent in-memory buffer, mmap which memory
695             maps the file from disk and uses OS capabilities as caching layer
696             or auto which tries the former for files smaller than 8Mb and the
697             latter for lager ones.  WARNING: modifying a memory mapped file
698             in-place will cause data loss.
699
700     layout [“v” or “h”]
701             Whether to use vertical or horizontal layout.
702
703     ignorecase, ic [off]
704             Whether to ignore case when searching.
705

COMMAND and SEARCH PROMPT

707     The command and search prompt as opened by :, /, or ? is implemented as a
708     single line height window, displaying a regular file whose editing starts
709     in insert mode.  ⟨Escape⟩ switches to normal mode, a second ⟨Escape⟩ can‐
710     cels the prompt.  ⟨Up⟩ enlarges the window, giving access to the command
711     history.  ⟨C-v⟩ ⟨Enter⟩ inserts a literal new line thus enabling multi‐
712     line commands.  ⟨Enter⟩ executes the visual selection if present, or else
713     everything in the region spawned by the selection position and the delim‐
714     iting prompt symbols at the start of adjacent lines.
715

CONFIGURATION

717     vis uses Lua for configuration and scripting purposes.  During startup
718     visrc.lua (see the FILES section) is sourced which can be used to set
719     personal configuration options.  As an example the following will enable
720     the display of line numbers:
721
722           vis:command('set number')
723

ENVIRONMENT

725     VIS_PATH
726             The default path to use to load Lua support files.
727
728     HOME    The home directory used for the cd command if no argument is
729             given.
730
731     TERM    The terminal type to use to initialize the curses interface,
732             defaults to xterm if unset.
733
734     SHELL   The command shell to use for I/O related commands like !, >, <
735             and |.
736
737     XDG_CONFIG_HOME
738             The configuration directory to use, defaults to $HOME/.config if
739             unset.
740

ASYNCHRONOUS EVENTS

742     SIGSTOP
743             Suspend editor.
744
745     SIGCONT
746             Resume editor.
747
748     SIGBUS  An mmap(2) ed file got truncated, unsaved file contents will be
749             lost.
750
751     SIGHUP
752
753     SIGTERM
754             Restore initial terminal state.  Unsaved file contents will be
755             lost.
756
757     SIGINT  When an interrupt occurs while an external command is being run
758             it is terminated.
759
760     SIGWINCH
761             The screen is resized.
762

FILES

764     Upon startup vis will source the first visrc.lua configuration file found
765     from these locations.  All actively used paths can be listed at runtime
766     using the :help command.
767
768     ·   $VIS_PATH
769
770     ·   The location of the vis binary (on systems where /proc/self/exe is
771         available).
772
773     ·   $XDG_CONFIG_HOME/vis where XDG_CONFIG_HOME refers to $HOME/.config if
774         unset.
775
776     ·   /etc/vis for a system-wide configuration provided by administrator.
777
778     ·   /usr/local/share/vis or /usr/share/vis depending on the build config‐
779         uration.
780
781         When creating a new visrc.lua be sure to copy the structure from
782         here.
783

EXIT STATUS

785     The vis utility exits 0 on success, and >0 if an error occurs.
786

EXAMPLES

788     Use vis as an interactive filter.
789
790           $ { echo Pick your number; seq 1 10; } | vis - > choice
791
792     Use the vis-open(1) based file browser to list all C language source
793     files:
794
795           :e *.c
796
797     Spawn background process and pipe range to its standard input:
798
799           :> { plumber <&3 3<&- & } 3<&0 1>&- 2>&-
800

SEE ALSO

802     sam(1), vi(1), vis-clipboard(1), vis-complete(1), vis-digraph(1),
803     vis-menu(1), vis-open(1)
804
805     A Tutorial for the Sam Command Language:
806           http://doc.cat-v.org/bell_labs/sam_lang_tutorial/sam_tut.pdf
807     by Rob Pike
808
809     The Text Editor sam:
810           http://doc.cat-v.org/plan_9/4th_edition/papers/sam/
811     by Rob Pike
812
813     Plan 9 manual page for sam(1):
814           http://man.cat-v.org/plan_9/1/sam
815
816     Structural Regular Expressions:
817           http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf
818     by Rob Pike
819
820     vi - screen-oriented (visual) display editor:
821           http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html
822     IEEE Std 1003.1 (“POSIX.1”)
823

STANDARDS

825     vis does not strive to be IEEE Std 1003.1 (“POSIX.1”) compatible, but
826     shares obvious similarities with the vi utility.
827

AUTHORS

829     vis is written by Marc André Tanner <mat at brain-dump.org>
830

BUGS

832     On some systems there already exists a vis binary, thus causing a name
833     conflict.
834
835Vis v0.7                       January 14, 2017                       Vis v0.7
Impressum