1VIS(1) BSD General Commands Manual VIS(1)
2
4 vis — a highly efficient text editor
5
7 vis [-v] [+command] [--] [files ...]
8
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
55 ⟨C-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
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
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 F⟨char⟩ to next occurrence of ⟨char⟩ to the left
396 f⟨char⟩ 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 T⟨char⟩ till before next occurrence of ⟨char⟩ to the left
435 t⟨char⟩ 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
470 ⟨C-k⟩ create count new selections on the lines above
471 ⟨C-M-k⟩ create count new selections on the lines above the first
472 selection
473 ⟨C-j⟩ create count new selections on the lines below
474 ⟨C-M-j⟩ create count new selections on the lines below the last
475 selection
476 ⟨C-p⟩ remove primary selection
477 ⟨C-n⟩ select word the selection is currently over, switch to visual
478 mode
479 ⟨C-u⟩ make the count previous selection primary
480 ⟨C-d⟩ make the count next selection primary
481 ⟨C-c⟩ remove the count selection column
482 ⟨C-l⟩ remove all but the count selection column
483 ⟨Tab⟩ try to align all selections on the same column
484 ⟨Escape⟩ 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
490 ⟨Tab⟩ left align selections by inserting spaces
491 ⟨S-Tab⟩ right align selections by inserting spaces
492 ⟨C-a⟩ create new selections everywhere matching current word or
493 selection
494 ⟨C-n⟩ create new selection and select next word matching current
495 selection
496 ⟨C-x⟩ clear (skip) current selection, but select next matching word
497 ⟨C-p⟩ remove primary selection
498 ⟨C-u⟩
499 ⟨C-k⟩ make the count previous selection primary
500 ⟨C-d⟩
501 ⟨C-j⟩ make the count next selection primary
502 ⟨C-c⟩ remove the count selection column
503 ⟨C-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
508 ⟨Escape⟩ clear all selections, switch to normal mode
509
510 In insert and replace mode:
511
512 ⟨S-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
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-w⟩ h, ⟨C-w⟩ j, ⟨C-w⟩ k and ⟨C-w⟩ l 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
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
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
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
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
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
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
785 The vis utility exits 0 on success, and >0 if an error occurs.
786
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
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
825 vis does not strive to be IEEE Std 1003.1 (“POSIX.1”) compatible, but
826 shares obvious similarities with the vi utility.
827
829 vis is written by Marc André Tanner <mat at brain-dump.org>
830
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