diff options
Diffstat (limited to 'vis.1')
| -rw-r--r-- | vis.1 | 1259 |
1 files changed, 0 insertions, 1259 deletions
@@ -1,1259 +0,0 @@ -.Dd December 5, 2016 -.Dt VIS 1 -.Os Vis VERSION -. -.Sh NAME -.Nm vis -.Nd a highly efficient text editor -. -.Sh SYNOPSIS -.Nm -.Op Fl v -.Op Ic +command -.Op Fl - -.Op Ar files ... -. -.Sh DESCRIPTION -.Nm -is a highly efficient screen-oriented text editor combining the strengths of both -.Nm vi(m) -and -.Nm sam . -. -This manual page is intended for users already familiar with -.Nm vi Ns / Ns Nm sam . -Anyone else should almost certainly read a good tutorial on -either editor before this manual page. -. -The following options are available: -.Bl -tag -width indent -.It Fl v -Print version information and exit. -. -.It Sy +command -Execute command after loading file. -. -.It Fl - -Denotes the end of the options. Arguments after this will be handled as a -file name. -.\" TODO mention +command -.El -.Pp -The special file -.Cm - -instructs -.Nm -to read from standard input in which case -.Ic :wq -will write to standard output, thereby enabling usage as an interactive filter. -.Pp -If standard input is redirected and all input is consumed, -.Nm -will open /dev/tty to gather further commands. Failure to do so results in -program termination. -. -.Ss Modes -.Nm -employs the same -.Em modal -editing approach as -.Nm vi . -It supports a normal, operator pending, insert, replace and visual -(in both line and character wise variants) mode. -.\" TODO: add short per-mode descripton? -.Pp -The visual block and ex modes are deliberately not implemented, -instead -.Nm -has built in support for multiple cursors/selections and an -.Em interactive -variant of the structural regular expression based command language of -.Nm sam . -. -.Ss Undo/Redo -.Nm -uses an undo tree to keep track of text revisions. The -.Ic u -(undo) and -.Aq Ic C-r -(redo) commands can be used to traverse the tree along the main branch. -Additionally -.Ic g+ -and -.Ic g- -traverse the history in chronological order. Furthermore the -.Ic :earlier -and -.Ic :later -commands provide means to restore the text to an arbitrary state. -. -.Ss Marks -A mark associates a given file position to a symbolic name. -A mark becomes invalid once the underlying file content changes (e.g. it -being deleted or replaced). If said changes are later undone the mark becomes -valid again. -.Bl -tag -width indent -.It a-z -general purpose marks -.It < -start of the last selected visual area in current file -.It > -end of the last selected visual area in current file -.El -.Pp -No marks across files are supported. Marks are not preserved over editing sessions. -. -.Ss Registers -Registers can hold arbitrary data which can later be re-inserted into -the file or executed as a macro. Supported registers include: -.Bl -tag -width indent -.It \(dqa-\(dqz -general purpose registers -.It \(dqA-\(dqZ -append to corresponding general purpose register -.It \(dq*, \(dq+ -system clipboard integration via shell script -.Xr vis-clipboard 1 -.It \(dq0 -yank register, least recently yanked range -.It \(dq/ -search register, least recently used search pattern -.It \(dq: -command register, least recently executed command -.It \(dq_ -black hole (/dev/null) register, ignore content is always empty -.El -.Pp -If no explicit register is specified a default register is used. -. -.Ss Macros -. -The general purpose registers -.Cm \(dqa-\(dqz -can be used to record macros. Use -one of -.Cm \(dqA-\(dqZ -to append to an existing macro. -.Ic q -starts a recording, -.Ic @ -plays it back. -.Ic @@ -refers to the least recently recorded macro. -.Ic @: -repeats the last :-command. -.Ic @/ -is equivalent to -.Ic n -in normal mode. -. -.Ss Jump list and Change list -. -A per window, fixed sized file local jump list (navigate with -.Aq Ic C-O -and -.Aq Ic C-I ) -and change list (navigate with -.Ic g; -and -.Ic g, ) -is supported. -. -.Ss Encoding, Tab and Newline handling -. -.Nm -always assumes the input file to be UTF-8 encoded. If you wish to edit -files with legacy encodings, use -.Xr iconv 1 -to convert them as needed. -.Aq Tab -can optionally be expanded to a configurable number of spaces (see -.Sx "SET OPTIONS" ) . -The first line ending in the file determines what will be inserted when pressing -.Aq Enter -(defaults to \\n). -. -.Ss Mouse support -The mouse is currently not used at all. -. -.Sh SAM COMMANDS -. -.Nm -supports an interactive variant of the structural regular expression based command language introduced by -.Xr sam 1 . -. -.Ss Regular expressions -.Nm -currently defers regular expression matching to the underlying C library. -It uses what POSIX refers to as -.Dq Extended Regular Expressions -as described in -.Xr regex 7 "." -. -Additonally \[rs]n and \[rs]t may be used to refer to newlines and tabs, respectively. -The -.Cm "." -atom matches any character except newline. -. -The empty regular expression stands for the last complete expression encountered. -. -.Ss Addresses -An address identifies a substring (or range) in a file. In the following -.Do -character -.Sy n -.Dc -means the null string after the -.Sy n\fR-th -character in the file, with 1 the first character in the file. -.Do -Line -.Sy n -.Dc -means the -.Sy n\fR-th -match, starting at the beginning of the file, of the regular expression -.Li ".*\[rs]n?" . -.Pp -All windows always have at least one current substring which -is the default address. In sam this is referred to as -.Sy dot . -In -.Nm -multiple -.Dq dots -can exist at the same time. -In normal mode each cursor induces such a range, representing the -character it is currently over. Similarly, in visual mode each -selection serves as a default address. -.Ss Simple addresses -.Bl -tag -width indent -.It Ic #n -The empty string after character -.Sy n ; -.Li #0 -is the beginning of the file. -.It Ic n -Line -.Sy n . -.It Ic /regexp/ -.It Ic ?regexp? -The substring that matches the regular expression, found by looking -towards the end -.Pq Li / -or beginning -.Pq Li \&? -of the file. The search does not wrap around when hitting the end -.Pq start -of the file. -.It Ic 0 -The string before the first full line. -This is not necessarily the null string; see -.Li + -and -.Li - -below. -.It Ic $ -The null string at the end of the file. -.It Ic "." -Dot, the current range. -.It Ic "'m" -The mark -.Sy m -in the file. -.El -. -.Ss Compound addresses -In the following, -.Sy a1 -and -.Sy a2 -are addresses. -.Bl -tag -width indent -.It Sy a1+a2 -The address -.Sy a2 -evaluated starting at the end of -.Sy a1 . -.It Sy a1-a2 -The address -.Sy a2 -evaluated looking the reverse direction starting at the beginning of -.Sy a1 . -.It Sy "a1,a2" -The substring from the beginning of -.Sy a1 -to the end of -.Sy a2 . -If -.Sy a1 -is missing, -.Li 0 -is substituted. -If -.Sy a2 -is missing, -.Li $ -is substituted. -.It Sy a1;a2 -Like -.Dq Sy a1,a2 -but with -.Sy a2 -evaluated at the end of, and range set to, -.Sy a1 . -.El -.Pp -The operators -.Li + -and -.Li - -are high precedence, while -.Li "," -and -.Li ";" -are low precedence. -.Pp -In both -.Li + -and -.Li - -forms, if -.Sy a2 -is a line or character address with a missing number, the number defaults to 1. -If -.Sy a1 -is missing, -.Li "." -is substituted. -If both -.Sy a1 -and -.Sy a2 -are present and distinguishable, -.Li + -may be elided. -.Sy a2 -may be a regular expression; if it is delimited by -.Dq Li \&? -characters, the effect of the -.Li + -or -.Li - -is reversed. -. -The -.Li % -sign is an alias for -.Li "," -and hence -.Li 0,$ . -. -It is an error for a compound address to represent a malformed substring. -. -.Ss 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; -.Li \[rs]n -and -.Li \[rs]t -may be typed for newline and tab; -.Li \[rs]/ -quotes the delimiter, here -.Li / . -Backslash is otherwise interpreted literally. -.Pp -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 cursor is currently over. If only one cursor exists -.Ic x -and -.Ic y -default to the whole file -.Li "0,$" . -In normal mode the write commands -.Ic w -and -.Ic wq -always apply to the whole file. -Commands are executed once for every cursor. -In visual mode the commands are applied to every selection -as if an implicit -.Ic x -command, matching the existing selections, was present. -. -.Pp -In the description, -.Dq range -is used to represent whatever address is supplied. -.Pp -If after a successful command execution no selections remain, -the editor will switch to normal mode, otherwise it remains in -visual mode. This allows -.Em interactive -refinements of ranges. -. -.\" Many commands set the value of dot as a side effect. -.\" If so, it is always to the -.\" .Dq result -.\" of the change: the empty string for a deletion, the new text for an insertion, etc. -.\" .Po -.\" but see the -.\" .Sy s -.\" and -.\" .Sy e -.\" commands -.\" .Pc "." -.Ss Text commands -.Bl -tag -width indent -.It Ic a/text/ -Insert the text into the file after the range. -.\" Set dot. -.Pp -May also be written as -.Bd -literal -offset indent - a - lines - of - text - . -.Ed -.It Ic c \fR or i -Same as -.Sy a , -but -.Sy c -replaces the text, while -.Sy i -inserts -.Em before -the range. -.It Sy d -Delete the text in range. -.\" Set dot. -.It Sy s/regexp/text/ -Substitute -.Sy text -for the first match of the regular expression in the range. -Currently implemented in terms of -.Xr sed 1 "." -.El -. -.Ss Display commands -.Bl -tag -width Ds -.It Ic p -Create a new selection for the range. If empty, create a new cursor. -.El -. -.Ss I/O commands -.Bl -tag -width indent -.It Ic e[!] Bq file name -Replace the file by the contents of the named external file. -If no file name is given, reload file from disk. -.It Ic r file name -Replace the text in the range by the contents of the named external file. -.\" Set dot. -.It Ic w[!] Bq file name -Write the range -.Po -default -.Li 0,$ -.Pc -to the named external file. -.It Ic wq[!] Bq file name -Same as -.Ic w , -but close file afterwards. -.El -.Pp -If the file name argument is absent from any of these, the current file name is used. -.Ic e -always sets the file name, -.Ic w -will do so if the file has no name. -Forcing the -.Ic e -command with -.Cm "!" -will discard any unsaved changes. Forcing -.Ic 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. -.Bl -tag -width indent -.It Ic "< shell-command" -Replace the range by the standard output of the shell command. -.It Ic "> shell-command" -Sends the range to the standard input of the shell command. -.It Ic "| shell-command" -Send the range to the standard input, and replace it by the standard output, of the shell command. -.It Ic "! shell-command" -Run interactive shell command, redirect keyboard input to it. -.It Ic "cd directory" -Change working directory. -If no directory is specified, -.Ev "$HOME" -is used. -.El -.Pp -In any of -.Ic "<" , -.Ic ">" , -.Ic "|" , -or -.Ic "!" , -if the shell command is omitted, the last shell command -.Pq "of any type" -is substituted. -.Ss Loops and conditionals -.Bl -tag -width indent -.It Ic x/regexp/ Bq command -For each match of the regular expression in the range, run the command with range set to the match. -If the regular expression and its slashes are omitted, -.Li "/.*\[rs]n/" -is assumed. -Null string matches potentially occur before every character of the range and at the end of the range. -.It Ic y/regexp/ Bq command -Like -.Ic x , -but run the command for each substring that lies before, between, or after the matches that would be generated by -.Ic x . -There is no default behavior. -Null substrings potentially occur before every character in the range. -.It Ic "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. -.It Ic "Y/regexp/ command" -Same as -.Ic X , -but for files that do not match the regular expression, and the expression is required. -.It Ic "g/regexp/ command" -.It Ic "v/regexp/ command" -If the range contains -.Po -.Ic g -.Pc -or does not contain -.Po -.Ic v -.Pc -a match for the expression, run command on the range. -.El -.Pp -These may be nested arbitrarily deeply. -An empty command in an -.Ic x -or -.Ic y -defaults to -.Ic p . -.Ic X , -.Ic Y , -.Ic g -and -.Ic v -do not have defaults. -. -.Ss 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 -.Pq optional -address and runs each sub-command on the range. -Commands within the braces are executed sequentially, and changes made by one command are visible to other commands. -. -Braces may be nested arbitrarily. -. -.Sh VI(M) KEY BINDINGS -. -In the following sections angle brackets are used to denote special keys. -The prefixes -.Cm C- , -.Cm S- , -and -.Cm M- -are used to refer to the -.Aq Ctrl , -.Aq Shift -and -.Aq Alt -modifiers, respectively. -.Pp -All active key bindings can be listed at runtime using the -.Cm :help -command. -. -.Ss Operators -. -Operators perform a certain operation an a text range indicated by either a -motion, a text object or an existing selection. -. -.Bl -tag -width indent -.It c -change, delete range and enter insert mode -.It d -delete range -.It ! -filter range through external shell command -.It = -indent, currently an alias for gq -.It gq -format, filter range through -.Xr fmt 1 -.It gu -make lowercase -.It gU -make uppercase -.It J -join lines, insert spaces in between -.It gJ -join lines remove any delimiting white spaces -.It p -put, insert register content -.It < -shift-left, decrease indent -.It > -shift-right, increase indent -.It ~ -swap case -.It y -yank, copy range to register -.El -.Pp -Operators can be forced to work line wise by specifying -.Cm V . -. -.Ss Motions -. -.\" TODO? more formal definition: pos -> [min(pos, f(pos)), max(pos, f(pos))] -Motions take an initial file position and transform it to a destination file position, -thereby defining a range. -.\" TODO define word/WORD -. -.Bl -tag -width indent -.It 0 -start of line -. -.It b -previous start of a word -. -.It B -previous start of a WORD -. -.It $ -end of line -. -.It e -next end of a word -. -.It E -next end of a WORD -. -.It F Aq char -to next occurrence of char to the left -. -.It f Aq char -to next occurrence of char to the right -. -.It ^ -first non-blank of line -. -.It g0 -begin of display line -. -.It g$ -end of display line -. -.It ge -previous end of a word -. -.It gE -previous end of a WORD -. -.It gg -begin of file -. -.It G -goto line or end of file -. -.It gj -display line down -. -.It gk -display line up -. -.It g_ -last non-blank of line -. -.It gm -middle of display line -. -.It | -goto column -. -.It h -char left -. -.It H -goto top/home line of window -. -.It j -line down -. -.It k -line up -. -.It l -char right -. -.It L -goto bottom/last line of window -. -.It ` Aq mark -go to mark -. -.It ' Aq mark -go to start of line containing mark -. -.It % -match bracket -. -.It M -goto middle line of window -. -.It ]] -next end of C-like function -. -.It } -next paragraph -. -.It ) -next sentence -. -.It ][ -next start of C-like function -. -.It N -repeat last search backwards -. -.It n -repeat last search forward -. -.It [] -previous end of C-like function -. -.It [{ -previous start of block -. -.It ]} -next start of block -. -.It [( -previous start of parenthese pair -. -.It ]) -next start of parenthese pair -. -.It { -previous paragraph -. -.It "(" -previous sentence -. -.It [[ -previous start of C-like function -. -.It ; -repeat last to/till movement -. -.It , -repeat last to/till movement but in opposite direction -. -.It # -search word under cursor backwards -. -.It * -search word under cursor forwards -. -.It T Aq char -till before next occurrence of char to the left -. -.It t Aq char -till before next occurrence of char to the right -. -.It ? pattern -to next match of pattern in backward direction -. -.It / pattern -to next match of pattern in forward direction -. -.It w -next start of a word -. -.It W -next start of a WORD -.El -. -.Ss Text objects -.\" TODO? more formal definition: text-object: pos -> [a, b] -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 -(prefixed with -.Cm i ")" -where the surrounding white space or delimiting characters are not part -of the resulting range and a normal variant (prefixed with -.Cm a ")" -where they are. -.Bl -tag -width indent -. -.It w -word -. -.It W -WORD -. -.It s -sentence -. -.It p -paragraph -. -.It [,], (,), {,}, <,>, \&", ', ` -block enclosed by these symbols -.El -.Pp -Further available text objects include: -.Bl -tag -width indent -. -.It gn -matches the last used search term in forward direction -. -.It gN -matches the last used search term in backward direction -. -.It ae -entire file content -. -.It ie -entire file content except for leading and trailing empty lines -. -.It af -C-like function definition including immediately preceding comments -. -.It if -C-like function definition only function body -. -.It al -current line -. -.It il -current line without leading and trailing white spaces -.El -. -.Ss Multiple Cursors and Selections -. -.Nm -supports multiple cursors with immediate visual feedback. There always -exists one primary cursor located within the current view port. Additional -cursors can be created as needed. If more than one cursor exists, -the primary one is styled differently. -.Pp -To manipulate multiple cursors use in normal mode: -.Bl -tag -width indent -.It Aq C-k -create count new cursors on the lines above -.It Aq C-M-k -create count new cursors on the lines above the first cursor -.It Aq C-j -create count new cursors on the lines below -.It Aq C-M-j -create count new cursors on the lines below the last cursor -.It Aq C-p -remove primary cursor -.It Aq C-n -select word the cursor is currently over, switch to visual mode -.It Aq C-u -make the count previous cursor primary -.It Aq C-d -make the count next cursor primary -.It Aq C-c -remove the count cursor column -.It Aq C-l -remove all but the count cursor column -.It Aq Tab -try to align all cursor on the same column -.It Aq Escape -dispose all but the primary cursor -.El -.Pp -The visual modes were enhanced to recognize: -.Bl -tag -width indent -.It I -create a cursor at the start of every selected line -.It A -create a cursor at the end of every selected line -.It Aq Tab -left align selections by inserting spaces -.It Aq S-Tab -right align selections by inserting spaces -.It Aq C-n -create new cursor and select next word matching current selection -.It Aq C-x -clear (skip) current selection, but select next matching word -.It Aq C-p -remove primary cursor -.It Aq C-u -.It Aq C-k -make the count previous cursor primary -.It Aq C-d -.It Aq C-j -make the count next cursor primary -.It Aq C-c -remove the count cursor column -.It Aq C-l -remove all but the count cursor column -.It + -rotates selections rightwards count times -.It - -rotates selections leftwards count times -.It \e -trim selections, remove leading and trailing white space -.It Aq Escape -clear all selections, switch to normal mode -.El -.Pp -In insert and replace mode: -.Bl -tag -width indent -. -.It Aq S-Tab -align all cursors by inserting spaces -.El -. -.Sh VI(M) COMMANDS -. -Any unique prefix can be used to abbreviate a command. -. -.Ss File and Window management -. -A file must be opened in at least one window. If the last window displaying a -certain file is closed all unsaved changes are discarded. Windows are equally -sized and can be displayed in either horizontal or vertical fashion. -.Bl -tag -width indent -.It Cm :new -open an empty window, arrange horizontally -.It Cm :vnew -open an empty window, arrange vertically -.It Cm :open[!] Bq file name -open a new window, displaying file name if given -.It Cm :split Bq file name -split window horizontally -.It Cm :vsplit Bq file name -split window vertically -.It Cm :bdelete[!] -close all windows which display the same file as the current one -.It Cm :q[!] -close currently focused window -.It Cm :qall[!] -close all windows, exit editor -.El -.Pp -Commands taking a file name will invoke the -.Xr vis-open 1 -utility, if given a file pattern or directory. -. -.Ss Runtime key mappings -.Nm -supports global as well as window local run time key mappings which are -always evaluated recursively. -. -.Bl -tag -width indent -.It Cm :map[!] <mode> <lhs> <rhs> -add a global key mapping -.It Cm :map-window[!] <mode> <lhs> <rhs> -add a window local key mapping -.It Cm :unmap <mode> <lhs> -remove a global key mapping -.It Cm :unmap-window <mode> <lhs> -remove a window local key mapping -.El -In the above -.Cm <mode> -refers to one of -.Ql normal , -.Ql insert , -.Ql replace , -.Ql visual , -.Ql visual-line -or -.Ql operator-pending ; -.Cm <lhs> -refers to the key to map and -.Cm <rhs> -is a key action or alias. An existing mapping may be overridden by forcing -the map command by specifying -.Cm "!" . -.Pp -Because key mappings are always recursive, doing something like: -.Pp -.Dl :map! normal j 2j -.Pp -will not work because it would enter an endless loop. Instead, -.Nm -uses pseudo keys referred to as key actions which can be used to invoke -a set of available editor functions. -.Ic :help -lists all currently active key bindings as well as all available symbolic -keys. -. -.Ss Keyboard Layout Specific Mappings -. -In order to facilitate usage of non-latin keyboard layouts, -.Nm -allows to map locale specific keys to their latin equivalents by means of the -.Pp -.Dl :langmap <locale-keys> <latin->keys> -.Pp -command. As an example, the following maps the movement keys in Russian layout: -.Pp -.Dl :langmap ролд hjkl -.Pp -If the key sequences have not the same length, the remainder of the longer -sequence will be discarded. -.Pp -The defined mappings take effect -in all non-input modes, i.e. everywhere except in insert and replace mode. -. -.Ss Undo/Redo -.Bl -tag -width indent -.It Ic :earlier Bq count -revert to older text state -.It Ic :later Bq count -revert to newer text state -.El -.Pp -If count is suffixed by either of -.Sy d -.Pq days , -.Sy h -.Pq hours , -.Sy m -.Pq minutes -or -.Sy s -.Pq seconds -it is interpreted as an offset from the current system time and the closest -available text state is restored. -. -.Sh SET OPTIONS -There are a small number of options that may be set -.Pq or unset -to change the editor's behavior using the -.Cm :set -command. -This section describes the options, their abbreviations and their -default values. -.Pp -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. -.Bl -tag -width indent -.It Cm shell Bq \&"/bin/sh\&" -User shell to use for external commands, overrides -.Cm $SHELL -and shell field of password database -.Cm /etc/passwd -.It Cm escdelay Bq 50 -Milliseconds to wait before deciding whether an escape sequence should -be treated as an -.Aq Cm Escape -key. -.It Cm tabwidth , tw Bq 8 -Display width of a tab and number of spaces to use if -.Cm expandtab -is enabled. -.It Cm autoindent , ai Bq off -Automatically indent new lines by copying white space from previous line. -.It Cm expandtab , et Bq off -Whether -.Aq Cm Tab -should be expanded to -.Cm tabwidth -spaces. -.It Cm number , nu Bq off -Display absolute line numbers. -.It Cm relativenumbers , rnu Bq off -Display relative line numbers. -.It Cm cursorline , cul Bq off -Highlight line primary cursor resides on. -.It Cm colorcolumn , cc Bq 0 -Highlight a fixed column. -.It Cm horizon Bq 32768 -How many bytes back the lexer will look to synchronize parsing. -.It Cm theme Bq \&"default-16\&" or \&"default-256\&" -Color theme to use, name without file extension. -.It Cm syntax Bq off -Syntax highlighting lexer to use, name without file extension. -.It Cm show-tabs Bq off -Whether to display replacement symbol instead of tabs. -.It Cm show-newlines Bq off -Whether to display replacement symbol instead of newlines. -.It Cm show-tabs Bq off -Whether to display replacement symbol instead of newlines. -.It Cm show-spaces Bq off -Whether to display replacement symbol instead of blank cells. -.El -. -.Sh CONFIGURATION -. -.Nm -uses Lua for configuration and scripting purposes. -During startup -.Pa visrc.lua -(see the -.Sx 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: -.Pp -.Dl vis:command('set number') -. -.Sh ENVIRONMENT -.Bl -tag -width indent -.It Ev VIS_PATH -The default path to use to load Lua support files. -.It Ev HOME -The home directory used for the -.Ic cd -command if no argument is given. -.It Ev TERM -The terminal type to use to initialize the curses interface, defaults to -.Sy xterm -if unset. -.It Ev SHELL -The command shell to use for I/O related commands like -.Ic "!" , -.Ic ">" , -.Ic "<" -and -.Ic "|" . -.It Ev XDG_CONFIG_HOME -The configuration directory to use, defaults to -.Pa $HOME/.config -if unset. -.El -. -.Sh ASYNCHRONOUS EVENTS -.Bl -tag -width indent -.It Dv SIGSTOP -Suspend editor. -.It Dv SIGCONT -Resume editor. -.It Dv SIGBUS -An -.Xr mmap 2 -ed file got truncated, unsaved file contents will be lost. -.It Dv SIGHUP -.It Dv SIGTERM -Restore initial terminal state. Unsaved file contents will be lost. -.It Dv SIGINT -When an interrupt occurs while an external command is being run it is terminated. -.It Dv SIGWINCH -The screen is resized. -.El -. -.Sh FILES -Upon startup -.Nm -will source the first -.Pa visrc.lua -configuration file found from these locations: -.Bl -bullet -.It -.Pa $VIS_PATH -.It -The location of the -.Nm -binary (on systems where -.Pa /proc/self/exe -is available). -.It -.Pa $XDG_CONFIG_HOME/vis -where -.Pa $XDG_CONFIG_HOME -refers to -.Pa $HOME/.config -if unset. -. -.It -.Pa /usr/local/share/vis -or -.Pa /usr/share/vis -depending on the build configuration. -.El -. -.Sh EXIT STATUS -.Ex -std -. -.Sh EXAMPLES -Use -.Nm -as an interactive filter as used by -.Xr dvtm 1 : -.Pp -.Dl $ { echo Pick your number; seq 1 10; } | vis - > choice -.Pp -Use the -.Xr vis-open 1 -based file browser to list all C language source files: -.Pp -.Dl :e *.c -.Pp -Spawn background process and pipe range to its standard input: -.Pp -.Dl :> { plumber <&3 3<&- & } 3<&0 1>&- 2>&- -.Sh SEE ALSO -.Xr vis-clipboard 1 , -.Xr vis-complete 1 , -.Xr vis-menu 1 , -.Xr vis-open 1 , -.Xr vi 1 -and -.Xr sam 1 -.Pp -.Lk http://doc.cat-v.org/bell_labs/sam_lang_tutorial/sam_tut.pdf "A Tutorial for the Sam Command Language" -by Rob Pike -.Pp -.Lk http://doc.cat-v.org/plan_9/4th_edition/papers/sam/ "The Text Editor sam" -by Rob Pike -.Pp -.Lk http://man.cat-v.org/plan_9/1/sam "Plan9 manual page for sam(1)" -.Pp -.Lk http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf "Structural Regular Expressions" -by Rob Pike -.Pp -.Lk http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html "vi - screen-oriented (visual) display editor" -.St -p1003.1-2013 -. -.Sh STANDARDS -.Nm -does not strive to be -.St -p1003.1-2013 -compatible, but shares obvious similarities with the -.Nm vi -utility. -. -.\" .Sh HISTORY -.\" TODO something about vi(m) and sam history -. -.Sh AUTHORS -.Nm -is written by -.An Marc André Tanner Aq mat at brain-dump.org -. -.Sh BUGS -On some systems there already exists a -.Nm -binary, thus causing a name conflict. |
