From fb98f904de3acdde13dc96107a40cf41f97ed907 Mon Sep 17 00:00:00 2001 From: CSRG Date: Fri, 2 Dec 1994 01:49:02 -0800 Subject: [PATCH] BSD 4_4_Lite2 development Work on file usr/src/share/doc/usd/13.viref Work on file usr/src/contrib/nvi.1.43/USD.doc/vi.ref/vi.ref.txt Synthesized-from: CSRG/cd3/4.4BSD-Lite2 --- .../nvi.1.43/USD.doc/vi.ref/vi.ref.txt | 5874 +++++++++++++++++ usr/src/share/doc/usd/13.viref | 1 + 2 files changed, 5875 insertions(+) create mode 100644 usr/src/contrib/nvi.1.43/USD.doc/vi.ref/vi.ref.txt create mode 120000 usr/src/share/doc/usd/13.viref diff --git a/usr/src/contrib/nvi.1.43/USD.doc/vi.ref/vi.ref.txt b/usr/src/contrib/nvi.1.43/USD.doc/vi.ref/vi.ref.txt new file mode 100644 index 0000000000..9dcbcbff6f --- /dev/null +++ b/usr/src/contrib/nvi.1.43/USD.doc/vi.ref/vi.ref.txt @@ -0,0 +1,5874 @@ + + + + + + + + + EExx//VVii RReeffeerreennccee MMaannuuaall + + _K_e_i_t_h _B_o_s_t_i_c + + Computer Science Division + Department of Electrical Engineering and Computer Science + University of California, Berkeley + Berkeley, California 94720 + + December 2, 1994 + + + + _A_b_s_t_r_a_c_t + + + + + This document is the reference guide for the 4.4BSD +implementations of nneexx/nnvvii, which are reimplementations +of the historic Berkeley eexx/vvii editors. + + + + + + _A_c_k_n_o_w_l_e_d_g_e_m_e_n_t_s + + + + + Bruce Englar encouraged the early development of +the historic eexx/vvii editor. Peter Kessler helped bring +sanity to version 2's command layout. Bill Joy wrote +versions 1 and 2.0 through 2.7, and created the frame- +work that users see in the present editor. Mark Horton +added macros and other features and made eexx/vvii work on a +large number of terminals and Unix systems. + + NNvvii is originally derived from software contributed +to the University of California, Berkeley by Steve Kirk- +endall, the author of the vvii clone eellvviiss. + + IEEE Standard Portable Operating System Interface +for Computer Environments (POSIX) 1003.2 style Regular +Expression support was done by Henry Spencer. + + The curses library was originally done by Ken +Arnold. Scrolling and reworking for nnvvii was done by +Elan Amir. + + + + + + + + + + + + + + + + The Institute of Electrical and Electronics Engi- +neers has given us permission to reprint portions of +their documentation. Portions of this document are +reprinted and reproduced from IEEE Std 1003.2-1992, IEEE +Standard Portable Operating System Interface for Comput- +er Environments (POSIX), copyright 1992 by the Institute +of Electrical and Electronics Engineers, Inc. + + The financial support of UUNET Communications Ser- +vices is gratefully acknowledged. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--33 + + +11.. DDeessccrriippttiioonn + + VVii is a screen oriented text editor. EExx is a line- +oriented text editor. EExx and vvii are different interfaces to +the same program, and it is possible to switch back and +forth during an edit session. VViieeww is the equivalent of +using the --RR (read-only) option of vvii. + + This reference manual is the one provided with the +nneexx/nnvvii versions of the eexx/vvii text editors. NNeexx/nnvvii are +intended as bug-for-bug compatible replacements for the +original Fourth Berkeley Software Distribution (4BSD) eexx/vvii +programs. This reference manual is accompanied by a tradi- +tional-style manual page. That manual page describes the +functionality found in eexx/vvii in far less detail than the +description here. In addition, it describes the system +interface to eexx/vvii, e.g. command line options, session +recovery, signals, environmental variables, and similar +things. + + This reference is intended for users already familiar +with eexx/vvii. Anyone else should almost certainly read a good +tutorial on the editor first. If you are in an unfamiliar +environment, and you absolutely have to get work done imme- +diately, see the section entitled "FFaasstt SSttaarrttuupp" in the man- +ual page. It is probably enough to get you started. + + There are a few features in nneexx/nnvvii that are not found +in historic versions of eexx/vvii. Some of the more interesting +of those features are briefly described in the section enti- +tled "AAddddiittiioonnaall FFeeaattuurreess" near the end of this document. +For the rest of this document, nneexx/nnvvii is used only when it +is necessary to distinguish it from the historic implementa- +tions of eexx/vvii. + + Future versions of this software will be periodically +made available by anonymous ftp, and can be retrieved from +ffttpp..ccss..bbeerrkkeelleeyy..eedduu, in the directory uuccbb//44bbssdd. + +22.. SSttaarrttuupp IInnffoorrmmaattiioonn + + EExx/vvii interprets one of two possible environmental +variables and reads up to three of five possible files dur- +ing startup. The variables and files are expected to con- +tain eexx commands, not vvii commands. In addition, they are +interpreted _b_e_f_o_r_e the file to be edited is read, and there- +fore many eexx commands may not be used. Generally, any com- +mand that requires output to the screen or that needs a file +upon which to operate, will cause an error if included in a +startup file or environmental variable. + + Because the eexx command set supported by nneexx/nnvvii is a +superset of the command set supported by most historical + + + + + + + + + + +UUSSDD::1133--44 NNvvii//NNeexx RReeffeerreennccee + + +implementations of eexx, nneexx/nnvvii can use the startup files +created for the historical implementations, but the converse +may not be true. + + If the --ss (the historic - option) is specified, or if +standard input is redirected from a file, all environmental +variables and startup files are ignored. + + Otherwise, startup files and environmental variables +are handled in the following order: + + (1) The file //eettcc//vvii..eexxrrcc is read, as long as it is owned + by root or the effective user ID of the user. + + (2) The environmental variable NNEEXXIINNIITT (or the variable + EEXXIINNIITT, if NNEEXXIINNIITT is not set) is interpreted. + + (3) If neither NNEEXXIINNIITT or EEXXIINNIITT was set, and the HHOOMMEE + environmental variable is set, the file $$HHOOMMEE//..nneexxrrcc + (or the file $$HHOOMMEE//..eexxrrcc, if $$HHOOMMEE//..nneexxrrcc does not + exist) is read, as long as the effective user ID of + the user is root or is the same as the owner of the + file. + + (4) If the eexxrrcc option was turned on by one of the previ- + ous startup information sources, the file ..nneexxrrcc (or + the file ..eexxrrcc, if ..nneexxrrcc does not exist) is read, as + long as the effective user ID of the user is the same + as the owner of the file. + + No startup file is read if it is writable by anyone +other than its owner. + + It is not an error for any of the startup environmental +variables or files not to exist. + + Once all environmental variables are interpreted, and +all startup files are read, the first file to be edited is +read in (or a temporary file is created). Then, any com- +mands specified using the --cc option are executed, in the +context of that file. + +33.. RReeccoovveerryy + + There is no recovery program for nneexx/nnvvii, nor does +nneexx/nnvvii run setuid. Recovery files are created readable and +writable by the owner only. Users may recover any file +which they can read, and the superuser may recover any edit +session. + + Edit sessions are backed by files in the directory +named by the rreeccddiirr option (the directory +//vvaarr//ttmmpp//vvii..rreeccoovveerr by default), and are named "vvii..XXXXXXXXXXXX", + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--55 + + +where "XXXXXXXXXXXX" is a number related to the process ID. When +a file is first modified, a second recovery file containing +an email message for the user is created, and is named +"rreeccoovveerr..XXXXXXXXXXXX", where, again, "XXXXXXXXXXXX" is associated with +the process ID. Both files are removed at the end of a nor- +mal edit session, but will remain if the edit session is +abnormally terminated or the user runs the eexx pprreesseerrvvee com- +mand. + + The rreeccddiirr option may be set in either the user's or +system's startup information, changing the recovery direc- +tory. (Note, however, that if a memory based file system is +used as the backup directory, each system reboot will delete +all of the recovery files! The same caution applies to +directories such as //ttmmpp which are cleared of their contents +by a system reboot, or //uussrr//ttmmpp which is periodically +cleared of old files on many systems.) + + The recovery directory should be owned by root, or at +least by a pseudo-user. In addition, if directory "sticky- +bit" semantics are available, the directory should have the +sticky-bit set so that files may only be removed by their +owners. The recovery directory must be read, write, and +executable by any user, i.e. mode 1777. + + If the recovery directory does not exist, eexx/vvii will +attempt to create it. This can result in the recovery +directory being owned by a normal user, which means that +that user will be able to remove other user's recovery and +backup files. This is annoying, but is not a security issue +as the user cannot otherwise access or modify the files. + + The recovery file has all of the necessary information +in it to enable the user to recover the edit session. In +addition, it has all of the necessary email headers for +_s_e_n_d_m_a_i_l(8). When the system is rebooted, all of the files +in //vvaarr//ttmmpp//vvii..rreeccoovveerr named "rreeccoovveerr..XXXXXXXXXXXX" should be sent +to their owners, by email, using the --tt option of sseennddmmaaiill +(or a similar mechanism in other mailers). If eexx/vvii +receives a hangup (SIGHUP) signal, or the user executes the +eexx pprreesseerrvvee command, eexx/vvii will automatically email the +recovery information to the user. + + If your system does not have the sseennddmmaaiill utility (or a +mailer program which supports its interface) the source file +nnvvii//ccoommmmoonn//rreeccoovveerr..cc will have to be modified to use your +local mail delivery programs. Note, if nneexx/nnvvii is changed +to use another mailer, it is important to remember that the +owner of the file given to the mailer is the nneexx/nnvvii user, +so nothing in the file should be trusted as it may have been +modified in an effort to compromise the system. + + + + + + + + + + + + +UUSSDD::1133--66 NNvvii//NNeexx RReeffeerreennccee + + + Finally, the owner execute bit is set on backup files +when they are created, and unset when they are first modi- +fied, e.g. backup files that have no associated email recov- +ery file will have this bit set. (There is also a small +window where empty files can be created and not yet have +this bit set. This is due to the method in which the files +are created.) Such files should be deleted when the system +reboots. + + A simple way to do this cleanup is to insert the fol- +lowing Bourne shell script into your //eettcc//rrcc..llooccaall (or other +startup) file. The script should work with the historic +Bourne shell, a POSIX 1003.2 shell or the Korn shell. (A +copy of this script is included as +nnvvii//iinnssttaallll//rreeccoovveerr..ssccrriipptt in the nneexx/nnvvii distribution.) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--77 + + + ## @@((##))rreeccoovveerr..ssccrriipptt 88..77 ((BBeerrkkeelleeyy)) 88//1166//9944 + ## + ## SSccrriipptt ttoo rreeccoovveerr nnvvii eeddiitt sseessssiioonnss.. + ## + RREECCDDIIRR==//vvaarr//ttmmpp//vvii..rreeccoovveerr + SSEENNDDMMAAIILL==//uussrr//lliibb//sseennddmmaaiill + eecchhoo ''RReeccoovveerriinngg nnvvii eeddiittoorr sseessssiioonnss..'' + + ## CChheecckk eeddiittoorr bbaacckkuupp ffiilleess.. + vviibbaacckkuupp==``eecchhoo $$RREECCDDIIRR//vvii..**`` + iiff [[ ""$$vviibbaacckkuupp"" !!== ""$$RREECCDDIIRR//vvii..**"" ]];; tthheenn + ffoorr ii iinn $$vviibbaacckkuupp;; ddoo + ## OOnnllyy tteesstt ffiilleess tthhaatt aarree rreeaaddaabbllee.. + iiff tteesstt !! --rr $$ii;; tthheenn + ccoonnttiinnuuee + ffii + + ## UUnnmmooddiiffiieedd nnvvii eeddiittoorr bbaacckkuupp ffiilleess eeiitthheerr hhaavvee tthhee + ## eexxeeccuuttee bbiitt sseett oorr aarree zzeerroo lleennggtthh.. DDeelleettee tthheemm.. + iiff tteesstt --xx $$ii --oo !! --ss $$ii;; tthheenn + rrmm $$ii + ffii + ddoonnee + ffii + + ## IItt iiss ppoossssiibbllee ttoo ggeett iinnccoommpplleettee rreeccoovveerryy ffiilleess,, iiff tthhee eeddiittoorr ccrraasshheess + ## aatt tthhee rriigghhtt ttiimmee.. + vviirreeccoovveerryy==``eecchhoo $$RREECCDDIIRR//rreeccoovveerr..**`` + iiff [[ ""$$vviirreeccoovveerryy"" !!== ""$$RREECCDDIIRR//rreeccoovveerr..**"" ]];; tthheenn + ffoorr ii iinn $$vviirreeccoovveerryy;; ddoo + ## OOnnllyy tteesstt ffiilleess tthhaatt aarree rreeaaddaabbllee.. + iiff tteesstt !! --rr $$ii;; tthheenn + ccoonnttiinnuuee + ffii + + ## DDeelleettee aannyy rreeccoovveerryy ffiilleess tthhaatt aarree zzeerroo lleennggtthh,, ccoorrrruupptteedd,, + ## oorr tthhaatt hhaavvee nnoo ccoorrrreessppoonnddiinngg bbaacckkuupp ffiillee.. EEllssee sseenndd mmaaiill + ## ttoo tthhee uusseerr.. + rreeccffiillee==``aawwkk ''//^^XX--vvii--rreeccoovveerr--ppaatthh:://{{pprriinntt $$22}}'' << $$ii`` + iiff tteesstt --nn ""$$rreeccffiillee"" --aa --ss ""$$rreeccffiillee"";; tthheenn + $$SSEENNDDMMAAIILL --tt << $$ii + eellssee + rrmm $$ii + ffii + ddoonnee + ffii + + + + If you are not using the default value for the rreeccddiirr +option, be sure to substitute the value you're using for the +RREECCDDIIRR value in the recovery script. + + + + + + + + + + + +UUSSDD::1133--88 NNvvii//NNeexx RReeffeerreennccee + + + If the path of your system's sseennddmmaaiill program (or what- +ever mailer you're using) is not //uussrr//lliibb//sseennddmmaaiill, be sure +to substitute the correct pathname for the SSEENNDDMMAAIILL value in +the recovery script. Consult the manual page for details on +recovering preserved or aborted editing sessions. + +44.. SSiizziinngg tthhee SSccrreeeenn + + The size of the screen can be set in a number of ways. +EExx/vvii takes the following steps until values are obtained +for both the number of rows and number of columns in the +screen. + + (1) If the environmental variable LLIINNEESS exists, it is + used to specify the number of rows in the screen. + + (2) If the environmental variable CCOOLLUUMMNNSS exists, it is + used to specify the number of columns in the screen. + + (3) The TIOCGWINSZ _i_o_c_t_l(2) is attempted on the standard + error file descriptor. + + (4) The termcap entry (or terminfo entry on System V + machines) is checked for the "li" entry (rows) and + the "co" entry (columns). + + (5) The number of rows is set to 24, and the number of + columns is set to 80. + + If a window change size signal (SIGWINCH) is received, +the new window size is retrieved using the TIOCGWINSZ +_i_o_c_t_l(2) call, and all other information is ignored. + +55.. CChhaarraacctteerr DDiissppllaayy + + In both eexx and vvii printable characters as defined by +_i_s_p_r_i_n_t(3) are displayed using the local character set. + + Non-printable characters, for which _i_s_c_n_t_r_l(3) returns +true, and which are less than octal \076, are displayed as +the string "^^<>", where <> is the charac- +ter that is the original character's value offset from the +"@@" character. For example, the octal character \001 is +displayed as "^^AA". If _i_s_c_n_t_r_l(3) returns true for the octal +character \177, it is displayed as the string "^^??". All +other characters are displayed as either hexadecimal values, +in the form "00xx<> ...... 00xx<>", or as +octal values, in the form "\\<> ...... +\\<>". The display of unknown characters is +based on the value of the ooccttaall option. + + In vvii command mode, the cursor is always positioned on +the last column of characters which take up more than one + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--99 + + +column on the screen. In vvii text input mode, the cursor is +positioned on the first column of characters which take up +more than one column on the screen. + +66.. MMuullttiippllee SSccrreeeennss + + NNvvii supports multiple screens by dividing the window +into regions. It also supports stacks of screens by permit- +ting the user to change the set of screens that are cur- +rently displayed. + + The command sspplliitt divides the current screen into two +regions of approximately equal size. If a list of files are +specified as arguments to the sspplliitt command, the list of +files to be edited is initialized as if the nneexxtt command had +been used. If no files are specified, the new screen will +begin by editing the same file as the previous screen. + + When more than one screen is editing a file, changes in +any screen are reflected in all other screens editing the +same file. Exiting a screen without saving any changes (or +explicitly discarding them) is permitted until the last +screen editing the file is exited, at which time the changes +must be saved or discarded. + + The rreessiizzee command permits resizing of individual +screens. Screens may be grown, shrunk or set to an absolute +number of rows. + + The ^^WW command is used to switch between screens. Each +^^WW moves to the next lower screen in the window, or to the +first screen in the window if there are no lower screens. + + The bbgg command "backgrounds" the current screen. The +screen disappears from the window, and the rows it occupied +are taken over by a neighboring screen. It is an error to +attempt to background the only screen in the window. + + The ddiissppllaayy ssccrreeeennss command displays the names of the +files associated with the current backgrounded screens in +the window. + + The ffgg [[ffiillee]] command "foregrounds" the first screen in +the list of backgrounded screens that is associated with its +argument. If no file argument is specified, the first +screen on the list is foregrounded. Foregrounding consists +of backgrounding the current screen, and replacing its space +in the window with the foregrounded screen. + + If the last screen in the window is exited, and there +are backgrounded screens, the first screen on the list of +backgrounded screens takes over the window. + + + + + + + + + + + +UUSSDD::1133--1100 NNvvii//NNeexx RReeffeerreennccee + + +77.. RReegguullaarr EExxpprreessssiioonnss aanndd RReeppllaacceemmeenntt SSttrriinnggss + + Regular expressions are used in line addresses, as the +first part of the eexx ssuubbssttiittuuttee, gglloobbaall, and vv commands, and +in search patterns. + + The regular expressions supported by eexx/vvii are, by +default, the Basic Regular Expressions (BRE's) described in +the IEEE POSIX Standard 1003.2. The eexxtteennddeedd option causes +all regular expressions to be interpreted as the Extended +Regular Expressions (ERE's) described by the same standard. +(See _r_e___f_o_r_m_a_t(7) for more information.) Generally speak- +ing, BRE's are the Regular Expressions found in _e_d(1) and +_g_r_e_p(1), and ERE's are the Regular Expressions found in +_e_g_r_e_p(1). + + The following is not intended to provide a description +of Regular Expressions. The information here only describes +strings and characters which have special meanings in the +eexx/vvii version of RE's, or options which change the meanings +of characters that normally have special meanings in RE's. + + (1) An empty RE (e.g. "////" or "????" is equivalent to the + last RE used. + + (2) The construct "\\<<" matches the beginning of a word. + + (3) The construct "\\>>" matches the end of a word. + + (4) The character "~~" matches the replacement part of the + last ssuubbssttiittuuttee command. + + When the mmaaggiicc option is _n_o_t set, the only characters +with special meanings are a "^^" character at the beginning +of an RE, a "$$" character at the end of an RE, and the +escaping character "\\". The characters "..", "**", "[[" and +"~~" are treated as ordinary characters unless preceded by a +"\\"; when preceded by a "\\" they regain their special mean- +ing. + + Replacement strings are the second part of a ssuubbssttiittuuttee +command. + + The character "&&" (or "\\&&" if the mmaaggiicc option is _n_o_t +set) in the replacement string stands for the text matched +by the RE that is being replaced. The character "~~" (or +"\\~~" if the mmaaggiicc option is _n_o_t set) stands for the replace- +ment part of the previous ssuubbssttiittuuttee command. It is only +valid after a ssuubbssttiittuuttee command has been performed. + + The string "\\##", where "##" is an integer value from 1 +to 9, stands for the text matched by the portion of the RE +enclosed in the "##"'th set of escaped parentheses, e.g. + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--1111 + + +"\\((" and "\\))". For example, "ss//aabbcc\\((..**\\))ddeeff//\\11//" deletes +the strings "aabbcc" and "ddeeff" from the matched pattern. + + The strings "\\ll", "\\uu", "\\LL" and "\\UU" can be used to +modify the case of elements in the replacement string. The +string "\\ll" causes the next character to be converted to +lowercase; the string "\\uu" behaves similarly, but converts +to uppercase (e.g. ss//aabbcc//\\UU&&// replaces the string aabbcc with +AABBCC). The strings "\\LL" causes characters up to the end of +the string or the next occurrence of the strings "\\ee" or +"\\EE" to be converted to lowercase; the string "\\UU" behaves +similarly, but converts to uppercase. + + If the entire replacement pattern is "%%", then the last +replacement pattern is used again. + + In vvii, inserting a <> into the replacement +string will cause the matched line to be split into two +lines at that point. (The <> will be discarded.) + +88.. GGeenneerraall EEddiittoorr DDeessccrriippttiioonn + + When eexx or vvii are executed, the text of a file is read +(or a temporary file is created), and then all editing +changes happen within the context of the copy of the file. +_N_o _c_h_a_n_g_e_s _a_f_f_e_c_t _t_h_e _a_c_t_u_a_l _f_i_l_e _u_n_t_i_l _t_h_e _f_i_l_e _i_s _w_r_i_t_t_e_n +_o_u_t, either using a write command or another command which +is affected by the aauuttoowwrriittee option. + + All files are locked (using the _f_l_o_c_k(2) or _f_c_n_t_l(2) +interfaces) during the edit session, to avoid inadvertently +making modifications to multiple copies of the file. If a +lock cannot be obtained for a file because it is locked by +another process, the edit session is read-only (as if the +rreeaaddoonnllyy option or the --RR flag had been specified). If a +lock cannot be obtained for other reasons, the edit session +will continue, but the file status information (see the +<> command) will reflect this fact. + + Both eexx and vvii are modeful editors, i.e. they have two +modes, "command" mode and "text input" mode. The former is +intended to permit you to enter commands which modifies +already existing text. The latter is intended to permit you +to enter new text. When eexx first starts running, it is in +command mode, and usually displays a prompt (see the pprroommpptt +option for more information). The prompt is a single colon +("::") character. There are three commands that switch eexx +into text input mode: aappppeenndd, cchhaannggee and iinnsseerrtt. Once in +input mode, entering a line containing only a single period +("..") ends text input mode and returns to command mode, +where the prompt is redisplayed. + + + + + + + + + + + + +UUSSDD::1133--1122 NNvvii//NNeexx RReeffeerreennccee + + + When vvii first starts running, it is in command mode as +well. There are eleven commands that switch vvii into text +input mode: AA, aa, CC, cc, II, ii, OO, oo, RR, SS and ss. Once in +input mode, entering an <> character ends text input +mode and returns to command mode. + + EExx/vvii present three different interfaces to editing a +file. EExx presents a line oriented interface. VVii presents a +full screen display oriented interface, also known as +"visual mode". In addition, there is a third mode, "open +mode", which is line oriented, but supports cursor movement +and editing within the displayed line, similarly to visual +mode. Open mode is not yet implemented in nnvvii. + + The following words have special meanings in both the +eexx and vvii command descriptions: + +<> + The interrupt character is used to interrupt the cur- + rent operation. Normally <>, whatever charac- + ter is set for the current terminal is used. + +<> + The literal next character is used to escape the subse- + quent character from any special meaning. This charac- + ter is always <>. If the terminal is not set + up to do XON/XOFF flow control, then <> is + used to mean literal next as well. + +ccuurrrreenntt ppaatthhnnaammee + The pathname of the file currently being edited by vi. + When the percent character ("%%") appears in a file name + entered as part of an eexx command argument, it is + replaced by the current pathname. (The "%%" character + can be escaped by preceding it with a backslash.) + +aalltteerrnnaattee ppaatthhnnaammee + The name of the last file name mentioned in an eexx com- + mand, or, the previous current pathname if the last + file mentioned becomes the current file. When the hash + mark character ("##") appears in a file name entered as + part of an eexx command argument, it is replaced by the + alternate pathname. (The "##" character can be escaped + by preceding it with a backslash.) + +bbuuffffeerr + One of a number of named areas for saving copies of + text. Commands that change or delete text can save the + changed or deleted text into a specific buffer, for + later use, if the command allows it (i.e. the eexx cchhaannggee + command cannot save the changed text in a named + buffer). Buffers are named with a single character, + preceded by a double quote, e.g. ""<> in vvii + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--1133 + + + and without the double quote, e.g. <>, in eexx. + (The double quote isn't necessary for eexx because + buffers names are denoted by their position in the com- + mand line.) Historic implementations of eexx/vvii limited + <> to the alphanumeric characters; nneexx/nnvvii + permits the use of any character without another mean- + ing in the position where a buffer name is expected. + + Buffers named by uppercase characters are the same as + buffers named by lowercase characters, e.g. the buffer + named by the English character "AA" is the same as the + buffer named by the character "aa", with the exception + that, if the buffer contents are being changed (as with + a text deletion or vvii cchhaannggee command), the text is + _a_p_p_e_n_d_e_d to the buffer, instead of replacing the cur- + rent contents. + + The buffers named by the numeric characters (in + English, "11" through "99"), are special. If a region of + text including characters from more than one line, or a + single line of text specified by using a line-oriented + motion, is changed or deleted in the file using the vvii + cchhaannggee or ddeelleettee commands, a copy of the text is placed + into the numeric buffer "11", regardless of the user + specifying another buffer in which to save it. In + addition, there are a few commands which, when used as + a mmoottiioonn with the vvii cchhaannggee and ddeelleettee commands, _a_l_w_a_y_s + copy the specified region of text into the numeric + buffers regardless of the region including characters + from more than one line. These commands are: + + + <> %% (( )) + ``<> // ?? NN + nn {{ }} + + + Before this copy is done, the previous contents of + buffer "11" are moved into buffer "22", "22" into buffer + "33", and so on. The contents of buffer "99" are dis- + carded. In vvii, text may be explicitly stored into the + numeric buffers. In this case, the buffer rotation + described above occurs before the replacement of the + buffer's contents. The numeric buffers are only avail- + able in vviissuuaall and ooppeenn modes, and are not accessible + by eexx in any way, although changed and deleted text is + still stored there while in eexx mode. + + When a vvii command synopsis shows both a [[bbuuffffeerr]] and a + [[ccoouunntt]], they may be presented in any order. + + Finally, all buffers are either "line" or "character" + + + + + + + + + + + +UUSSDD::1133--1144 NNvvii//NNeexx RReeffeerreennccee + + + oriented. All eexx commands which store text into + buffers are line oriented. Some vvii commands which + store text into buffers are line oriented, and some are + character oriented; the description for each applicable + vvii command notes whether text copied into buffers using + the command is line or character oriented. In addi- + tion, the vvii command ddiissppllaayy bbuuffffeerrss displays the cur- + rent orientation for each buffer. Generally, the only + importance attached to this orientation is that if the + buffer is subsequently inserted into the text, line + oriented buffers create new lines for each of the lines + they contain, and character oriented buffers create new + lines for any lines _o_t_h_e_r than the first and last lines + they contain. The first and last lines are inserted + into the text at the current cursor position, becoming + part of the current line. If there is more than one + line in the buffer, however, the current line itself + will be split. + +uunnnnaammeedd bbuuffffeerr + The unnamed buffer is a text storage area which is used + by commands that use or operate on a buffer when no + buffer is specified by the user. If the command stores + text into a buffer, the text is stored into the unnamed + buffer even if a buffer is also specified by the user, + It is not possible to append text to the unnamed + buffer. If text is appended to a named buffer, the + named buffer contains both the old and new text, while + the unnamed buffer contains only the new text. There + is no way to explicitly reference the unnamed buffer. + + Historically, the contents of the unnamed buffer were + discarded by many different commands, even ones that + didn't store text into it. NNeexx/nnvvii never discards the + contents of the unnamed buffer until new text replaces + them. + +wwhhiitteessppaaccee + The characters and . + +<> + The character represented by an ASCII <>. + This character is almost always treated identically to + a <> character, but differs in that it can be + escaped into the file text or into a command. + +<> + The character represented by an ASCII <>. + This character is almost always treated identically to + a <> character, but differs in that it cannot + be escaped into the file text or into a command. + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--1155 + + +99.. VVii DDeessccrriippttiioonn + + VVii takes up the entire screen to display the edited +file, except for the bottom line of the screen. The bottom +line of the screen is used to enter eexx commands, and for vvii +error and informational messages. If no other information +is being displayed, the default display can show the current +cursor row and cursor column, an indication of whether the +file has been modified, and the current mode of the editor. +See the rruulleerr and sshhoowwmmooddee options for more information. + + Empty lines do not have any special representation on +the screen, but lines on the screen that would logically +come after the end of the file are displayed as a single +tilde ("~~") character. To differentiate between empty lines +and lines consisting of only whitespace characters, use the +lliisstt option. Historically, implementations of vvii have also +displayed some lines as single asterisk ("@@") characters. +These were lines that were not correctly displayed, i.e. +lines on the screen that did not correspond to lines in the +file, or lines that did not fit on the current screen. NNvvii +never displays lines in this fashion. + + VVii is a modeful editor, i.e. it has two modes, "com- +mand" mode and "text input" mode. When vvii first starts, it +is in command mode. There are several commands that change +vvii into text input mode. The <> character is used to +resolve the text input into the file, and exit back into +command mode. In vvii command mode, the cursor is always +positioned on the last column of characters which take up +more than one column on the screen. In vvii text insert mode, +the cursor is positioned on the first column of characters +which take up more than one column on the screen. + + When positioning the cursor to a new line and column, +the type of movement is defined by the distance to the new +cursor position. If the new position is close, the screen +is scrolled to the new location. If the new position is far +away, the screen is repainted so that the new position is on +the screen. If the screen is scrolled, it is moved a mini- +mal amount, and the cursor line will usually appear at the +top or bottom of the screen. If the screen is repainted, +the cursor line will appear in the center of the screen, +unless the cursor is sufficiently close to the beginning or +end of the file that this isn't possible. If the lleeffttrriigghhtt +option is set, the screen may be scrolled or repainted in a +horizontal direction as well as in a vertical one. + + A major difference between the historical vvii presenta- +tion and nnvvii is in the scrolling and screen oriented posi- +tion commands, <>, <>, <>, <>, <>, <>, HH, LL and MM. In histori- +cal implementations of vvii, these commands acted on physical + + + + + + + + + + +UUSSDD::1133--1166 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + +(as opposed to logical, or screen) lines. For lines that +were sufficiently long in relation to the size of the +screen, this meant that single line scroll commands might +repaint the entire screen, scrolling or screen positioning +commands might not change the screen or move the cursor at +all, and some lines simply could not be displayed, even +though vvii would edit the file that contained them. In nnvvii, +these commands act on logical, i.e. screen lines. You are +unlikely to notice any difference unless you are editing +files with lines significantly longer than a screen width. + + VVii keeps track of the currently "most attractive" cur- +sor position. Each command description (for commands that +alter the current cursor position), specifies if the cursor +is set to a specific location in the line, or if it is moved +to the "most attractive cursor position". The latter means +that the cursor is moved to the cursor position that is hor- +izontally as close as possible to the current cursor posi- +tion. If the current line is shorter than the cursor posi- +tion vvii would select, the cursor is positioned on the last +character in the line. (If the line is empty, the cursor is +positioned on the first column of the line.) If a command +moves the cursor to the most attractive position, it does +not alter the current cursor position, and a subsequent +movement will again attempt to move the cursor to that posi- +tion. Therefore, although a movement to a line shorter than +the currently most attractive position will cause the cursor +to move to the end of that line, a subsequent movement to a +longer line will cause the cursor to move back to the most +attractive position. + + In addition, the $$ command makes the end of each line +the most attractive cursor position rather than a specific +column. + + Each vvii command described below notes where the cursor +ends up after it is executed. This position is described in +terms of characters on the line, i.e. "the previous charac- +ter", or, "the last character in the line". This is to +avoid needing to continually refer to on what part of the +character the cursor rests. + + The following words have special meaning for vvii com- +mands. + +pprreevviioouuss ccoonntteexxtt + The position of the cursor before the command which + caused the last absolute movement was executed. Each + vvii command described in the next section that is con- + sidered an absolute movement is so noted. In addition, + specifying _a_n_y address to an eexx command is considered + an absolute movement. + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--1177 + + +mmoottiioonn + A second vvii command can be used as an optional trailing + argument to the vvii <<, >>, !!, cc, dd, yy, and (depending on + the ttiillddeeoopp option) ~~ commands. This command indicates + the end of the region of text that's affected by the + command. The motion command may be either the command + character repeated (in which case it means the current + line) or a cursor movement command. In the latter + case, the region affected by the command is from the + starting or stopping cursor position which comes first + in the file, to immediately before the starting or + stopping cursor position which comes later in the file. + Commands that operate on lines instead of using begin- + ning and ending cursor positions operate on all of the + lines that are wholly or partially in the region. In + addition, some other commands become line oriented + depending on where in the text they are used. The com- + mand descriptions below note these special cases. + + The following commands may all be used as motion compo- + nents for vvii commands: + + + <> <> <> <> + <> <> <> $$ + %% ''<> (( )) + ++ ,, -- // + 00 ;; ?? BB + EE FF GG HH + LL MM NN TT + WW [[[[ ]]]] ^^ + __ ``<> bb ee + ff hh jj kk + ll nn tt ww + {{ || }} + + + The optional count prefix available for some of the vvii + commands that take motion commands, or the count prefix + available for the vvii commands that are used as motion + components, may be included and is _a_l_w_a_y_s considered + part of the motion argument. For example, the commands + "cc22ww" and "22ccww" are equivalent, and the region affected + by the cc command is two words of text. In addition, if + the optional count prefix is specified for both the vvii + command and its motion component, the effect is multi- + plicative and is considered part of the motion argu- + ment. For example, the commands "44ccww" and "22cc22ww" are + equivalent, and the region affected by the cc command is + four words of text. + + + + + + + + + + + + + +UUSSDD::1133--1188 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + +ccoouunntt + A positive number used as an optional argument to most + commands, either to give a size or a position (for dis- + play or movement commands), or as a repeat count (for + commands that modify text). The count argument is + always optional and defaults to 1 unless otherwise + noted in the command description. + + When a vvii command synopsis shows both a [[bbuuffffeerr]] and + [[ccoouunntt]], they may be presented in any order. + +wwoorrdd + Generally, in languages where it is applicable, vvii rec- + ognizes two kinds of words. First, a sequence of let- + ters, digits and underscores, delimited at both ends + by: characters other than letters, digits, or under- + scores, the beginning or end of a line, and the begin- + ning or end of the file. Second, a sequence of charac- + ters other than letters, digits, underscores, or + whitespace characters, delimited at both ends by: a + letter, digit, underscore, or whitespace character, the + beginning or end of a line, and the beginning or end of + the file. For example, the characters " !!@@##aabbcc$$%%^^ " + contain three words: "!!@@##", "aabbcc" and "$$%%^^". + + Groups of empty lines (or lines containing only whites- + pace characters) are treated as a single word. + +bbiiggwwoorrdd + A set of non-whitespace characters preceded and fol- + lowed by whitespace characters or the beginning or end + of the file or line. For example, the characters " + !!@@##aabbcc$$%%^^ " contain one bigword: "!!@@##aabbcc$$%%^^". + + Groups of empty lines (or lines containing only whites- + pace characters) are treated as a single bigword. + +ppaarraaggrraapphh + An area of text that begins with either the beginning + of a file, an empty line, or a section boundary, and + continues until either an empty line, section boundary, + or the end of the file. + + Groups of empty lines (or lines containing only whites- + pace characters) are treated as a single paragraph. + + Additional paragraph boundaries can be defined using + the ppaarraaggrraapphhss option. + +sseeccttiioonn + An area of text that starts with the beginning of the + file or a line whose first character is an open brace + ("{{") and continues until the next section or the end + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--1199 + + + of the file. + + Additional section boundaries can be defined using the + sseeccttiioonnss option. + +sseenntteennccee + An area of text that begins with either the beginning + of the file or the first nonblank character following + the previous sentence, paragraph, or section boundary + and continues until the end of the file or a period + ("..") exclamation point ("!!") or question mark ("??") + character, followed by either an end-of-line or two + whitespace characters. Any number of closing parenthe- + ses ("))"), brackets ("]]"), double-quote ("""") or single + quote ("''") characters can appear between the period, + exclamation point, or question mark and the whitespace + characters or end-of-line. + + Groups of empty lines (or lines containing only whites- + pace characters) are treated as a single sentence. + +1100.. VVii CCoommmmaannddss + + The following section describes the commands available +in the command mode of the vvii editor. In each entry below, +the tag line is a usage synopsis for the command character. +In addition, the final line and column the cursor rests +upon, and any options which affect the command are noted. + +[[ccoouunntt]] <> + Search forward ccoouunntt times for the current word. The + current word begins at the first non-whitespace charac- + ter on or after the current cursor position, and + extends up to the next non-word character or the end of + the line. The search is literal, i.e. no characters in + the word have any special meaning in terms of Regular + Expressions. It is an error if no matching pattern is + found between the starting position and the end of the + file. + + The <> command is an absolute movement. The + <> command may be used as the motion component + of other vvii commands, in which case any text copied + into a buffer is character oriented. + + Line: Set to the line where the word is found. + Column: Set to the first character of the word. + Options: Affected by the iiggnnoorreeccaassee and wwrraappssccaann + options. + +[[ccoouunntt]] <> + Page backward ccoouunntt screens. Two lines of overlap are + maintained, if possible, by displaying the window + + + + + + + + + + +UUSSDD::1133--2200 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + starting at line ((ttoopp__lliinnee -- ccoouunntt ** wwiinnddooww__ssiizzee)) ++ 22, + where wwiinnddooww__ssiizzee is the value of the wwiinnddooww option. + (In the case of split screens, this size is corrected + to the current screen size.) It is an error if the + movement is past the beginning of the file. + + Line: Set to the last line of text displayed on the + screen. + Column: Set to the first nonblank character of the + line. + Options: Affected by the wwiinnddooww option. + +[[ccoouunntt]] <> + Scroll forward ccoouunntt lines. If ccoouunntt is not specified, + scroll forward the number of lines specified by the + last <> or <> command. If this is + the first <> or <> command, scroll + forward half the number of lines in the screen. (In + the case of split screens, the default scrolling dis- + tance is corrected to half the current screen size.) + It is an error if the movement is past the end of the + file. + + Line: Set to the current line plus the number of + lines scrolled. + Column: Set to the first nonblank character of the + line. + Options: None. + +[[ccoouunntt]] <> + Scroll forward ccoouunntt lines, leaving the cursor on the + current line and column, if possible. It is an error + if the movement is past the end of the file. + + Line: Unchanged unless the current line scrolls off + the screen, in which case it is set to the + first line on the screen. + Column: Unchanged unless the current line scrolls off + the screen, in which case it is set to the + most attractive cursor position. + Options: None. + +[[ccoouunntt]] <> + Page forward ccoouunntt screens. Two lines of overlap are + maintained, if possible, by displaying the window + starting at line ttoopp__lliinnee ++ ccoouunntt ** wwiinnddooww__ssiizzee -- 22, + where wwiinnddooww__ssiizzee is the value of the wwiinnddooww option. + (In the case of split screens, this size is corrected + to the current screen size.) It is an error if the + movement is past the end of the file. + + Line: Set to the first line on the screen. + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--2211 + + + Column: Set to the first nonblank character of the + current line. + Options: Affected by the wwiinnddooww option. + +<> + Display the file information. The information includes + the current pathname, the current line, the number of + total lines in the file, the current line as a percent- + age of the total lines in the file, if the file has + been modified, was able to be locked, if the file's + name has been changed, and if the edit session is read- + only. + + Line: Unchanged. + Column: Unchanged. + Options: None. + +<> +[[ccoouunntt]] hh + Move the cursor back ccoouunntt characters in the current + line. It is an error if the cursor is on the first + character in the line. + + The <> and hh commands may be used as the + motion component of other vvii commands, in which case + any text copied into a buffer is character oriented. + + Line: Unchanged. + Column: Set to the ccuurrrreenntt -- ccoouunntt character, or, the + first character in the line if ccoouunntt is + greater than or equal to the number of charac- + ters in the line before the cursor. + Options: None. + +[[ccoouunntt]] <> +[[ccoouunntt]] <> +[[ccoouunntt]] jj + Move the cursor down ccoouunntt lines without changing the + current column. It is an error if the movement is past + the end of the file. + + The <>, <> and jj commands may be used + as the motion component of other vvii commands, in which + case any text copied into a buffer is line oriented. + + Line: Set to the current line plus ccoouunntt. + Column: The most attractive cursor position. + Options: None. + +<> +<> + Repaint the screen. + + + + + + + + + + + +UUSSDD::1133--2222 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + Line: Unchanged. + Column: Unchanged. + Options: None. + +[[ccoouunntt]] <> +[[ccoouunntt]] ++ + Move the cursor down ccoouunntt lines to the first nonblank + character of that line. It is an error if the movement + is past the end of the file. + + The <> and ++ commands may be used as the + motion component of other vvii commands, in which case + any text copied into a buffer is line oriented. + + Line: Set to the current line plus ccoouunntt. + Column: Set to the first nonblank character in the + line. + Options: None. + +[[ccoouunntt]] <> +[[ccoouunntt]] kk + Move the cursor up ccoouunntt lines, without changing the + current column. It is an error if the movement is past + the beginning of the file. + + The <> and kk commands may be used as the + motion component of other vvii commands, in which case + any text copied into a buffer is line oriented. + + Line: Set to the current line minus ccoouunntt. + Column: The most attractive cursor position. + Options: None. + +<> + Return to the most recent tag context. The <> + command is an absolute movement. + + Line: Set to the context of the previous tag com- + mand. + Column: Set to the context of the previous tag com- + mand. + Options: None. + +[[ccoouunntt]] <> + Scroll backward ccoouunntt lines. If ccoouunntt is not speci- + fied, scroll backward the number of lines specified by + the last <> or <> command. If this + is the first <> or <> command, scroll + backward half the number of lines in the screen. (In + the case of split screens, the default scrolling dis- + tance is corrected to half the current screen size.) + It is an error if the movement is past the beginning of + the file. + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--2233 + + + Line: Set to the current line minus the amount + scrolled. + Column: Set to the first nonblank character in the + line. + Options: None. + +<> + Switch to the next lower screen in the window, or, to + the first screen if there are no lower screens in the + window. + + Line: Set to the previous cursor position in the + window. + Column: Set to the previous cursor position in the + window. + Options: None. + +[[ccoouunntt]] <> + Scroll backward ccoouunntt lines, leaving the current line + and column as is, if possible. It is an error if the + movement is past the beginning of the file. + + Line: Unchanged unless the current line scrolls off + the screen, in which case it is set to the + last line of text displayed on the screen. + Column: Unchanged unless the current line scrolls off + the screen, in which case it is the most + attractive cursor position. + Options: None. + +<> + Suspend the current editor session. If the file has + been modified since it was last completely written, and + the aauuttoowwrriittee option is set, the file is written before + the editor session is suspended. If this write fails, + the editor session is not suspended. + + Line: Unchanged. + Column: Unchanged. + Options: Affected by the aauuttoowwrriittee option. + +<> + Execute eexx commands or cancel partial commands. If an + eexx command is being entered (e.g. //, ??, :: or !!), the + command is executed. If a partial command has been + entered, e.g. "[[00--99]]**", or "[[00--99]]**[[!!<<>>ccddyy]]", the com- + mand is cancelled. Otherwise, it is an error. + + Line: When an eexx command is being executed, the cur- + rent line is set as described for that com- + mand. Otherwise, unchanged. + Column: When an eexx command is being executed, the cur- + rent column is set as described for that + + + + + + + + + + +UUSSDD::1133--2244 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + command. Otherwise, unchanged. + Options: None. + +<> + Push a tag reference onto the tag stack. The tags + files (see the ttaaggss option for more information) are + searched for a tag matching the current word. The cur- + rent word begins at the first non-whitespace character + on or after the current cursor position, and extends up + to the next non-word character or the end of the line. + If a matching tag is found, the current file is dis- + carded and the file containing the tag reference is + edited. + + If the current file has been modified since it was last + completely written, the command will fail. The <> command is an absolute movement. + + Line: Set to the line containing the matching tag + string. + Column: Set to the start of the matching tag string. + Options: Affected by the ttaaggss and ttaagglleennggtthh options. + +<> + Switch to the most recently edited file. + + If the file has been modified since it was last com- + pletely written, and the aauuttoowwrriittee option is set, the + file is written out. If this write fails, the command + will fail. Otherwise, if the current file has been + modified since it was last completely written, the com- + mand will fail. + + Line: Set to the line the cursor was on when the + file was last edited. + Column: Set to the column the cursor was on when the + file was last edited. + Options: Affected by the aauuttoowwrriittee option. + +[[ccoouunntt]] <> +[[ccoouunntt]] ll + Move the cursor forward ccoouunntt characters without chang- + ing the current line. It is an error if the cursor is + on the last character in the line. + + The <> and ll commands may be used as the motion + component of other vvii commands, in which case any text + copied into a buffer is character oriented. In addi- + tion, these commands may be used as the motion compo- + nents of other commands when the cursor is on the last + character in the line, without error. + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--2255 + + + Line: Unchanged. + Column: Set to the current character plus the next + ccoouunntt characters, or to the last character on + the line if ccoouunntt is greater than the number + of characters in the line after the current + character. + Options: None. + +[[ccoouunntt]] !! mmoottiioonn sshheellll--aarrgguummeenntt((ss))<> + Replace text with results from a shell command. Pass + the lines specified by the ccoouunntt and mmoottiioonn arguments + as standard input to the program named by the sshheellll + option, and replace those lines with the output (both + standard error and standard output) of that command. + + After the motion is entered, vvii prompts for arguments + to the shell command. + + Within those arguments, "%%" and "##" characters are + expanded to the current and alternate pathnames, + respectively. The "!!" character is expanded with the + command text of the previous !! or ::!! commands. + (Therefore, the command !!<>!! repeats the previ- + ous !! command.) The special meanings of "%%", "##" and + "!!" can be overridden by escaping them with a back- + slash. If no !! or ::!! command has yet been executed, + it is an error to use an unescaped "!!" character as a + shell argument. The !! command does _n_o_t do shell + expansion on the strings provided as arguments. If any + of the above expansions change the arguments the user + entered, the command is redisplayed at the bottom of + the screen. + + VVii then executes the program named by the sshheellll option, + with a --cc flag followed by the arguments (which are + bundled into a single argument). + + The !! command is permitted in an empty file. + + If the file has been modified since it was last com- + pletely written, the !! command will warn you. + + Line: The first line of the replaced text. + Column: The first column of the replaced text. + Options: Affected by the sshheellll option. + +[[ccoouunntt]] ## ++||-- + Increment or decrement the number referenced by the + cursor. If the trailing character is a ++, the number + is incremented by ccoouunntt. If the trailing character is + a --, the number is decremented by ccoouunntt. + + A leading "00XX" or "00xx" causes the number to be + + + + + + + + + + +UUSSDD::1133--2266 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + interpreted as a hexadecimal number. Otherwise, a + leading "00" causes the number to be interpreted as an + octal number, unless a non-octal digit is found as part + of the number. Otherwise, the number is interpreted as + a decimal number, and may have a leading ++ or -- sign. + The current number begins at the first non-blank char- + acter at or after the current cursor position, and + extends up to the end of the line or the first charac- + ter that isn't a possible character for the numeric + type. The format of the number (e.g. leading 0's, + signs) is retained unless the new value cannot be rep- + resented in the previous format. + + Octal and hexadecimal numbers, and the result of the + operation, must fit into an "uunnssiiggnneedd lloonngg". Simi- + larly, decimal numbers and their result must fit into a + "ssiiggnneedd lloonngg". It is an error to use this command when + the cursor is not positioned at a number. + + + Line: Unchanged. + Column: Set to the first character in the cursor num- + ber. + Options: None. + +[[ccoouunntt]] $$ + Move the cursor to the end of a line. If ccoouunntt is + specified, the cursor moves down ccoouunntt -- 11 lines. + + It is not an error to use the $$ command when the cursor + is on the last character in the line or when the line + is empty. + + The $$ command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented, unless the cursor is at, + or before the first nonblank character in the line, in + which case it is line oriented. It is not an error to + use the $$ command as a motion component when the cursor + is on the last character in the line, although it is an + error when the line is empty. + + Line: Set to the current line plus ccoouunntt minus 1. + Column: Set to the last character in the line. + Options: None. + +%% + Move to the matching character. The cursor moves to + the parenthesis or curly brace which _m_a_t_c_h_e_s the paren- + thesis or curly brace found at the current cursor posi- + tion or which is the closest one to the right of the + cursor on the line. It is an error to execute the %% + command on a line without a parenthesis or curly brace. + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--2277 + + + Historically, any ccoouunntt specified to the %% command was + ignored. + + The %% command is an absolute movement. The %% command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + character oriented, unless the starting point of the + region is at or before the first nonblank character on + its line, and the ending point is at or after the last + nonblank character on its line, in which case it is + line oriented. + + Line: Set to the line containing the matching char- + acter. + Column: Set to the matching character. + Options: None. + +&& + Repeat the previous substitution command on the current + line. + + Historically, any ccoouunntt specified to the && command was + ignored. + + Line: Unchanged. + Column: Unchanged if the cursor was on the last char- + acter in the line, otherwise, set to the first + nonblank character in the line. + Options: Affected by the eeddccoommppaattiibbllee, eexxtteennddeedd, + iiggnnoorreeccaassee and mmaaggiicc options. + +''<> +``<> + Return to a context marked by the character <>. If <> is the "''" or "``" character, + return to the previous context. If <> is any + other character, return to the context marked by that + character (see the mm command for more information). If + the command is the '' command, only the line value is + restored, and the cursor is placed on the first non- + blank character of that line. If the command is the `` + command, both the line and column values are restored. + + It is an error if the context no longer exists because + of line deletion. (Contexts follow lines that are + moved, or which are deleted and then restored.) + + The '' and `` commands are both absolute movements. They + may be used as a motion component for other vvii com- + mands. For the '' command, any text copied into a + buffer is line oriented. For the `` command, any text + copied into a buffer is character oriented, unless it + both starts and stops at the first character in the + + + + + + + + + + +UUSSDD::1133--2288 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + line, in which case it is line oriented. In addition, + when using the `` command as a motion component, com- + mands which move backward and started at the first + character in the line, or move forward and ended at the + first character in the line, are corrected to the last + character of the line preceding the starting and ending + lines, respectively. + + Line: Set to the line from the context. + Column: Set to the first nonblank character in the + line, for the '' command, and set to the con- + text's column for the `` command. + Options: None. + +[[ccoouunntt]] (( + Back up ccoouunntt sentences. + + The (( command is an absolute movement. The (( command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + character oriented, unless the starting and stopping + points of the region are the first character in the + line, in which case it is line oriented. If it is line + oriented, the starting point of the region is adjusted + to be the end of the line immediately before the start- + ing cursor position. + + Line: Set to the line containing the beginning of + the sentence. + Column: Set to the first nonblank character of the + sentence. + Options: Affected by the lliisspp option. + +[[ccoouunntt]] )) + Move forward ccoouunntt sentences. + + The )) command is an absolute movement. The )) command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + character oriented, unless the starting point of the + region is the first character in the line, in which + case it is line oriented. In the latter case, if the + stopping point of the region is also the first charac- + ter in the line, it is adjusted to be the end of the + line immediately before it. + + Line: Set to the line containing the beginning of + the sentence. + Column: Set to the first nonblank character of the + sentence. + Options: Affected by the lliisspp option. + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--2299 + + +[[ccoouunntt]] ,, + Reverse find character ccoouunntt times. Reverse the last + FF, ff, TT or tt command, searching the other way in the + line, ccoouunntt times. It is an error if a FF, ff, TT or tt + command has not been performed yet. + + The ,, command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Unchanged. + Column: Set to the searched-for character for the FF + and ff commands, before the character for the tt + command and after the character for the TT com- + mand. + Options: None. + +[[ccoouunntt]] -- + Move to the first nonblank of the previous line, ccoouunntt + times. + + It is an error if the movement is past the beginning of + the file. + + The -- command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is line oriented. + + Line: Set to the current line minus ccoouunntt. + Column: Set to the first nonblank character in the + line. + Options: None. + +[[ccoouunntt]] .. + Repeat the last vvii command that modified text. The + repeated command may be a command and motion component + combination. If ccoouunntt is specified, it replaces _b_o_t_h + the count specified for the repeated command, and, if + applicable, for the repeated motion component. If + ccoouunntt is not specified, the counts originally specified + to the command being repeated are used again. + + As a special case, if the .. command is executed imme- + diately after the uu command, the change log is rolled + forward or backward, depending on the action of the uu + command. + + Line: Set as described for the repeated command. + Column: Set as described for the repeated command. + Options: None. + +//RREE<> + + + + + + + + + + + +UUSSDD::1133--3300 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + +//RREE// [[ooffffsseett]]<> +??RREE<> +??RREE?? [[ooffffsseett]]<> +NN +nn + Search forward or backward for a regular expression. + The commands beginning with a slash ("//") character are + forward searches, the commands beginning with a ques- + tion mark ("??") are backward searches. VVii prompts + with the leading character on the last line of the + screen for a string. It then searches forward or back- + ward in the file for the next occurrence of the string, + which is interpreted as a Basic Regular Expression. + + The // and ?? commands are absolute movements. They may + be used as the motion components of other vvii commands, + in which case any text copied into a buffer is charac- + ter oriented, unless the search started and ended on + the first column of a line, in which case it is line + oriented. In addition, forward searches ending at the + first character of a line, and backward searches begin- + ning at the first character in the line, are corrected + to begin or end at the last character of the previous + line. (Note, forward and backward searches can occur + for both // and ?? commands, if the wwrraappssccaann option is + set.) + + If an offset from the matched line is specified (i.e. a + trailing "//" or "??" character is followed by a signed + offset), the buffer will always be line oriented (e.g. + "//ssttrriinngg//++00" will always guarantee a line orientation). + + The NN command repeats the previous search, but in the + reverse direction. The nn command repeats the previous + search. If either the NN or nn commands are used as + motion components for the !! command, you will not be + prompted for the text of the bang command, instead the + previous bang command will be executed. + + Missing RE's (e.g. "////<>", "//<>", "????<>", or "??<>" search for the last search RE, in the indi- + cated direction. + + Searches may be interrupted using the <> char- + acter. + + Multiple search patterns may be grouped together by + delimiting them with semicolons and zero or more + whitespace characters, e.g. //ffoooo// ;; ??bbaarr?? searches + forward for ffoooo and then, from that location, backwards + for bbaarr. When search patterns are grouped together in + this manner, the search patterns are evaluated left to + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--3311 + + + right with the final cursor position determined by the + last search pattern. + + It is also permissible to append a zz command to the + search strings, e.g. //ffoooo// zz.. searches forward for + the next occurrence of ffoooo, and then positions that + line in the middle of screen. + + Line: Set to the line in which the match occurred. + Column: Set to the first character of the matched + string. + Options: Affected by the eeddccoommppaattiibbllee, eexxtteennddeedd, + iiggnnoorreeccaassee, mmaaggiicc, and wwrraappssccaann options. + +00 + Move to the first character in the current line. It is + not an error to use the 00 command when the cursor is on + the first character in the line, + + The 00 command may be used as the motion component of + other vvii commands, in which case it is an error if the + cursor is on the first character in the line, and any + text copied into a buffer is character oriented. + + Line: Unchanged. + Column: Set to the first character in the line. + Options: None. + +:: + Execute an eexx command. VVii prompts for an eexx command on + the last line of the screen, using a colon ("::") char- + acter. The command is terminated by a <>, <> or <> character; all of these + characters may be escaped by using a <> + character. The command is then executed. + + If the eexx command writes to the screen, vvii will prompt + the user for a <> before continuing when + the eexx command finishes. Large amounts of output from + the eexx command will be paged for the user, and the user + prompted for a <> or <> key to con- + tinue. In some cases, a quit (normally a "q" charac- + ter) or <> may be entered to interrupt the eexx + command. + + When the eexx command finishes, and the user is prompted + to resume visual mode, it is also possible to enter + another "::" character followed by another eexx command. + + Line: The current line is set as described for the + eexx command. + Column: The current column is set as described for the + eexx command. + + + + + + + + + + +UUSSDD::1133--3322 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + Options: Affected as described for the eexx command. + +[[ccoouunntt]] ;; + Repeat the last character find ccoouunntt times. The last + character find is one of the FF, ff, TT or tt commands. It + is an error if a FF, ff, TT or tt command has not been per- + formed yet. + + The ;; command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Unchanged. + Column: Set to the searched-for character for the FF + and ff commands, before the character for the tt + command and after the character for the TT com- + mand. + Options: None. + +[[ccoouunntt]] << mmoottiioonn +[[ccoouunntt]] >> mmoottiioonn + Shift lines left or right. Shift the number of lines + in the region specified by the ccoouunntt and mmoottiioonn left + (for the << command) or right (for the >> command) by the + number of columns specified by the sshhiiffttwwiiddtthh option. + Only whitespace characters are deleted when shifting + left. Once the first character in the line no longer + contains a whitespace character, the command will suc- + ceed, but the line will not be modified. + + Line: Unchanged. + Column: Set to the first nonblank character in the + line. + Options: Affected by the sshhiiffttwwiiddtthh option. + +@@ bbuuffffeerr + Execute a named buffer. Execute the named buffer as vvii + commands. The buffer may include eexx commands, too, but + they must be expressed as a :: command. If the buffer + is line oriented, <> characters are logically + appended to each line of the buffer. If the buffer is + character oriented, <> characters are logically + appended to all but the last line in the buffer. + + If the buffer name is "@@", or "**", then the last buffer + executed shall be used. It is an error to specify "@@@@" + or "****" if there were no previous buffer executions. + The text of a buffer may contain an @@ or ** command, and + it is possible to create infinite loops in this manner. + (The <> character may be used to interrupt the + loop.) + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--3333 + + + Line: The current line is set as described for the + command(s). + Column: The current column is set as described for the + command(s). + Options: None. + +[[ccoouunntt]] AA + Enter input mode, appending the text after the end of + the line. If ccoouunntt is specified, the text is repeat- + edly input ccoouunntt -- 11 more times after input mode is + exited. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +[[ccoouunntt]] BB + Move backward ccoouunntt bigwords. Move the cursor backward + to the beginning of a bigword by repeating the follow- + ing algorithm: if the current position is at the begin- + ning of a bigword or the character at the current posi- + tion cannot be part of a bigword, move to the first + character of the preceding bigword. Otherwise, move to + the first character of the bigword at the current posi- + tion. If no preceding bigword exists on the current + line, move to the first character of the last bigword + on the first preceding line that contains a bigword. + + The BB command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Set to the line containing the word selected. + Column: Set to the first character of the word + selected. + Options: None. + +[[bbuuffffeerr]] [[ccoouunntt]] CC + Change text from the current position to the end-of- + line. If ccoouunntt is specified, the input text replaces + from the current position to the end-of-line, plus + ccoouunntt -- 11 subsequent lines. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + + + + + + + + + + + +UUSSDD::1133--3344 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + +[[bbuuffffeerr]] DD + Delete text from the current position to the end-of- + line. + + It is not an error to execute the DD command on an empty + line. + + Line: Unchanged. + Column: Set to the character before the current char- + acter, or, column 1 if the cursor was on col- + umn 1. + Options: None. + +[[ccoouunntt]] EE + Move forward ccoouunntt end-of-bigwords. Move the cursor + forward to the end of a bigword by repeating the fol- + lowing algorithm: if the current position is the end of + a bigword or the character at that position cannot be + part of a bigword, move to the last character of the + following bigword. Otherwise, move to the last charac- + ter of the bigword at the current position. If no suc- + ceeding bigword exists on the current line, move to the + last character of the first bigword on the next follow- + ing line that contains a bigword. + + The EE command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Set to the line containing the word selected. + Column: Set to the last character of the word + selected. + Options: None. + +[[ccoouunntt]] FF <> + Search ccoouunntt times backward through the current line + for <>. + + The FF command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Unchanged. + Column: Set to the searched-for character. + Options: None. + +[[ccoouunntt]] GG + Move to line ccoouunntt, or the last line of the file if + ccoouunntt not specified. + + The GG command is an absolute movement. The GG command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--3355 + + + line oriented. + + Line: Set to ccoouunntt, if specified, otherwise, the + last line. + Column: Set to the first nonblank character in the + line. + Options: None. + +[[ccoouunntt]] HH + Move to the screen line ccoouunntt -- 11 lines below the top + of the screen. + + The HH command is an absolute movement. The HH command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + line oriented. + + Line: Set to the line ccoouunntt -- 11 lines below the top + of the screen. + Column: Set to the first nonblank character of the + _s_c_r_e_e_n line. + Options: None. + +[[ccoouunntt]] II + Enter input mode, inserting the text at the beginning + of the line. If ccoouunntt is specified, the text input is + repeatedly input ccoouunntt -- 11 more times. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: None. + +[[ccoouunntt]] JJ + Join lines. If ccoouunntt is specified, ccoouunntt lines are + joined; a minimum of two lines are always joined, + regardless of the value of ccoouunntt. + + If the current line ends with a whitespace character, + all whitespace is stripped from the next line. Other- + wise, if the next line starts with a open parenthesis + ("((") do nothing. Otherwise, if the current line ends + with a question mark ("??"), period ("..") or exclama- + tion point ("!!"), insert two spaces. Otherwise, insert + a single space. + + It is not an error to join lines past the end of the + file, i.e. lines that do not exist. + + Line: Unchanged. + Column: Set to the character after the last character + of the next-to-last joined line. + + + + + + + + + + + +UUSSDD::1133--3366 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + Options: None. + +[[ccoouunntt]] LL + Move to the screen line ccoouunntt -- 11 lines above the bot- + tom of the screen. + + The LL command is an absolute movement. The LL command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + line oriented. + + Line: Set to the line ccoouunntt -- 11 lines above the bot- + tom of the screen. + Column: Set to the first nonblank character of the + _s_c_r_e_e_n line. + Options: None. + + MM + Move to the screen line in the middle of the screen. + + The MM command is an absolute movement. The MM command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + line oriented. + + Historically, any ccoouunntt specified to the MM command was + ignored. + + Line: Set to the line in the middle of the screen. + Column: Set to the first nonblank character of the + _s_c_r_e_e_n line. + Options: None. + +[[ccoouunntt]] OO + Enter input mode, appending text in a new line above + the current line. If ccoouunntt is specified, the text + input is repeatedly input ccoouunntt -- 11 more times. + + Historically, any ccoouunntt specified to the OO command was + ignored. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +[[bbuuffffeerr]] PP + Insert text from a buffer. Text from the buffer (the + unnamed buffer by default) is inserted before the cur- + rent column or, if the buffer is line oriented, before + the current line. + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--3377 + + + Line: Set to the lowest numbered line insert, if the + buffer is line oriented, otherwise unchanged. + Column: Set to the first nonblank character of the + appended text, if the buffer is line oriented, + otherwise, the last character of the appended + text. + Options: None. + +QQ + Exit vvii (or visual) mode and switch to eexx mode. + + Line: Unchanged. + Column: No longer relevant. + Options: None. + +[[ccoouunntt]] RR + Enter input mode, replacing the characters in the cur- + rent line. If ccoouunntt is specified, the text input is + repeatedly input ccoouunntt -- 11 more times. + + If the end of the current line is reached, no more + characters are replaced and any further characters + input are appended to the line. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +[[bbuuffffeerr]] [[ccoouunntt]] SS + Substitute ccoouunntt lines. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +[[ccoouunntt]] TT <> + Search backward, ccoouunntt times, through the current line + for the character _a_f_t_e_r the specified <>. + + The TT command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Unchanged. + Column: Set to the character _a_f_t_e_r the searched-for + character. + + + + + + + + + + + +UUSSDD::1133--3388 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + Options: None. + +UU + Restore the current line to its state before the cursor + last moved to it. + + Line: Unchanged. + Column: The first character in the line. + Options: None. + +[[ccoouunntt]] WW + Move forward ccoouunntt bigwords. Move the cursor forward + to the beginning of a bigword by repeating the follow- + ing algorithm: if the current position is within a big- + word or the character at that position cannot be part + of a bigword, move to the first character of the next + bigword. If no subsequent bigword exists on the cur- + rent line, move to the first character of the first + bigword on the first following line that contains a + bigword. + + The WW command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: The line containing the word selected. + Column: The first character of the word selected. + Options: None. + +[[bbuuffffeerr]] [[ccoouunntt]] XX + Delete ccoouunntt characters before the cursor. If the num- + ber of characters to be deleted is greater than or + equal to the number of characters to the beginning of + the line, all of the characters before the current cur- + sor position, to the beginning of the line, are + deleted. + + Line: Unchanged. + Column: Set to the current character minus ccoouunntt, or + the first character if count is greater than + the number of characters in the line before + the cursor. + Options: None. + +[[bbuuffffeerr]] [[ccoouunntt]] YY + Copy (or "yank") ccoouunntt lines into the specified buffer. + + Line: Unchanged. + Column: Unchanged. + Options: None. + +ZZZZ + Write the file and exit vvii. The file is only written + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--3399 + + + if it has been modified since the last complete write + of the file to any file. + + The ZZZZ command will exit the editor after writing the + file, if there are no further files to edit. Entering + two "quit" commands (i.e. wwqq, qquuiitt, xxiitt or ZZZZ) in a + row will override this check and the editor will exit, + ignoring any files that have not yet been edited. + + Line: Unchanged. + Column: Unchanged. + Options: None. + +[[ccoouunntt]] [[[[ + Back up ccoouunntt section boundaries. + + The [[[[ command is an absolute movement. The [[[[ command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + character oriented, unless the starting position is + column 0, in which case it is line oriented. + + It is an error if the movement is past the beginning of + the file. + + Line: Set to the previous line that is ccoouunntt section + boundaries back, or the first line of the file + if no more section boundaries exist preceding + the current line. + Column: Set to the first nonblank character in the + line. + Options: Affected by the sseeccttiioonnss option. + +[[ccoouunntt]] ]]]] + Move forward ccoouunntt section boundaries. + + The ]]]] command is an absolute movement. The ]]]] command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + character oriented, unless the starting position is + column 0, in which case it is line oriented. + + It is an error if the movement is past the end of the + file. + + Line: Set to the line that is ccoouunntt section bound- + aries forward, or to the last line of the file + if no more section boundaries exist following + the current line. + Column: Set to the first nonblank character in the + line. + Options: Affected by the sseeccttiioonnss option. + + + + + + + + + + + +UUSSDD::1133--4400 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + +^^ + Move to first nonblank character on the current line. + + The ^^ command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Unchanged. + Column: Set to the first nonblank character of the + current line. + Options: None. + +[[ccoouunntt]] __ + Move down ccoouunntt -- 11 lines, to the first nonblank char- + acter. The __ command may be used as the motion compo- + nent of other vvii commands, in which case any text + copied into a buffer is line oriented. + + It is not an error to execute the __ command when the + cursor is on the first character in the line. + + Line: The current line plus ccoouunntt -- 11. + Column: The first nonblank character in the line. + Options: None. + +[[ccoouunntt]] aa + Enter input mode, appending the text after the cursor. + If ccoouunntt is specified, the text input is repeatedly + input ccoouunntt -- 11 more times. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +[[ccoouunntt]] bb + Move backward ccoouunntt words. Move the cursor backward to + the beginning of a word by repeating the following + algorithm: if the current position is at the beginning + of a word, move to the first character of the preceding + word. Otherwise, the current position moves to the + first character of the word at the current position. + If no preceding word exists on the current line, move + to the first character of the last word on the first + preceding line that contains a word. + + The bb command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--4411 + + + Line: Set to the line containing the word selected. + Column: Set to the first character of the word + selected. + Options: None. + +[[bbuuffffeerr]] [[ccoouunntt]] cc mmoottiioonn + Change the region of text specified by the ccoouunntt and + mmoottiioonn. If only part of a single line is affected, + then the last character being changed is marked with a + "$$". Otherwise, the region of text is deleted, and + input mode is entered. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +[[bbuuffffeerr]] [[ccoouunntt]] dd mmoottiioonn + Delete the region of text specified by the ccoouunntt and + mmoottiioonn. + + Line: Set to the line where the region starts. + Column: Set to the first character in the line after + the last character in the region. If no such + character exists, set to the last character + before the region. + Options: None. + +[[ccoouunntt]] ee + Move forward ccoouunntt end-of-words. Move the cursor for- + ward to the end of a word by repeating the following + algorithm: if the current position is the end of a + word, move to the last character of the following word. + Otherwise, move to the last character of the word at + the current position. If no succeeding word exists on + the current line, move to the last character of the + first word on the next following line that contains a + word. + + The ee command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Set to the line containing the word selected. + Column: Set to the last character of the word + selected. + Options: None. + +[[ccoouunntt]] ff <> + Search forward, ccoouunntt times, through the rest of the + current line for <>. + + + + + + + + + + +UUSSDD::1133--4422 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + The ff command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Unchanged. + Column: Set to the searched-for character. + Options: None. + +[[ccoouunntt]] ii + Enter input mode, inserting the text before the cursor. + If ccoouunntt is specified, the text input is repeatedly + input ccoouunntt -- 11 more times. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +mm <> + Save the current context (line and column) as <>. The exact position is referred to by "``<>". The line is referred to by "''<>". + + Historically, <> was restricted to lower-case + letters only, nnvvii permits the use of any character. + + Line: Unchanged. + Column: Unchanged. + Options: None. + +[[ccoouunntt]] oo + Enter input mode, appending text in a new line under + the current line. If ccoouunntt is specified, the text + input is repeatedly input ccoouunntt -- 11 more times. + + Historically, any ccoouunntt specified to the oo command was + ignored. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +[[bbuuffffeerr]] pp + Append text from a buffer. Text from the buffer (the + unnamed buffer by default) is appended after the cur- + rent column or, if the buffer is line oriented, after + the current line. + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--4433 + + + Line: Set to the first line appended, if the buffer + is line oriented, otherwise unchanged. + Column: Set to the first nonblank character of the + appended text if the buffer is line oriented, + otherwise, the last character of the appended + text. + Options: None. + +[[ccoouunntt]] rr <> + Replace characters. The next ccoouunntt characters in the + line are replaced with <>. Replacing charac- + ters with <> characters results in creating new, + empty lines into the file. + + If <> is <>, the command is cancelled. + + Line: Unchanged unless the replacement character is + a <>, in which case it is set to the + current line plus ccoouunntt -- 11. + Column: Set to the last character replaced, unless the + replacement character is a <>, in which + case the cursor is in column 1 of the last + line inserted. + Options: None. + +[[bbuuffffeerr]] [[ccoouunntt]] ss + Substitute ccoouunntt characters in the current line start- + ing with the current character. + + Line: Set to the last line upon which characters + were entered. + Column: Set to the last character entered. + Options: Affected by the aallttwweerraassee, aauuttooiinnddeenntt, bbeeaauu-- + ttiiffyy, sshhoowwmmaattcchh, ttttyywweerraassee and wwrraappmmaarrggiinn + options. + +[[ccoouunntt]] tt <> + Search forward, ccoouunntt times, through the current line + for the character immediately _b_e_f_o_r_e <>. + + The tt command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Unchanged. + Column: Set to the character _b_e_f_o_r_e the searched-for + character. + Options: None. + +uu + Undo the last change made to the file. If repeated, + the uu command alternates between these two states, and + is its own inverse. When used after an insert that + + + + + + + + + + +UUSSDD::1133--4444 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + inserted text on more than one line, the lines are + saved in the numeric buffers. + + The .. command, when used immediately after the uu com- + mand, causes the change log to be rolled forward or + backward, depending on the action of the uu command. + + Line: Set to the position of the first line changed, + if the reversal affects only one line or rep- + resents an addition or change; otherwise, the + line preceding the deleted text. + Column: Set to the cursor position before the change + was made. + Options: None. + +[[ccoouunntt]] ww + Move forward ccoouunntt words. Move the cursor forward to + the beginning of a word by repeating the following + algorithm: if the current position is at the beginning + of a word, move to the first character of the next + word. If no subsequent word exists on the current + line, move to the first character of the first word on + the first following line that contains a word. + + The ww command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. + + Line: Set to the line containing the word selected. + Column: Set to the first character of the word + selected. + Options: None. + +[[bbuuffffeerr]] [[ccoouunntt]] xx + Delete ccoouunntt characters. The deletion is at the cur- + rent character position. If the number of characters + to be deleted is greater than or equal to the number of + characters to the end of the line, all of the charac- + ters from the current cursor position to the end of the + line are deleted. + + Line: Unchanged. + Column: Unchanged unless the last character in the + line is deleted and the cursor is not already + on the first character in the line, in which + case it is set to the previous character. + Options: None. + +[[bbuuffffeerr]] [[ccoouunntt]] yy mmoottiioonn + Copy (or "yank") the text region specified by the ccoouunntt + and mmoottiioonn, into a buffer. + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--4455 + + + Line: Unchanged, unless the region covers more than + a single line, in which case it is set to the + line where the region starts. + Column: Unchanged, unless the region covers more than + a single line, in which case it is set to the + character were the region starts. + Options: None. + +[[ccoouunntt11]] zz [[ccoouunntt22]] ttyyppee + Redraw the screen with a window ccoouunntt22 lines long, with + line ccoouunntt11 placed as specified by the ttyyppee character. + If ccoouunntt11 is not specified, it defaults to the current + line. If ccoouunntt22 is not specified, it defaults to the + current window size. + + The following ttyyppee characters may be used: + + + If ccoouunntt11 is specified, place the line ccoouunntt11 + at the top of the screen. Otherwise, display + the screen after the current screen, similarly + to the <> command. + + Place the line ccoouunntt11 at the top of the + screen. + . Place the line ccoouunntt11 in the center of the + screen. + - Place the line ccoouunntt11 at the bottom of the + screen. + ^ If ccoouunntt11 is specified, place the line that is + at the top of the screen when ccoouunntt11 is at the + bottom of the screen, at the bottom of the + screen, i.e. display the screen before the + screen before ccoouunntt11. Otherwise, display the + screen before the current screen, similarly to + the <> command. + + Line: Set to ccoouunntt11 unless ccoouunntt11 is not specified + and the ttyyppee character was either "^^" or "++", + in which case it is set to the line before the + first line on the previous screen or the line + after the last line on the previous screen, + respectively. + Column: Set to the first nonblank character in the + line. + Options: None. + +[[ccoouunntt]] {{ + Move backward ccoouunntt paragraphs. + + The {{ command is an absolute movement. The {{ command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + character oriented, unless the starting character is + + + + + + + + + + +UUSSDD::1133--4466 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + the first character on its line, in which case it is + line oriented. + + Line: Set to the line containing the beginning of + the previous paragraph. + Column: Set to the first nonblank character in the + line. + Options: Affected by the ppaarraaggrraapphh option. + +[[ccoouunntt]] || + Move to a specific _c_o_l_u_m_n position on the current line. + + The || command may be used as the motion component of + other vvii commands, in which case any text copied into a + buffer is character oriented. It is an error to use + the || command as a motion component and for the cursor + not to move. + + Line: Unchanged. + Column: Set to the character occupying the column + position identified by ccoouunntt, if the position + exists in the line. If the column length of + the current line is less than ccoouunntt, the cur- + sor is moved to the last character in the + line. + Options: None. + +[[ccoouunntt]] }} + Move forward ccoouunntt paragraphs. + + The }} command is an absolute movement. The }} command + may be used as the motion component of other vvii com- + mands, in which case any text copied into a buffer is + character oriented, unless the starting character is at + or before any nonblank characters in its line, in which + case it is line oriented. + + Line: Set to the line containing the beginning of + the next paragraph. + Column: Set to the first nonblank character in the + line. + Options: Affected by the ppaarraaggrraapphh option. + +[[ccoouunntt]] ~~ + Reverse the case of the next ccoouunntt character(s). This + is the historic semantic for the ~~ command and it is + only in effect if the ttiillddeeoopp option is not set. + + Lowercase alphabetic characters are changed to upper- + case, and uppercase characters are changed to lower- + case. No other characters are affected. + + Historically, the ~~ command did not take an associated + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--4477 + + + count, nor did it move past the end of the current + line. As it had no associated motion it was difficult + to change the case of large blocks of text. In nnvvii, if + the cursor is on the last character of a line, and + there are more lines in the file, the cursor moves to + the next line. + + It is not an error to specify a count larger than the + number of characters between the cursor and the end of + the file. + + Line: Set to the line of the character after ccoouunntt + characters, or, end of file. + Column: Set to the character after ccoouunntt characters, + or, end-of-file. + Options: Affected by the ttiillddeeoopp option. + +[[ccoouunntt]] ~~ mmoottiioonn + Reverse the case of the characters in a text region + specified by the ccoouunntt and mmoottiioonn. Only in effect if + the ttiillddeeoopp option is set. + + Lowercase characters are changed to uppercase, and + uppercase characters are changed to lowercase. No + other characters are affected. + + Line: Set to the line of the character after the + last character in the region. + Column: Set to the character after the last character + in the region. + Options: Affected by the ttiillddeeoopp option. + +<> + Interrupt the current operation. Many of the poten- + tially long-running vvii commands may be interrupted + using the terminal interrupt character. These opera- + tions include searches, file reading and writing, fil- + ter operations and map character expansion. Interrupts + are also enabled when running commands outside of vvii. + + If the <> character is used to interrupt while + entering an eexx command, the command is aborted, the + cursor returns to its previous position, and vvii remains + in command mode. + + Generally, if the <> character is used to + interrupt any operation, any changes made before the + interrupt are left in place. + + Line: Dependent on the operation being interrupted. + Column: Dependent on the operation being interrupted. + Options: None. + + + + + + + + + + + +UUSSDD::1133--4488 NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) + + + 1111.. VVii TTeexxtt IInnppuutt CCoommmmaannddss + + The following section describes the commands + available in the text input mode of the vvii editor. + + Historically, vvii implementations only permitted + the characters inserted on the current line to be + erased. In addition, only the <> erase char- + acter and the "00<>" and "^^<>" erase + strings could erase autoindent characters. This imple- + mentation permits erasure to continue past the begin- + ning of the current line, and back to where text input + mode was entered. In addition, autoindent characters + may be erased using the standard erase characters. For + the line and word erase characters, reaching the + autoindent characters forms a "soft" boundary, denoting + the end of the current word or line erase. Repeating + the word or line erase key will erase the autoindent + characters. + + Historically, vvii always used <> and <> as character and word erase characters, respec- + tively, regardless of the current terminal settings. + This implementation accepts, in addition to these two + characters, the current terminal characters for those + operations. + + <> + If the first character of the input is a <>, + the previous input is replayed, as if just + entered. + + <> + If the previous character on the line was an + autoindent character, erase it. Otherwise, if the + user is entering the first character in the line, + <> is ignored. Otherwise, a literal + <> character is entered. + + ^^<> + If the previous character on the line was an + autoindent character, erase all of the autoindent + characters on the line. In addition, the autoin- + dent level is reset to 0. + + 00<> + If the previous character on the line was an + autoindent character, erase all of the autoindent + characters on the line. + + <> + Insert sufficient <> and <> characters to + move the cursor forward to a column immediately + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((VVii CCoommmmaannddss)) UUSSDD::1133--4499 + + + after the next column which is an even multiple of + the sshhiiffttwwiiddtthh option. + + Historically, vvii did not permit the <> + command to be used unless the cursor was at the + first column of a new line or it was preceded only + by autoindent characters. NNvvii permits it to be + used at any time during insert mode. + + <> + <> + Erase the last character. + + <> + Quote the next character. The next character will + not be mapped (see the mmaapp command for more infor- + mation) or interpreted specially. A carat ("^^") + character will be displayed immediately as a + placeholder, but will be replaced by the next + character. + + <> + Resolve all text input into the file, and return + to command mode. + + <> + Erase the current line. + + <> + <> + Erase the last word. The definition of word is + dependent on the aallttwweerraassee and ttttyywweerraassee options. + + <>[[00--99AA--FFaa--ff]]** + Insert a character with the specified hexadecimal + value into the text. + + <> + Interrupt text input mode, returning to command + mode. If the <> character is used to + interrupt inserting text into the file, it is as + if the <> character was used; all text input + up to the interruption is resolved into the file. + + 1122.. EExx AAddddrreessssiinngg + + Addressing in eexx (and when eexx commands are exe- + cuted from vvii) relates to the current line. In gen- + eral, the current line is the last line affected by a + command. The exact effect on the current line is dis- + cussed under the description of each command. When the + file contains no lines, the current line is zero. + + + + + + + + + + + +UUSSDD::1133--5500 NNvvii//NNeexx RReeffeerreennccee + + + Addresses are constructed by one or more of the + following methods: + + (1) The address ".." refers to the current line. + + (2) The address "$$" refers to the last line of the + file. + + (3) The address "NN", where NN is a positive number, + refers to the N-th line of the file. + + (4) The address "''<>" or "``<>" + refers to the line marked with the name <>. (See the kk or mm commands for more infor- + mation on how to mark lines.) + + (5) A regular expression (RE) enclosed by slashes + ("//") is an address, and it refers to the first + line found by searching forward from the line + _a_f_t_e_r the current line toward the end of the + file, and stopping at the first line containing + a string matching the RE. (The trailing slash + can be omitted at the end of the command line.) + + If no RE is specified, i.e. the pattern is "////", + the last RE used in any command is used in the + search. + + If the eexxtteennddeedd option is set, the RE is handled + as an extended RE, not a basic RE. If the wwrraapp-- + ssccaann option is set, the search wraps around to + the beginning of the file and continues up to + and including the current line, so that the + entire file is searched. + + The form "\\//" is accepted for historic reasons, + and is identical to "////". + + (6) An RE enclosed in question marks ("??") + addresses the first line found by searching + backward from the line _p_r_e_c_e_d_i_n_g the current + line, toward the beginning of the file and stop- + ping at the first line containing a string + matching the RE. (The trailing question mark + can be omitted at the end of a command line.) + + If no RE is specified, i.e. the pattern is "????", + the last RE used in any command is used in the + search. + + If the eexxtteennddeedd option is set, the RE is handled + as an extended RE, not a basic RE. If the wwrraapp-- + ssccaann option is set, the search wraps around + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--5511 + + + from the beginning of the file to the end of the + file and continues up to and including the cur- + rent line, so that the entire file is searched. + + The form "\\??" is accepted for historic reasons, + and is identical to "????". + + (7) An address followed by a plus sign ("++") or a + minus sign ("--") followed by a number is an off- + set address and refers to the address plus (or + minus) the indicated number of lines. If the + address is omitted, the addition or subtraction + is done with respect to the current line. + + (8) An address of "++" or "--" followed by a number is + an offset from the current line. For example, + "--55" is the same as "..--55". + + (9) An address ending with "++" or "--" has 1 added to + or subtracted from the address, respectively. + As a consequence of this rule and of the previ- + ous rule, the address "--" refers to the line + preceding the current line. Moreover, trailing + "++" and "--" characters have a cumulative effect. + For example, "++++--++++" refers to the current line + plus 3. + + (10) A percent sign ("%%") is equivalent to the + address range "11,,$$". + + EExx commands require zero, one, or two addresses. + It is an error to specify an address to a command which + requires zero addresses. + + If the user provides more than the expected number + of addresses to any eexx command, the first addresses + specified are discarded. For example, "11,,22,,33,,55"print + prints lines 3 through 5, because the pprriinntt command + only takes two addresses. + + The addresses in a range are separated from each + other by a comma (",,") or a semicolon (";;"). In the + latter case, the current line ("..") is set to the + first address, and only then is the second address cal- + culated. This feature can be used to determine the + starting line for forward and backward searches (see + rules (5) and (6) above). The second address of any + two-address sequence corresponds to a line that fol- + lows, in the file, the line corresponding to the first + address. The first address must be less than or equal + to the second address. The first address must be + greater than or equal to the first line of the file, + and the last address must be less than or equal to the + + + + + + + + + + +UUSSDD::1133--5522 NNvvii//NNeexx RReeffeerreennccee + + + last line of the file. + + 1133.. EExx DDeessccrriippttiioonn + + The following words have special meanings for eexx + commands. + + <> + The end-of-file character is used to scroll the + screen in the eexx editor. This character is nor- + mally <>, however, whatever character is + set for the current terminal is used as well as + <>. + + lliinnee + A single-line address, given in any of the forms + described in the section entitled "EExx AAddddrreessssiinngg". + The default for lliinnee is the current line. + + rraannggee + A line, or a pair of line addresses, separated by + a comma or semicolon. (See the section entitled + "EExx AAddddrreessssiinngg" for more information.) The + default for range is the current line _o_n_l_y, i.e. + "..,,..". A percent sign ("%%") stands for the range + "11,,$$". The starting address must be less than, or + equal to, the ending address. + + ccoouunntt + A positive integer, specifying the number of lines + to be affected by the command; the default is 1. + Generally, a count past the end-of-file may be + specified, e.g. the command "pp 33000000" in a 10 line + file is acceptable, and will print from the cur- + rent line through the last line in the file. + + ffllaaggss + One or more of the characters "#", "p", and "l". + When a command that accepts these flags completes, + the addressed line(s) are written out as if by the + corresponding ##, ll or pp commands. In addition, + any number of "++" or "--" characters can be speci- + fied before, after, or during the flags, in which + case the line written is not necessarily the one + affected by the command, but rather the line + addressed by the offset address specified. The + default for ffllaaggss is none. + + ffiillee + A pattern used to derive a pathname; the default + is the current file. File names are subjected to + normal _s_h(1) word expansions. + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--5533 + + + Anywhere a file name is specified, it is also pos- + sible to use the special string "//ttmmpp". This will be + replaced with a temporary file name which can be used + for temporary work, e.g. "::ee //ttmmpp" creates and edits a + new file. + + If both a count and a range are specified for com- + mands that use either, the starting line for the com- + mand is the _l_a_s_t line addressed by the range, and + ccoouunntt- subsequent lines are affected by the command, + e.g. the command "22,,33pp44" prints out lines 3, 4, 5 and + 6. + + When only a line or range is specified, with no + command, the implied command is either a lliisstt, nnuummbbeerr + or pprriinntt command. The command used is the most recent + of the three commands to have been used (including any + use as a flag). If none of these commands have been + used before, the pprriinntt command is the implied command. + When no range or count is specified and the command + line is a blank line, the current line is incremented + by 1 and then the current line is displayed. + + Zero or more whitespace characters may precede or + follow the addresses, count, flags, or command name. + Any object following a command name (such as buffer, + file, etc.), that begins with an alphabetic character, + should be separated from the command name by at least + one whitespace character. + + Any character, including <>, "%%" + and "##" retain their literal value when preceded by a + backslash. + + 1144.. EExx CCoommmmaannddss + + The following section describes the commands + available in the eexx editor. In each entry below, the + tag line is a usage synopsis for the command. + + Each command can be entered as the abbreviation + (those characters in the synopsis command word preced- + ing the "[" character), the full command (all charac- + ters shown for the command word, omitting the "[" and + "]" characters), or any leading subset of the full com- + mand down to the abbreviation. For example, the args + command (shown as "aarr[[ggss]]" in the synopsis) can be + entered as "aarr", "aarrgg" or "aarrggss". + + Each eexx command described below notes the new cur- + rent line after it is executed, as well as any options + that affect the command. + + + + + + + + + + + +UUSSDD::1133--5544 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + "" + A comment. Command lines beginning with the dou- + ble-quote character ("""") are ignored. This per- + mits comments in editor scripts and startup files. + + <> + + <> + Scroll the screen. Write the next N lines, where + N is the value of the ssccrroollll option. The command + is the end-of-file terminal character, which may + be different on different terminals. Tradition- + ally, it is the <> key. + + Historically, the eeooff command ignored any preced- + ing count, and the <> character was + ignored unless it was entered as the first charac- + ter of the command. This implementation treats it + as a command _o_n_l_y if entered as the first charac- + ter of the command line, and otherwise treats it + as any other character. + + Line: Set to the last line written. + Options: Affected by the ssccrroollll option. + + !! aarrgguummeenntt((ss)) + [[rraannggee]]!! aarrgguummeenntt((ss)) + Execute a shell command, or filter lines through a + shell command. In the first synopsis, the remain- + der of the line after the "!!" character is passed + to the program named by the sshheellll option, as a + single argument. + + Within the rest of the line, "%%" and "##" are + expanded into the current and alternate pathnames, + respectively. The character "!!" is expanded with + the command text of the previous !! command. + (Therefore, the command !!!! repeats the previous !! + command.) The special meanings of "%%", "##", and + "!!" can be overridden by escaping them with a + backslash. If no !! or ::!! command has yet been + executed, it is an error to use an unescaped "!!" + character. The !! command does _n_o_t do shell + expansion on the strings provided as arguments. + If any of the above expansions change the command + the user entered, the command is redisplayed at + the bottom of the screen. + + EExx then executes the program named by the sshheellll + option, with a --cc flag followed by the arguments + (which are bundled into a single argument). + + The !! command is permitted in an empty file. + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--5555 + + + If the file has been modified since it was last + completely written, the command will warn you. + + A single "!!" character is displayed when the com- + mand completes. + + In the second form of the !! command, the remain- + der of the line after the "!!" is passed to the + program named by the sshheellll option, as described + above. The specified lines are passed to the pro- + gram as standard input, and the standard and stan- + dard error output of the program replace the orig- + inal lines. + + Line: Unchanged if no range was specified, oth- + erwise set to the first line of the + range. + Options: Affected by the sshheellll and wwaarrnn options. + + [[rraannggee]] ## [[ccoouunntt]] [[ffllaaggss]] + [[rraannggee]] nnuu[[mmbbeerr]] [[ccoouunntt]] [[ffllaaggss]] + Display the selected lines, each preceded with its + line number. + + The line number format is "%6d", followed by two + spaces. + + Line: Set to the last line displayed. + Options: Affected by the lliisstt option. + + @@ bbuuffffeerr + ** bbuuffffeerr + Execute a buffer. Each line in the named buffer + is executed as an eexx command. If no buffer is + specified, or if the specified buffer is "@@" or + "**", the last buffer executed is used. + + [[rraannggee]] <<[[<< ......]] [[ccoouunntt]] [[ffllaaggss]] + Shift lines left or right. The specified lines + are shifted to the left (for the << command) or + right (for the >> command), by the number of + columns specified by the sshhiiffttwwiiddtthh option. Only + leading whitespace characters are deleted when + shifting left; once the first column of the line + contains a nonblank character, the sshhiifftt command + will succeed, but the line will not be modified. + + If the command character << or >> is repeated more + than once, the command is repeated once for each + additional command character. + + Line: If the current line is set to one of the + lines that are affected by the command, + + + + + + + + + + +UUSSDD::1133--5566 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + it is unchanged. Otherwise, it is set to + the first nonblank character of the low- + est numbered line shifted. + Options: Affected by the sshhiiffttwwiiddtthh option. + + [[lliinnee]] == [[ffllaaggss]] + Display the line number of lliinnee (which defaults to + the last line in the file). + + Line: Unchanged. + Options: None. + + [[rraannggee]] >>[[>> ......]] [[ccoouunntt]] [[ffllaaggss]] + Shift right. The specified lines are shifted to + the right by the number of columns specified by + the sshhiiffttwwiiddtthh option, by inserting tab and space + characters. Empty lines are not changed. + + If the command character ">>" is repeated more than + once, the command is repeated once for each addi- + tional command character. + + Line: Set to the last line modified by the com- + mand. + Options: Affected by the sshhiiffttwwiiddtthh option. + + aabb[[bbrreevv]] llhhss rrhhss + Add an abbreviation to the current abbreviation + list. When inserting text in vvii, each time a non- + word character is entered after a word character, + a set of characters ending at the word character + are checked for a match with llhhss. If a match is + found, they are replaced with rrhhss. The set of + characters that are checked for a match are + defined as follows, for inexplicable historical + reasons. If only one or two characters were + entered before the non-word character that trig- + gered the check, and after the beginning of the + insertion, or the beginning of the line or the + file, or the last <> character that was + entered, then the one or the both characters are + checked for a match. Otherwise, the set includes + both characters, as well as the characters that + precede them that are the same word class (i.e. + word or non-word) as the sseeccoonndd to last character + entered before the non-word character that trig- + gered the check, back to the first + <>character, the beginning of the insertion, + or the beginning of the line or the file. + + For example, the abbreviations: + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--5577 + + + ::aabbbbrreevviiaattee aabbcc AABBCC + ::aabbbbrreevviiaattee ##ii ##iinncclluuddee + ::aabbbbrreevviiaattee //**##ii //**##iinncclluuddee + + will all work, while the abbreviations: + + + ::aabbbbrreevviiaattee aa##ii AA##iinncclluuddee + ::aabbbbrreevviiaattee //** //**************************************** + + will not work, and are not permitted by nnvvii. + + To keep the abbreviation expansion from happening, + the character immediately following the llhhss char- + acters should be quoted with a <> + character. + + The replacement rrhhss is itself subject to both fur- + ther abbreviation expansion and further map expan- + sion. + + Line: Unchanged. + Options: None. + + [[lliinnee]] aa[[ppppeenndd]][[!!]] + The input text is appended to the specified line. + If line 0 is specified, the text is inserted at + the beginning of the file. Set to the last line + input. If no lines are input, then set to lliinnee, + or to the first line of the file if a lliinnee of 0 + was specified. Following the command name with a + "!!" character causes the aauuttooiinnddeenntt option to be + toggled for the duration of the command. + + Line: Unchanged. + Options: Affected by the aauuttooiinnddeenntt and nnuummbbeerr + options. + + aarr[[ggss]] + Display the argument list. The current argument + is displayed inside of "[[" and "]]" characters. + The argument list is the list of operands speci- + fied on startup, which can be replaced using the + nneexxtt command. + + Line: Unchanged. + Options: None. + + bbgg + VVii mode only. Background the current screen. + + + + + + + + + + + + + +UUSSDD::1133--5588 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + Line: Set to the current line when the screen + was last edited. + Options: None. + + [[rraannggee]] cc[[hhaannggee]][[!!]] [[ccoouunntt]] + Replace the lines with input text. Following the + command name with a "!!" character causes the + aauuttooiinnddeenntt option to be toggled for the duration + of the command. + + Line: Set to the last line input, or, if no + lines were input, set to the line before + the target line, or to the first line of + the file if there are no lines preceding + the target line. + Options: Affected by the aauuttooiinnddeenntt and nnuummbbeerr + options. + + cchhdd[[iirr]][[!!]] [[ddiirreeccttoorryy]] + ccdd[[!!]] [[ddiirreeccttoorryy]] + Change the current working directory. The ddiirreecc-- + ttoorryy argument is subjected to _s_h(1) word expan- + sions. When invoked with no directory argument + and the HHOOMMEE environment variable is set, the + directory named by the HHOOMMEE environment variable + becomes the new current directory. Otherwise, the + new current directory becomes the directory + returned by the _g_e_t_p_w_e_n_t(3) routine. + + The cchhddiirr command will fail if the file has been + modified since the last complete write of the + file. You can override this check by appending a + "!!" character to the command. + + Line: Unchanged. + Options: Affected by the ccddppaatthh option. + + [[rraannggee]] ccoo[[ppyy]] lliinnee [[ffllaaggss]] + [[rraannggee]] tt lliinnee [[ffllaaggss]] + Copy the specified lines (range) after the desti- + nation line. Line 0 may be specified to insert + the lines at the beginning of the file. + + Line: Unchanged. + Options: None. + + [[rraannggee]] dd[[eelleettee]] [[bbuuffffeerr]] [[ccoouunntt]] [[ffllaaggss]] + Delete the lines from the file. The deleted text + is saved in the specified buffer, or, if no buffer + is specified, in the unnamed buffer. If the com- + mand name is followed by a letter that could be + interpreted as either a buffer name or a flag + value (because neither a ccoouunntt or ffllaaggss values + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--5599 + + + were given), eexx treats the letter as a ffllaaggss value + if the letter immediately follows the command + name, without any whitespace separation. If the + letter is preceded by whitespace characters, it + treats it as a buffer name. + + Line: Set to the line following the deleted + lines, or to the last line if the deleted + lines were at the end. + Options: None. + + ddii[[ssppllaayy]] bb[[uuffffeerrss]] || ss[[ccrreeeennss]] || tt[[aaggss]] + Display buffers, screens or tags. The ddiissppllaayy + command takes one of three additional arguments, + which are as follows: + + b[uffers] + Display all buffers (including named, + unnamed, and numeric) that contain text. + s[creens] + Display the file names of all background + screens. + t[ags] Display the tags stack. + + Line: Unchanged. + Options: None. + + ee[[ddiitt]][[!!]] [[++ccmmdd]] [[ffiillee]] + eexx[[!!]] [[++ccmmdd]] [[ffiillee]] + Edit a different file. If the current buffer has + been modified since the last complete write, the + command will fail. You can override this by + appending a "!!" character to the command name. + + If the "++ccmmdd" option is specified, that eexx command + will be executed in the new file. Any eexx command + may be used, although the most common use of this + feature is to specify a line number or search pat- + tern to set the initial location in the new file. + + Line: If you have previously edited the file, + the current line will be set to your last + position in the file. If that position + does not exist, or you have not previ- + ously edited the file, the current line + will be set to the first line of the file + if you are in vvii mode, and the last line + of the file if you are in eexx. + Options: None. + + eexxuu[[ssaaggee]] [[ccoommmmaanndd]] + Display usage for an eexx command. If ccoommmmaanndd is + specified, a usage statement for that command is + + + + + + + + + + +UUSSDD::1133--6600 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + displayed. Otherwise, usage statements for all eexx + commands are displayed. + + Line: Unchanged. + Options: None. + + ff[[iillee]] [[ffiillee]] + Display and optionally change the file name. If a + file name is specified, the current pathname is + changed to the specified name. The current path- + name, the number of lines, and the current posi- + tion in the file are displayed. + + Line: Unchanged. + Options: None. + + ffgg [[nnaammee]] + VVii mode only. Foreground the specified screen. + Swap the current screen with the specified back- + grounded screen. If no screen is specified, the + first background screen is foregrounded. + + Line: Set to the current line when the screen + was last edited. + Options: None. + + [[rraannggee]] gg[[lloobbaall]] //ppaatttteerrnn// [[ccoommmmaannddss]] + [[rraannggee]] vv //ppaatttteerrnn// [[ccoommmmaannddss]] + Apply commands to lines matching (or not matching) + a pattern. The lines within the given range that + match ("gg[[lloobbaall]]"), or do not match ("vv") the + given pattern are selected. Then, the specified + eexx command(s) are executed with the current line + ("..") set to each selected line. If no range is + specified, the entire file is searched for match- + ing, or not matching, lines. + + Multiple commands can be specified, one per line, + by escaping each <> character with a back- + slash, or by separating commands with a "||" char- + acter. If no commands are specified, the command + defaults to the pprriinntt command. + + For the aappppeenndd, cchhaannggee and iinnsseerrtt commands, the + input text must be part of the global command + line. In this case, the terminating period can be + omitted if it ends the commands. + + The vviissuuaall command may also be specified as one of + the eexx commands. In this mode, input is taken + from the terminal. Entering a QQ command in vvii + mode causes the next line matching the pattern to + be selected and vvii to be reentered, until the list + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--6611 + + + is exhausted. + + The gglloobbaall, vv and uunnddoo commands cannot be used as + part of these commands. + + The editor options aauuttooiinnddeenntt, aauuttoopprriinntt and + rreeppoorrtt are turned off for the duration of the + gglloobbaall and vv commands. + + Line: The last line modified. + Options: Affected by the iiggnnoorreeccaassee and mmaaggiicc + options. Turns off the aauuttooiinnddeenntt, aauuttoo-- + pprriinntt and rreeppoorrtt options. + + hhee[[llpp]] + Display a help message. + + Line: Unchanged. + Options: None. + + [[lliinnee]] ii[[nnsseerrtt]][[!!]] + The input text is inserted before the specified + line. Following the command name with a "!!" + character causes the aauuttooiinnddeenntt option setting to + be toggled for the duration of this command. + + Line: Set to the last line input; if no lines + were input, set to the line before the + target line, or to the first line of the + file if there are no lines preceding the + target line. Affected by the aauuttooiinnddeenntt + and nnuummbbeerr options. + + [[rraannggee]] jj[[ooiinn]][[!!]] [[ccoouunntt]] [[ffllaaggss]] + Join lines of text together. + + A ccoouunntt specified to the command specifies that + the last line of the rraannggee plus ccoouunntt subsequent + lines will be joined. (Note, this differs by one + from the general rule where only ccoouunntt- subsequent + lines are affected.) + + If the current line ends with a whitespace charac- + ter, all whitespace is stripped from the next + line. Otherwise, if the next line starts with a + open parenthesis ("(("), do nothing. Otherwise, if + the current line ends with a question mark ("??"), + period ("..") or exclamation point ("!!"), insert + two spaces. Otherwise, insert a single space. + + Appending a "!!" character to the command name + causes a simpler join with no white-space process- + ing. + + + + + + + + + + +UUSSDD::1133--6622 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + Line: Unchanged. + Options: None. + + [[rraannggee]] ll[[iisstt]] [[ccoouunntt]] [[ffllaaggss]] + Display the lines unambiguously. Tabs are dis- + played as "^^II", and the end of the line is marked + with a "$$" character. + + Line: Set to the last line displayed. + Options: Affected by the nnuummbbeerr option. + + mmaapp[[!!]] [[llhhss rrhhss]] + Define or display maps (for vvii only). + + If "llhhss" and "rrhhss" are not specified, the current + set of command mode maps are displayed. If a "!!" + character is appended to to the command, the text + input mode maps are displayed. + + Otherwise, when the "llhhss" character sequence is + entered in vvii, the action is as if the correspond- + ing "rrhhss" had been entered. If a "!!" character + is appended to the command name, the mapping is + effective during text input mode, otherwise, it is + effective during command mode. This allows "llhhss" + to have two different macro definitions at the + same time: one for command mode and one for input + mode. + + Whitespace characters require escaping with a + <> character to be entered in the llhhss + string in visual mode. + + Normally, keys in the rrhhss string are remapped (see + the rreemmaapp option), and it is possible to create + infinite loops. However, keys which map to them- + selves are not further remapped, regardless of the + setting of the rreemmaapp option. For example, the + command "::mmaapp nn nnzz.." maps the "nn" key to the nn + and zz commands. + + To exit an infinitely looping map, use the termi- + nal <> character. + + Line: Unchanged. + Options: Affected by the rreemmaapp option. + + [[lliinnee]] mmaa[[rrkk]] <> + [[lliinnee]] kk <> + Mark the line with the mark <>. The + expressions "''<>" and "``<>" can + then be used as an address in any command that + uses one. + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--6633 + + + Line: Unchanged. + Options: None. + + [[rraannggee]] mm[[oovvee]] lliinnee + Move the specified lines after the target line. A + target line of 0 places the lines at the beginning + of the file. + + Line: Set to the first of the moved lines. + Options: None. + + mmkk[[eexxrrcc]][[!!]] ffiillee + Write the abbreviations, editor options and maps + to the specified file. Information is written in + a form which can later be read back in using the + eexx ssoouurrccee command. If ffiillee already exists, the + mmkkeexxrrcc command will fail. This check can be over- + ridden by appending a "!!" character to the com- + mand. + + Line: Unchanged. + Options: None. + + nn[[eexxtt]][[!!]] [[ffiillee ......]] + Edit the next file from the argument list. The + nneexxtt command will fail if the file has been modi- + fied since the last complete write. This check + can be overridden by appending the "!!" character + to the command name. The argument list can + optionally be replaced by specifying a new one as + arguments to this command. In this case, editing + starts with the first file on the new list. + + Line: Set as described for the eeddiitt command. + Options: Affected by the options aauuttoowwrriittee and + wwrriitteeaannyy. + + [[lliinnee]] oo[[ppeenn]] //ppaatttteerrnn// [[ffllaaggss]] + Enter open mode. Open mode is the same as being + in vvii, but with a one-line window. All the stan- + dard vvii commands are available. If a match is + found for the optional RE argument, the cursor is + set to the start of the matching pattern. + + _T_h_i_s _c_o_m_m_a_n_d _i_s _n_o_t _y_e_t _i_m_p_l_e_m_e_n_t_e_d_. + + Line: Unchanged, unless the optional RE is + specified, in which case it is set to the + line where the matching pattern is found. + Options: Affected by the ooppeenn option. + + pprree[[sseerrvvee]] + Save the file in a form that can later be + + + + + + + + + + +UUSSDD::1133--6644 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + recovered using the eexx --rr option. When the file + is preserved, an email message is sent to the + user. + + Line: Unchanged. + Options: None. + + pprreevv[[iioouuss]][[!!]] + Edit the previous file from the argument list. + The pprreevviioouuss command will fail if the file has + been modified since the last complete write. This + check can be overridden by appending the "!!" + character to the command name. + + Line: Set as described for the eeddiitt command. + Options: Affected by the options aauuttoowwrriittee and + wwrriitteeaannyy. None. + + [[rraannggee]] pp[[rriinntt]] [[ccoouunntt]] [[ffllaaggss]] + Display the specified lines. + + Line: Set to the last line displayed. + Options: Affected by the lliisstt and nnuummbbeerr option. + + [[lliinnee]] ppuu[[tt]] [[bbuuffffeerr]] + Append buffer contents to the current line. If a + buffer is specified, its contents are appended to + the line, otherwise, the contents of the unnamed + buffer are used. + + Line: Set to the line after the current line. + Options: None. + + qq[[uuiitt]][[!!]] + End the editing session. If the file has been + modified since the last complete write, the qquuiitt + command will fail. This check may be overridden + by appending a "!!" character to the command. + + If there are more files to edit, the qquuiitt command + will fail. Appending a "!!" character to the com- + mand name or entering two qquuiitt commands (i.e. wwqq, + qquuiitt, xxiitt or ZZZZ) in a row) will override this + check and the editor will exit. + + Line: Unchanged. + Options: None. + + [[lliinnee]] rr[[eeaadd]][[!!]] [[ffiillee]] + Read a file. A copy of the specified file is + appended to the line. If lliinnee is 0, the copy is + inserted at the beginning of the file. If no file + is specified, the current file is read; if there + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--6655 + + + is no current file, then ffiillee becomes the current + file. If there is no current file and no ffiillee is + specified, then the rreeaadd command will fail. + + If ffiillee is preceded by a "!!" character, ffiillee is + treated as if it were a shell command, and passed + to the program named by the sshheellll edit option. + The standard and standard error outputs of that + command are read into the file after the specified + line. The special meaning of the "!!" character + can be overridden by escaping it with a backslash + ("\\") character. + + Line: When executed from eexx, the current line + is set to the last line read. When exe- + cuted from vvii, the current line is set to + the first line read. + Options: None. + + rreecc[[oovveerr]] ffiillee + Recover ffiillee if it was previously saved. If no + saved file by that name exists, the rreeccoovveerr com- + mand behaves equivalently to the eeddiitt command. + + Line: Set as described for the eeddiitt command. + Options: None. + + rreess[[iizzee]] [[++||--]]ssiizzee + VVii mode only. Grow or shrink the current screen. + If ssiizzee is a positive, signed number, the current + screen is grown by that many lines. If ssiizzee is a + negative, signed number, the current screen is + shrunk by that many lines. If ssiizzee is not signed, + the current screen is set to the specified ssiizzee. + Applicable only to split screens. + + Line: Unchanged. + Options: None. + + rreeww[[iinndd]][[!!]] + Rewind the argument list. If the current file has + been modified since the last complete write, the + rreewwiinndd command will fail. This check may be over- + ridden by appending the "!!" character to the com- + mand. + + Otherwise, the current file is set to the first + file in the argument list. + + Line: Set as described for the eeddiitt command. + Options: Affected by the aauuttoowwrriittee and wwrriitteeaannyy + options. + + + + + + + + + + + +UUSSDD::1133--6666 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + ssee[[tt]] [[ooppttiioonn[[==[[vvaalluuee]]]] ......]] [[nnooooppttiioonn ......]] [[ooppttiioonn?? + ......]] [[aallll]] + Display or set editor options. When no arguments + are specified, the editor option tteerrmm, and any + editor options whose values have been changed from + the default settings are displayed. If the argu- + ment aallll is specified, the values of all of editor + options are displayed. + + Specifying an option name followed by the charac- + ter "??" causes the current value of that option + to be displayed. The "??" can be separated from + the option name by whitespace characters. The "??" + is necessary only for Boolean valued options. + Boolean options can be given values by the form + "sseett ooppttiioonn" to turn them on, or "sseett nnooooppttiioonn" to + turn them off. String and numeric options can be + assigned by the form "sseett ooppttiioonn==vvaalluuee". Any + whitespace characters in strings can be included + literally by preceding each with a backslash. + More than one option can be set or listed by a + single set command, by specifying multiple argu- + ments, each separated from the next by whitespace + characters. + + Line: Unchanged. + Options: None. + + sshh[[eellll]] + Run the shell program. The program named by the + sshheellll option is run with a --ii (for interactive) + flag. Editing is resumed when that program exits. + + Line: Unchanged. + Options: Affected by the sshheellll option. + + ssoo[[uurrccee]] ffiillee + Read and execute eexx commands from a file. SSoouurrccee + commands may be nested. + + Line: Unchanged. + Options: None. + + sspp[[lliitt]] [[ffiillee ......]] + VVii mode only. Split the screen. The current + screen is split into two screens, of approximately + equal size. If the cursor is in the lower half of + the screen, the screen will split up, i.e. the new + screen will be above the old one. If the cursor + is in the upper half of the screen, the new screen + will be below the old one. + + If ffiillee is specified, the new screen is editing + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--6677 + + + that file, otherwise, both screens are editing the + same file, and changes in each will be be + reflected in the other. The argument list for the + new screen consists of the list of files specified + as arguments to this command, or, the current + pathname if no files are specified. + + Line: If ffiillee is specified, set as for the eeddiitt + command, otherwise unchanged. + Options: None. + + [[rraannggee]] ss[[uubbssttiittuuttee]] [[//ppaatttteerrnn//rreeppllaaccee//]] [[ooppttiioonnss]] + [[ccoouunntt]] [[ffllaaggss]] + [[rraannggee]] && [[ooppttiioonnss]] [[ccoouunntt]] [[ffllaaggss]] + [[rraannggee]] ~~ [[ooppttiioonnss]] [[ccoouunntt]] [[ffllaaggss]] + Make substitutions. Replace the first instance of + ppaatttteerrnn with the string rreeppllaaccee on the specified + line(s). If the "//ppaatttteerrnn//rreeppll//" argument is not + specified, the "//ppaatttteerrnn//rreeppll//" from the previous + ssuubbssttiittuuttee command is used. + + If ooppttiioonnss includes the letter "cc" (confirm), you + will be prompted for confirmation before each + replacement is done. An affirmative response (in + English, a "yy" character) causes the replacement + to be made. A quit response (in English, a "qq" + character) causes the ssuubbssttiittuuttee command to be + terminated. Any other response causes the + replacement not to be made, and the ssuubbssttiittuuttee + command continues. If ooppttiioonnss includes the letter + "gg" (global), all nonoverlapping instances of ppaatt-- + tteerrnn in the line are replaced. + + The && version of the command is the same as not + specifying a pattern or replacement string to the + ssuubbssttiittuuttee command, and the "&&" is replaced by the + pattern and replacement information from the pre- + vious substitute command. + + The ~~ version of the command is the same as && and + ss, except that the search pattern used is the last + RE used in _a_n_y command, not necessarily the one + used in the last ssuubbssttiittuuttee command. + + For example, in the sequence + + ss//rreedd//bblluuee// + //ggrreeeenn + ~~ + + the "~~" is equivalent to "ss//ggrreeeenn//bblluuee//". + + The ssuubbssttiittuuttee command may be interrupted, using + + + + + + + + + + +UUSSDD::1133--6688 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + the terminal interrupt character. All substitu- + tions completed before the interrupt are retained. + + Line: Set to the last line upon which a substi- + tution was made. + Options: Affected by the iiggnnoorreeccaassee and mmaaggiicc + option. + + ssuu[[ssppeenndd]][[!!]] + sstt[[oopp]][[!!]] + <> + Suspend the edit session. Appending a "!!" char- + acter to these commands turns off the aauuttoowwrriittee + option for the command. + + Line: Unchanged. + Options: Affected by the aauuttoowwrriittee and wwrriitteeaannyy + options. + + ttaa[[gg]][[!!]] ttaaggssttrriinngg + Edit the file containing the specified tag. + Search for the tagstring, which can be in a dif- + ferent file. If the tag is in a different file, + then the new file is edited. If the current file + has been modified since the last complete write, + the ttaagg command will fail. This check can be + overridden by appending the "!!" character to the + command name. + + The ttaagg command searches for ttaaggssttrriinngg in the tags + file(s) specified by the option. (See _c_t_a_g_s(1) + for more information on tags files.) + + Line: Set to the line indicated by the tag. + Options: Affected by the aauuttoowwrriittee, ttaagglleennggtthh, + ttaaggss and wwrriitteeaannyy options. + + ttaaggpp[[oopp]][[!!]] [[ffiillee || nnuummbbeerr]] + Pop to the specified tag in the tags stack. If + neither ffiillee or nnuummbbeerr is specified, the ttaaggppoopp + command pops to the most recent entry on the tags + stack. If ffiillee or nnuummbbeerr is specified, the ttaaggppoopp + command pops to the most recent entry in the tags + stack for that file, or numbered entry in the tags + stack, respectively. (See the ddiissppllaayy command for + information on displaying the tags stack.) + + If the file has been modified since the last com- + plete write, the ttaaggppoopp command will fail. This + check may be overridden by appending a "!!" char- + acter to the command name. + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--6699 + + + Line: Set to the line indicated by the tag. + Options: Affected by the aauuttoowwrriittee and wwrriitteeaannyy + options. + + ttaaggtt[[oopp]][[!!]] + Pop to the least recent tag on the tags stack, + clearing the tags stack. + + If the file has been modified since the last com- + plete write, the ttaaggttoopp command will fail. This + check may be overridden by appending a "!!" char- + acter to the command name. + + Line: Set to the line indicated by the tag. + Options: Affected by the aauuttoowwrriittee and wwrriitteeaannyy + options. + + uunnaa[[bbbbrreevv]] llhhss + Delete an abbreviation. Delete llhhss from the cur- + rent list of abbreviations. + + Line: Unchanged. + Options: None. + + uu[[nnddoo]] + Undo the last change made to the file. Changes + made by gglloobbaall, vv, vviissuuaall and map sequences are + considered a single command. If repeated, the uu + command alternates between these two states, and + is its own inverse. + + Line: Set to the last line modified by the com- + mand. + Options: None. + + uunnmm[[aapp]][[!!]] llhhss + Unmap a mapped string. Delete the command mode + map definition for llhhss. If a "!!" character is + appended to the command name, delete the text + input mode map definition instead. + + Line: Unchanged. + Options: None. + + vvee[[rrssiioonn]] + Display the version of the eexx//vvii editor. + + [[lliinnee]] vvii[[ssuuaall]] [[ttyyppee]] [[ccoouunntt]] [[ffllaaggss]] + EExx mode only. Enter vvii. The ttyyppee is optional, + and can be "--", "++" or "^^", as in the eexx zz com- + mand, to specify the position of the specified + line in the screen window. (The default is to + place the line at the top of the screen window.) + + + + + + + + + + +UUSSDD::1133--7700 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + A ccoouunntt specifies the number of lines that will + initially be displayed. (The default is the value + of the wwiinnddooww editor option.) + + Line: Unchanged unless lliinnee is specified, in + which case it is set to that line. + Options: None. + + vvii[[ssuuaall]][[!!]] [[++ccmmdd]] [[ffiillee]] + VVii mode only. Edit a new file. Identical to the + "eeddiitt[[!!]] [[++ccmmdd]] [[ffiillee]]" command. + + vviiuu[[ssaaggee]] [[ccoommmmaanndd]] + Display usage for a vvii command. If ccoommmmaanndd is + specified, a usage statement for that command is + displayed. Otherwise, usage statements for all vvii + commands are displayed. + + Line: Unchanged. + Options: None. + + [[rraannggee]] ww[[rriittee]][[!!]] [[>>>>]] [[ffiillee]] + [[rraannggee]] ww[[rriittee]] [[!!]] [[ffiillee]] + [[rraannggee]] wwnn[[!!]] [[>>>>]] [[ffiillee]] + [[rraannggee]] wwqq[[!!]] [[>>>>]] [[ffiillee]] + Write the file. The specified lines (the entire + file, if no range is given) is written to ffiillee. + If ffiillee is not specified, the current pathname is + used. If ffiillee is specified, and it exists, or if + the current pathname was set using the ffiillee com- + mand, and the file already exists, these commands + will fail. Appending a "!!" character to the com- + mand name will override this check and the write + will be attempted, regardless. + + Specifying the optional ">>>>" string will cause the + write to be appended to the file, in which case no + tests are made for the file already existing. + + If the file is preceded by a "!!" character, the + program named by the shell edit option is invoked + with file as its second argument, and the speci- + fied lines are passed as standard input to that + command. The "!!" in this usage must be separated + from command name by at least one whitespace char- + acter. The special meaning of the "!!" may be + overridden by escaping it with a backslash ("\\") + character. + + The wwqq version of the write command will exit the + editor after writing the file, if there are no + further files to edit. Appending a "!!" character + to the command name or entering two "quit" + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) UUSSDD::1133--7711 + + + commands (i.e. wwqq, qquuiitt, xxiitt or ZZZZ) in a row) + will override this check and the editor will exit, + ignoring any files that have not yet been edited. + + The wwnn version of the write command will move to + the next file after writing the file, unless the + write fails. + + Line: Unchanged. + Options: Affected by the rreeaaddoonnllyy and wwrriitteeaannyy + options. + + [[rraannggee]] xx[[iitt]][[!!]] [[ffiillee]] + Write the file if it has been modified. The spec- + ified lines are written to ffiillee, if the file has + been modified since the last complete write to any + file. If no rraannggee is specified, the entire file + is written. + + The xxiitt command will exit the editor after writing + the file, if there are no further files to edit. + Appending a "!!" character to the command name or + entering two "quit" commands (i.e. wwqq, qquuiitt, xxiitt + or ZZZZ) in a row) will override this check and the + editor will exit, ignoring any files that have not + yet been edited. + + Line: Unchanged. + Options: Affected by the rreeaaddoonnllyy and wwrriitteeaannyy + options. + + [[rraannggee]] yyaa[[nnkk]] [[bbuuffffeerr]] [[ccoouunntt]] + Copy the specified lines to a buffer. If no + buffer is specified, the unnamed buffer is used. + + Line: Unchanged. + Options: None. + + [[lliinnee]] zz [[ttyyppee]] [[ccoouunntt]] [[ffllaaggss]] + Adjust the window. If no ttyyppee is specified, then + ccoouunntt lines following the specified line are dis- + played. The default ccoouunntt is the value of the + wwiinnddooww option. The ttyyppee argument changes the + position at which lliinnee is displayed on the screen + by changing the number of lines displayed before + and after lliinnee. The following ttyyppee characters may + be used: + + - Place the line at the bottom of the + screen. + + Place the line at the top of the screen. + . Place the line in the middle of the + screen. + + + + + + + + + + +UUSSDD::1133--7722 NNvvii//NNeexx RReeffeerreennccee ((EExx CCoommmmaannddss)) + + + ^ Write out count lines starting ccoouunntt ** 22 + lines before lliinnee; the net effect of this + is that a "zz^^" command following a zz com- + mand writes the previous page. + = Center lliinnee on the screen with a line of + hyphens displayed immediately before and + after it. The number of preceding and + following lines of text displayed are + reduced to account for those lines. + + Line: Set to the last line displayed, with the + exception of the ttyyppee, where the current + line is set to the line specified by the + command. + Options: Affected by the ssccrroollll option. + + 1155.. SSeett OOppttiioonnss + + There are a large number of options that may be + set (or unset) to change the editor's behavior. This + section describes the options, their abbreviations and + their default values. + + In each entry below, the first part of the tag + line is the full name of the option, followed by any + equivalent abbreviations. (Regardless of the abbrevia- + tions, it is only necessary to use the minimum number + of characters necessary to distinguish an abbreviation + from all other commands for it to be accepted, in + nneexx/nnvvii. Historically, only the full name and the + official abbreviations were accepted by eexx/vvii. Using + full names in your startup files and environmental + variables will probably make them more portable.) The + part in square brackets is the default value of the + option. Most of the options are boolean, i.e. they are + either on or off, and do not have an associated value. + + Options apply to both eexx and vvii modes, unless oth- + erwise specified. + + For information on modifying the options or to + display the options and their current values, see the + "set" command in the section entitled "EExx CCoommmmaannddss". + + aallttwweerraassee [[ooffff]] + VVii only. Change how vvii does word erase during + text input. When this option is set, text is bro- + ken up into three classes: alphabetic, numeric and + underscore characters, other nonblank characters, + and blank characters. Changing from one class to + another marks the end of a word. In addition, the + class of the first character erased is ignored + (which is exactly what you want when erasing + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) UUSSDD::1133--7733 + + + pathname components). + + aauuttooiinnddeenntt,, aaii [[ooffff]] + If this option is set, whenever you create a new + line (using the vvii AA, aa, CC, cc, II, ii, OO, oo, RR, rr, + SS, and ss commands, or the eexx aappppeenndd, cchhaannggee, and + iinnsseerrtt commands) the new line is automatically + indented to align the cursor with the first non- + blank character of the line from which you created + it. Lines are indented using tab characters to + the extent possible (based on the value of the + ttaabbssttoopp option) and then using space characters as + necessary. For commands inserting text into the + middle of a line, any blank characters to the + right of the cursor are discarded, and the first + nonblank character to the right of the cursor is + aligned as described above. + + The indent characters are themselves somewhat spe- + cial. If you do not enter more characters on the + new line before moving to another line, or enter- + ing <>, the indent character will be deleted + and the line will be empty. For example, if you + enter <> twice in succession, the + line created by the first <> will + not have any characters in it, regardless of the + indentation of the previous or subsequent line. + + Indent characters also require that you enter + additional erase characters to delete them. For + example, if you have an indented line, containing + only blanks, the first <> character you + enter will erase up to end of the indent charac- + ters, and the second will erase back to the begin- + ning of the line. (Historically, only the <> key would erase the indent characters. + Both the <> key and the usual erase keys + work in nnvvii.) In addition, if the cursor is posi- + tioned at the end of the indent characters, the + keys "00<>" will erase all of the indent + characters for the current line, resetting the + indentation level to 0. Similarly, the keys + "^^<>" will erase all of the indent char- + acters for the current line, leaving the indenta- + tion level for future created lines unaffected. + + Finally, if the aauuttooiinnddeenntt option is set, the SS + and cccc commands change from the first nonblank of + the line to the end of the line, instead of from + the beginning of the line to the end of the line. + + aauuttoopprriinntt,, aapp [[ooffff]] + EExx only. Cause the current line to be + + + + + + + + + + +UUSSDD::1133--7744 NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) + + + automatically displayed after the eexx commands <<, + >>, ccooppyy, ddeelleettee, jjooiinn, mmoovvee, ppuutt, tt, UUnnddoo, and + uunnddoo. This automatic display is suppressed during + gglloobbaall and vv commands, and for any command where + optional flags are used to explicitly display the + line. + + aauuttoowwrriittee,, aaww [[ooffff]] + If this option is set, the vvii !!, ^^^^, ^^]] and <> commands, and the eexx eeddiitt, nneexxtt, rreewwiinndd, + ssttoopp, ssuussppeenndd, ttaagg, ttaaggppoopp, and ttaaggttoopp commands + automatically write the current file back to the + current file name if it has been modified since it + was last written. If the write fails, the command + fails and goes no further. + + Appending the optional force flag character "!!" + to the eexx commands nneexxtt, rreewwiinndd, ssttoopp, ssuussppeenndd, + ttaagg, ttaaggppoopp, and ttaaggttoopp stops the automatic write + from being attempted. + + (Historically, the nneexxtt command ignored the + optional force flag.) Note, the eexx commands eeddiitt, + qquuiitt, sshheellll, and xxiitt are _n_o_t affected by the + aauuttoowwrriittee option. + + The aauuttoowwrriittee option is ignored if the file is + considered read-only for any reason. + + bbaacckkuupp [[""""]] + If this option is set, it specifies a pathname + used as a backup file, and, whenever a file is + written, the file's current contents are copied to + it. The pathname is "##", "%%" and "!!" expanded. + + If the first character of the pathname is "NN", a + version number is appended to the pathname (and + the "NN" character is then discarded). Version + numbers are always incremented, and each backup + file will have a version number one greater than + the highest version number currently found in the + directory. + + Backup files must be regular files, owned by the + real user ID of the user running the editor, and + not accessible by any other user. + + bbeeaauuttiiffyy,, bbff [[ooffff]] + If this option is set, all control characters that + are not currently being specially interpreted, + other than <>, <>, and <>, are + discarded from commands read in by eexx from command + files, and from input text entered to vvii (either + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) UUSSDD::1133--7755 + + + into the file or to the colon command line). Text + files read by eexx/vvii are _n_o_t affected by the bbeeaauu-- + ttiiffyy option. + + ccddppaatthh [[eennvviirroonnmmeenntt vvaarriiaabbllee CCDDPPAATTHH,, oorr ccuurrrreenntt ddiirreecc-- + ttoorryy]] + This option is used to specify a colon separated + list of directories which are used as path pre- + fixes for any relative path names used as argu- + ments for the ccdd command. The value of this + option defaults to the value of the environmental + variable CCDDPPAATTHH if it is set, otherwise to the + current directory. For compatibility with the + POSIX 1003.2 shell, the ccdd command does _n_o_t check + the current directory as a path prefix for rela- + tive path names unless it is explicitly specified. + It may be so specified by entering an empty string + or a ".." character into the CCDDPPAATTHH variable or + the option value. + + ccoolluummnnss,, ccoo [[8800]] + The number of columns in the screen. Setting this + option causes eexx/vvii to set (or reset) the environ- + mental variable CCOOLLUUMMNNSS. See the section entitled + "SSiizziinngg tthhee SSccrreeeenn" more information. + + ccoommmmeenntt [[ooffff]] + VVii only. If the first non-empty line of the file + begins with the string "//**", this option causes vvii + to skip to the end of that C-language comment + (probably a terribly boring legal notice) before + displaying the file. + + ddiirreeccttoorryy,, ddiirr [[eennvviirroonnmmeenntt vvaarriiaabbllee TTMMPPDDIIRR,, oorr //ttmmpp]] + The directory where temporary files are created. + The environmental variable TTMMPPDDIIRR is used as the + default value if it exists, otherwise //ttmmpp is + used. + + eeddccoommppaattiibbllee,, eedd [[ooffff]] + Remember the values of the "c" and "g" suffices to + the ssuubbssttiittuuttee commands, instead of initializing + them as unset for each new command. Specifying + pattern and replacement strings to the ssuubbssttiittuuttee + command unsets the "c" and "g" suffices as well. + + eerrrroorrbbeellllss,, eebb [[ooffff]] + EExx only. EExx error messages are normally presented + in inverse video. If that is not possible for the + terminal, setting this option causes error mes- + sages to be announced by ringing the terminal + bell. + + + + + + + + + + + +UUSSDD::1133--7766 NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) + + + eexxrrcc,, eexx [[ooffff]] + If this option is turned off in the system or + $HOME startup files, the local startup files are + never read (unless they are the same as the system + or $HOME startup files). Turning it on has no + effect, i.e. the normal checks for local startup + files are performed, regardless. See the section + entitled "SSttaarrttuupp IInnffoorrmmaattiioonn" for more informa- + tion. + + eexxtteennddeedd [[ooffff]] + This option causes all regular expressions to be + treated as POSIX 1003.2 Extended Regular Expres- + sions (which are similar to historic _e_g_r_e_p(1) + style expressions). + + ffllaasshh [[oonn]] + This option causes the screen to flash instead of + beeping the keyboard, on error, if the terminal + has the capability. + + hhaarrddttaabbss,, hhtt [[88]] + This option defines the spacing between hardware + tab settings, i.e. the tab expansion done by the + operating system and/or the terminal itself. As + nneexx/nnvvii never writes <> characters to the ter- + minal, unlike historic versions of eexx/vvii, this + option does not currently have any affect. + + iiggnnoorreeccaassee,, iicc [[ooffff]] + This option causes regular expressions, both in eexx + commands and in searches, to be evaluated in a + case-insensitive manner. + + kkeeyyttiimmee [[66]] + The 10th's of a second eexx/vvii waits for a subse- + quent key to complete a key mapping. + + lleeffttrriigghhtt [[ooffff]] + VVii only. This option causes the screen to be + scrolled left-right to view lines longer than the + screen, instead of the traditional vvii screen + interface which folds long lines at the right-hand + margin of the terminal. + + lliinneess,, llii [[2244]] + VVii only. The number of lines in the screen. Set- + ting this option causes eexx/vvii to set (or reset) + the environmental variable LLIINNEESS. See the section + entitled "SSiizziinngg tthhee SSccrreeeenn" for more information. + + lliisspp [[ooffff]] + VVii only. This option changes the behavior of the + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) UUSSDD::1133--7777 + + + vvii ((, )), {{, }}, [[[[ and ]]]] commands to match the + Lisp language. Also, the aauuttooiinnddeenntt option's + behavior is changed to be appropriate for Lisp. + + _T_h_i_s _o_p_t_i_o_n _i_s _n_o_t _y_e_t _i_m_p_l_e_m_e_n_t_e_d_. + + lliisstt [[ooffff]] + This option causes lines to be displayed in an + unambiguous fashion. Specifically, tabs are dis- + played as control characters, i.e. "^^II", and the + ends of lines are marked with a "$$" character. + + lloocckk [[oonn]] + This option causes the editor to attempt to get an + exclusive lock on any file being edited, read or + written. Reading or writing a file that cannot be + locked produces a warning message, but no other + effect. Editing a file that cannot be locked + results in a read only edit session, as if the + rreeaaddoonnllyy edit option were set. + + mmaaggiicc [[oonn]] + This option is on by default. Turning the mmaaggiicc + option off causes all regular expression charac- + ters except for "^^" and "$$", to be treated as + ordinary characters. To re-enable characters + individually, when the mmaaggiicc option is off, pre- + cede them with a backslash "\\" character. See the + section entitled "RReegguullaarr EExxpprreessssiioonnss aanndd RReeppllaaccee-- + mmeenntt SSttrriinnggss" for more information. + + mmaattcchhttiimmee [[77]] + VVii only. The 10th's of a second vvii pauses on the + matching character when the sshhoowwmmaattcchh option is + set. + + mmeessgg [[oonn]] + This option allows other users to contact you + using the _t_a_l_k(1) and _w_r_i_t_e(1) utilities, while + you are editing. EExx/vvii does not turn message on, + i.e. if messages were turned off when the editor + was invoked, they will stay turned off. This + option only permits you to disallow messages for + the edit session. See the _m_e_s_g(1) utility for + more information. + + mmssggccaatt [[..//]] + This option selects a message catalog to be used + to display error and informational messages in a + specified language. If the value of this option + ends with a '/', it is treated as the name of a + directory that contains a message catalog + "vvii__XXXXXXXX", where "XXXXXXXX" is the value of the LLAANNGG + + + + + + + + + + +UUSSDD::1133--7788 NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) + + + environmental variable, if it's set, or the value + of the LLCC__MMEESSSSAAGGEESS environmental variable if it's + not. If neither of those environmental variables + are set, or if the option doesn't end in a '/', + the option is treated as the full path name of the + message catalog to use. + + If any messages are missing from the catalog, the + backup text (English) is used instead. + + See the distribution file ccaattaalloogg//RREEAADDMMEE for addi- + tional information on building and installing mes- + sage catalogs. + + mmooddeelliinneess,, mmooddeelliinnee [[ooffff]] + If the mmooddeelliinneess option is set, eexx/vvii has histori- + cally scanned the first and last five lines of + each file as it is read for editing, looking for + any eexx commands that have been placed in those + lines. After the startup information has been + processed, and before the user starts editing the + file, any commands embedded in the file are exe- + cuted. + + Commands were recognized by the letters "e" or "v" + followed by "x" or "i", at the beginning of a line + or following a tab or space character, and fol- + lowed by a ":", an eexx command, and another ":". + + This option is a security problem of immense pro- + portions, and should not be used under any circum- + stances. + + _T_h_i_s _o_p_t_i_o_n _w_i_l_l _n_e_v_e_r _b_e _i_m_p_l_e_m_e_n_t_e_d_. + + nnuummbbeerr,, nnuu [[ooffff]] + Precede each line displayed with its current line + number. + + ooccttaall [[ooffff]] + Display unknown characters as octal numbers, + instead of the default hexadecimal. + + ooppeenn [[oonn]] + EExx only. If this option is not set, the ooppeenn and + vviissuuaall commands are disallowed. + + ooppttiimmiizzee,, oopptt [[oonn]] + VVii only. Throughput of text is expedited by set- + ting the terminal not to do automatic carriage + returns when printing more than one (logical) line + of output, greatly speeding output on terminals + without addressable cursors when text with leading + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) UUSSDD::1133--7799 + + + white space is printed. + + _T_h_i_s _o_p_t_i_o_n _i_s _n_o_t _y_e_t _i_m_p_l_e_m_e_n_t_e_d_. + + ppaarraaggrraapphhss,, ppaarraa [[IIPPLLPPPPPPQQPPPP LLIIppppllppiippbbpp]] + VVii only. Define additional paragraph boundaries + for the {{ and }} commands. The value of this + option must be a character string consisting of + zero or more character pairs. + + In the text to be edited, the character string + <>..<>, (where <> is one + of the character pairs in the option's value) + defines a paragraph boundary. For example, if the + option were set to LLaaAA<>####, then all of the + following additional paragraph boundaries would be + recognized: + + + .La + .A + .## + + + pprroommpptt [[oonn]] + EExx only. This option causes eexx to prompt for com- + mand input with a "::" character; when it is not + set, no prompt is displayed. + + rreeaaddoonnllyy,, rroo [[ooffff]] + This option causes a force flag to be required to + attempt to write the file back to the original + file name. Setting this option is equivalent to + using the --RR command line option, or editing a + file which lacks write permission. + + rreeccddiirr [[//vvaarr//ttmmpp//vvii..rreeccoovveerr]] + The directory where recovery files are stored. + + If you change the value of rreeccddiirr, be careful to + choose a directory whose contents are not regu- + larly deleted. Bad choices include directories in + memory based filesystems, or //ttmmpp, on most sys- + tems, as their contents are removed when the + machine is rebooted. + + Public directories like //uussrr//ttmmpp and //vvaarr//ttmmpp are + usually safe, although some sites periodically + prune old files from them. There is no require- + ment that you use a public directory, e.g. a sub- + directory of your home directory will work fine. + + Finally, if you change the value of rreeccddiirr, you + + + + + + + + + + +UUSSDD::1133--8800 NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) + + + must modify the recovery script to operate in your + chosen recovery area. + + See the section entitled "RReeccoovveerryy" for further + information. + + rreeddrraaww,, rree [[ooffff]] + VVii only. The editor simulates (using great + amounts of output), an intelligent terminal on a + dumb terminal (e.g. during insertions in vvii the + characters to the right of the cursor are + refreshed as each input character is typed). + + _T_h_i_s _o_p_t_i_o_n _i_s _n_o_t _y_e_t _i_m_p_l_e_m_e_n_t_e_d_. + + rreemmaapp [[oonn]] + If this option is set, it is possible to define + macros in terms of other macros. Otherwise, each + key is only remapped up to one time. For example, + if "AA" is mapped to "BB", and "BB" is mapped to "CC", + The keystroke "AA" will be mapped to "CC" if the + rreemmaapp option is set, and to "BB" if it is not set. + + rreeppoorrtt [[55]] + Set the threshold of the number of lines that need + to be changed or yanked before a message will be + displayed to the user. For everything but the + yank command, the value is the largest value about + which the editor is silent, i.e. by default, 6 + lines must be deleted before the user is notified. + However, if the number of lines yanked is greater + than _o_r _e_q_u_a_l _t_o the set value, it is reported to + the user. + + rruulleerr [[ooffff]] + VVii only. Display a row/column ruler on the colon + command line. + + ssccrroollll,, ssccrr [[((eennvviirroonnmmeenntt vvaarriiaabbllee LLIINNEESS -- 11)) // 22]] + Set the number of lines scrolled by the eexx <> and <> commands. + + Historically, the eexx zz command, when specified + without a count, used two times the size of the + scroll value; the POSIX 1003.2 standard specified + the window size, which is a better choice. + + sseeccttiioonnss,, sseecctt [[NNHHSSHHHH HHUUnnhhsshh]] + VVii only. Define additional section boundaries for + the [[[[ and ]]]] commands. The sseeccttiioonnss option + should be set to a character string consisting of + zero or more character pairs. In the text to be + edited, the character string <>..<>, (where <> is one of the character + pairs in the option's value), defines a section + boundary in the same manner that ppaarraaggrraapphh option + boundaries are defined. + + sshheellll,, sshh [[eennvviirroonnmmeenntt vvaarriiaabbllee SSHHEELLLL,, oorr //bbiinn//sshh]] + Select the shell used by the editor. The speci- + fied path is the pathname of the shell invoked by + the vvii !! shell escape command and by the eexx sshheellll + command. This program is also used to resolve any + shell meta-characters in eexx commands. + + sshheellllmmeettaa [[~~{{[[**??$$``''""\\]] + The set of characters that eexx checks for when + doing file name expansion. If any of the speci- + fied characters are found in the file name argu- + ments to the eexx commands, the arguments are + expanded using the program defined by the sshheellll + option. The default set of characters is a union + of meta characters from the Version 7 and the + Berkeley C shell. + + sshhiiffttwwiiddtthh,, ssww [[88]] + Set the autoindent and shift command indentation + width. This width is used by the aauuttooiinnddeenntt + option and by the <<, >>, and sshhiifftt commands. + + sshhoowwmmaattcchh,, ssmm [[ooffff]] + VVii only. This option causes vvii, when a "}}" or "))" + is entered, to briefly move the cursor the match- + ing "{{" or "((". See the mmaattcchhttiimmee option for more + information. + + sshhoowwmmooddee [[ooffff]] + VVii only. This option causes vvii to display a + string identifying the current editor mode on the + colon command line. The string is preceded by an + asterisk (``*'') if the file has been modified + since it was last completely written, + + ssiiddeessccrroollll [[1166]] + VVii only. Sets the number of columns that are + shifted to the left or right, when vvii is doing + left-right scrolling and the left or right margin + is crossed. See the lleeffttrriigghhtt option for more + information. + + sslloowwooppeenn,, ssllooww [[ooffff]] + This option affects the display algorithm used by + vvii, holding off display updating during input of + new text to improve throughput when the terminal + in use is slow and unintelligent. + + + + + + + + + + + +UUSSDD::1133--8822 NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) + + + _T_h_i_s _o_p_t_i_o_n _i_s _n_o_t _y_e_t _i_m_p_l_e_m_e_n_t_e_d_. + + ssoouurrcceeaannyy [[ooffff]] + If this option is turned on, vvii historically read + startup files that were owned by someone other + than the editor user. See the section entitled + "SSttaarrttuupp IInnffoorrmmaattiioonn" for more information. This + option is a security problem of immense propor- + tions, and should not be used under any circum- + stances. + + _T_h_i_s _o_p_t_i_o_n _w_i_l_l _n_e_v_e_r _b_e _i_m_p_l_e_m_e_n_t_e_d_. + + ttaabbssttoopp,, ttss [[88]] + This option sets tab widths for the editor dis- + play. + + ttaagglleennggtthh,, ttll [[00]] + This option sets the maximum number of characters + that are considered significant in a tag name. + Setting the value to 0 makes all of the characters + in the tag name significant. + + ttaaggss,, ttaagg [[ttaaggss //vvaarr//ddbb//lliibbcc..ttaaggss //ssyyss//kkeerrnn//ttaaggss]] + Sets the list of tags files, in search order, + which are used when the editor searches for a tag. + + tteerrmm,, ttttyyttyyppee,, ttttyy [[eennvviirroonnmmeenntt vvaarriiaabbllee TTEERRMM]] + Set the terminal type. Setting this option causes + eexx/vvii to set (or reset) the environmental variable + TTEERRMM. + + tteerrssee [[ooffff]] + This option has historically made editor messages + less verbose. It has no effect in this implemen- + tation. See the vveerrbboossee option for more informa- + tion. + + ttiillddeeoopp + Modify the ~~ command to take an associated motion. + + ttiimmeeoouutt,, ttoo [[oonn]] + If this option is set, eexx/vvii waits for a specific + period for a subsequent key to complete a key map- + ping (see the kkeeyyttiimmee option). If the option is + not set, the editor waits until enough keys are + entered to resolve the ambiguity, regardless of + how long it takes. + + ttttyywweerraassee [[ooffff]] + VVii only. This option changes how vvii does word + erase during text input. If this option is set, + text is broken up into two classes, blank + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) UUSSDD::1133--8833 + + + characters and nonblank characters. Changing from + one class to another marks the end of a word. + + vveerrbboossee [[ooffff]] + VVii only. VVii historically bells the terminal for + many obvious mistakes, e.g. trying to move past + the left-hand margin, or past the end of the file. + If this option is set, an error message is dis- + played for all errors. + + ww330000 [[nnoo ddeeffaauulltt]] + VVii only. Set the window size if the baud rate is + less than 1200 baud. See the wwiinnddooww option for + more information. + + ww11220000 [[nnoo ddeeffaauulltt]] + VVii only. Set the window size if the baud rate is + equal to 1200 baud. See the wwiinnddooww option for + more information. + + ww99660000 [[nnoo ddeeffaauulltt]] + VVii only. Set the window size if the baud rate is + greater than 1200 baud. See the wwiinnddooww option for + more information. + + wwaarrnn [[oonn]] + EExx only. This option causes a warning message to + the terminal if the file has been modified, since + it was last written, before a !! command. + + wwiinnddooww,, ww,, wwii [[eennvviirroonnmmeenntt vvaarriiaabbllee LLIINNEESS -- 11]] + This option determines the default number of lines + in a screenful, as displayed by the zz command. It + also determines the number of lines scrolled by + the vvii commands <> and <>, and + the default number of lines scrolled by the vvii + commands <> and <>. The value + of window can be unrelated to the real screen + size, although it starts out as the number of + lines on the screen. See the section entitled + "SSiizziinngg tthhee SSccrreeeenn" for more information. Setting + the value of the wwiinnddooww option is the same as + using the --ww command line option. + + If the value of the wwiinnddooww option (as set by the + wwiinnddooww, ww330000, ww11220000 or ww99660000 options) is smaller + than the actual size of the screen, large screen + movements will result in displaying only that + smaller number of lines on the screen. (Further + movements in that same area will result in the + screen being filled.) This can provide a perfor- + mance improvement when viewing different places in + one or more files over a slow link. + + + + + + + + + + +UUSSDD::1133--8844 NNvvii//NNeexx RReeffeerreennccee ((OOppttiioonnss)) + + + Resetting the window size does not reset the + default number of lines scrolled by the <> and <> commands. + + wwrraapplleenn,, wwll [[00]] + This option is identical to the wwrraappmmaarrggiinn option, + with the exception that it specifies the number of + columns from the _l_e_f_t margin before the line + splits, not the right margin. If both wwrraapplleenn and + wwrraappmmaarrggiinn are set, the wwrraappmmaarrggiinn value is used. + + wwrraappmmaarrggiinn,, wwmm [[00]] + VVii only. If the value of the wwrraappmmaarrggiinn option is + non-zero, vvii will split lines so that they end at + least that number of columns before the right-hand + margin of the screen. (Note, the value of wwrraapp-- + mmaarrggiinn is _n_o_t a text length. In a screen that is + 80 columns wide, the command "::sseett wwrraappmmaarrggiinn==88" + attempts to keep the lines less than or equal to + 72 columns wide.) + + Lines are split at the previous whitespace charac- + ter closest to the number. Any trailing whites- + pace characters before that character are deleted. + If the line is split because of an inserted + <> or <> character, and you then enter + another <> character, it is discarded. + + If wrapmargin is set to 0, or if there is no blank + character upon which to split the line, the line + is not broken. + + wwrraappssccaann,, wwss [[oonn]] + This option causes searches to wrap around the end + or the beginning of the file, and back to the + starting point. Otherwise, the end or beginning + of the file terminates the search. + + wwrriitteeaannyy,, wwaa [[ooffff]] + If this option is set, file-overwriting checks + that would usually be made before the wwrriittee and + xxiitt commands, or before an automatic write (see + the aauuttoowwrriittee option), are not made. This allows + a write to any file, provided the file permissions + allow it. + + 1166.. AAddddiittiioonnaall FFeeaattuurreess iinn NNeexx//NNvvii + + There are a few features in nneexx/nnvvii that are not + found in historic versions of eexx/vvii. Some of the more + interesting of these are as follows: + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--8855 + + + 88--bbiitt cclleeaann ddaattaa,, llaarrggee lliinneess,, ffiilleess + NNeexx/nnvvii will edit any format file. Line lengths + are limited by available memory, and file sizes + are limited by available disk space. The vvii text + input mode command <> can insert any pos- + sible character value into the text. + + SSpplliitt ssccrreeeennss + The sspplliitt command divides the screen into multiple + editing regions. The <> command rotates + between the foreground screens. The rreessiizzee com- + mand can be used to grow or shrink a particular + screen. + + BBaacckkggrroouunndd aanndd ffoorreeggrroouunndd ssccrreeeennss + The bbgg command backgrounds the current screen, and + the ffgg command foregrounds backgrounded screens. + The ddiissppllaayy command can be used to list the back- + ground screens. + + TTaagg ssttaacckkss + Tags are now maintained in a stack. The <> command returns to the previous tag location. + The ttaaggppoopp command returns to the most recent tag + location by default, or, optionally to a specific + tag number in the tag stack, or the most recent + tag from a specified file. The ddiissppllaayy command + can be used to list the tags stack. The ttaaggttoopp + command returns to the top of the tag stack. + + NNeeww ddiissppllaayyss + The ddiissppllaayy command can be used to display the + current buffers, the backgrounded screens, and the + tags stack. + + IInnffiinniittee uunnddoo + Changes made during an edit session may be rolled + backward and forward. A .. command immediately + after a uu command continues either forward or + backward depending on whether the uu command was an + undo or a redo. + + UUssaaggee iinnffoorrmmaattiioonn + The eexxuussaaggee and vviiuussaaggee commands provide usage + information for all of the eexx and vvii commands by + default, or, optionally, for a specific command or + key. + + MMeessssaaggee CCaattaallooggss + It is possible to display informational and error + messages in different languages by providing a + catalog of messages. See the mmssggccaatt option and + the file ccaattaalloogg//RREEAADDMMEE for more information. + + + + + + + + + + +UUSSDD::1133--8866 NNvvii//NNeexx RReeffeerreennccee + + + EExxtteennddeedd RReegguullaarr EExxpprreessssiioonnss + The eexxtteennddeedd option causes Regular Expressions to + be interpreted as as Extended Regular Expressions, + (i.e. _e_g_r_e_p(1) style Regular Expressions). + + WWoorrdd sseeaarrcchh + The <> command searches for the word ref- + erenced by the cursor. + + NNuummbbeerr iinnccrreemmeenntt + The ## command increments or decrements the number + referenced by the cursor. + + PPrreevviioouuss ffiillee + The pprreevviioouuss command edits the previous file from + the argument list. + + LLeefftt--rriigghhtt ssccrroolllliinngg + The lleeffttrriigghhtt option causes nnvvii to do left-right + screen scrolling, instead of the traditional vvii + line wrapping. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +NNvvii//NNeexx RReeffeerreennccee UUSSDD::1133--8877 + + + 1177.. IInnddeexx + + ! 16, 35 ?RE? 19 change 38 + "" 35 @ 21, 36 chdir 38 + # 17, 36 A 21 columns 49 + $ 17 B 21 comment 49 + % 17 C 22 copy 38 + & 18, 44 D 22 count 11, 34 + ( 18 E 22 current pathname 8 + ) 18 F 22 d 27 + * 36 G 22 delete 38 + + 14 H 23 directory 49 + , 19 I 23 display 39 + /RE/ 19 J 23 e 27 + 0 20 L 23 edcompatible49 + 032 M 23 edit 39 + : 20 N 19 errorbells 49 + ; 21 O 24 exrc 49 + < 21, 36 P 24 extended 50 + 9 Q 24 exusage 39 + 12 R 24 f 27 + 13 S 24 fg 39 + , 35 T 24 file 34, 39 + 13 U 25 flags 34 + 13 W 25 flash 50 + 13 X 25 global 39 + , 32 Y 25 hardtabs 50 + 14 ZZ 25 help 40 + 14 [[ 26 i 28 + 14 - 19 ignorecase 50 + 14 ]] 26 insert 40 + 14 ^ 26 j 14 + 14 ^32 join 40 + , 32 _ 26 k 14, 41 + 15 `18 keytime 50 + , 32 a 26 l 16 + 33 abbrev 37 leftright 50 + 15 alternate pathname 8 line 34 + , 45 altwerase 48 lines 50 + 15 append 37 lisp 50 + 16 args 38 list 40, 50 + 34, 35 autoindent 48 lock 50 + 32 autoprint 48 m 28 + 15, 32 autowrite 48 magic 50 + , 33 b 27 map 41 + 32 backup 49 mark 41 + 8, 32 beautify 49 matchtime 50 + 9 bg 38 mesg 51 + 32 bigword 12 mkexrc 41 + 16 buffer 8 modelines 51 + 32 c 27 motion 11 + = 36 cd 38 move 41 + > 21, 37 cdpath 49 msgcat 51 + + + + + + + + + + +UUSSDD::1133--8888 NNvvii//NNeexx RReeffeerreennccee + + + n 19 tags 54 + next 41 tagtop 45 + number 36, 51 term 54 + o 28 terse 54 + octal 51 tildeop 54 + open 42, 51 timeout 54 + optimize 51 ttywerase 54 + p 28 u 29 + paragraph 12 unabbrev 45 + paragraphs 51 undo 45 + preserve 42 unmap 46 + previous 42 unnamed buffer 9 + previous context 10 v 39 + print 42 verbose 54 + prompt 52 version 46 + put 42 visual 46 + quit 42 viusage 46 + r 28 w 29 + range 34 w1200 54 + read 42 w300 54 + readonly 52 w9600 54 + recdir 52 warn 54 + recover 43 whitespace 9 + redraw 52 window 54 + remap 52 wn 46 + report 52 word 11 + resize 43 wq 46 + rewind 43 wraplen 55 + ruler 52 wrapmargin 55 + s 28 wrapscan 55 + scroll 52 write 46 + section 12 writeany 55 + sections 53 x 29 + sentence 12 xit 47 + set 43 y 29 + shell 44, 53 yank 47 + shellmeta 53 z 30, 47 + shiftwidth 53 { 30 + showmatch 53 | 30 + showmode 53 } 30 + sidescroll 53 ~ 31, 44 + slowopen 53 + source 44 + sourceany 53 + split 44 + stop 45 + substitute 44 + suspend 45 + t 29, 38 + tabstop 53 + tag 45 + taglength 54 + tagpop 45 + + + + + + + + + + +UUSSDD::1133--22 NNvvii//NNeexx RReeffeerreennccee + + + TTaabbllee ooff CCoonntteennttss + + Description ...................................... 3 + Startup Information .............................. 3 + Recovery ......................................... 4 + Sizing the Screen ................................ 8 + Character Display ................................ 8 + Multiple Screens ................................. 9 + Regular Expressions and Replacement Strings ...... 9 + General Editor Description ....................... 11 + Vi Description ................................... 14 + Vi Commands ...................................... 19 + Vi Text Input Commands ........................... 47 + Ex Addressing .................................... 49 + Ex Description ................................... 52 + Ex Commands ...................................... 53 + Set Options ...................................... 72 + Additional Features in Nex/Nvi ................... 84 + Index ............................................ 87 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/src/share/doc/usd/13.viref b/usr/src/share/doc/usd/13.viref new file mode 120000 index 0000000000..d940ceb60c --- /dev/null +++ b/usr/src/share/doc/usd/13.viref @@ -0,0 +1 @@ +../../../contrib/nvi/USD.doc/vi.ref \ No newline at end of file -- 2.20.1