Annotation of 43BSDReno/share/doc/usd/15.vi/vi.apwh.ms, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1980 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" Redistribution and use in source and binary forms are permitted
        !             5: .\" provided that the above copyright notice and this paragraph are
        !             6: .\" duplicated in all such forms and that any documentation,
        !             7: .\" advertising materials, and other materials related to such
        !             8: .\" distribution and use acknowledge that the software was developed
        !             9: .\" by the University of California, Berkeley.  The name of the
        !            10: .\" University may not be used to endorse or promote products derived
        !            11: .\" from this software without specific prior written permission.
        !            12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !            13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !            14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            15: .\"
        !            16: .\"    @(#)vi.apwh.ms  6.2 (Berkeley) 11/27/89
        !            17: .\"
        !            18: .TL
        !            19: Vi Command & Function Reference
        !            20: .AU CB 2675
        !            21: Alan P.W. Hewett
        !            22: .sp
        !            23: Revised for version 2.12 by Mark Horton
        !            24: .CB
        !            25: .NH 1
        !            26: Author's Disclaimer
        !            27: .LP
        !            28: This document does not claim to be 100% complete.  There are a
        !            29: few commands listed in the original document that I was unable
        !            30: to test either because I do not speak \fBlisp\fR, because they
        !            31: required programs we don't have, or because I wasn't able to make
        !            32: them work.  In these cases I left the command out.  The commands
        !            33: listed in this document have been tried and are known to work.
        !            34: It is expected that prospective users of this document will read
        !            35: it once to get the flavor of everything that \fBvi\fR can do
        !            36: and then use it as a reference document.  Experimentation is
        !            37: recommended.  If you don't understand a command, try it and
        !            38: see what happens.
        !            39: .LP
        !            40: [Note: In revising this document, I have attempted to make it
        !            41: completely reflect version 2.12 of
        !            42: .B vi .
        !            43: It does not attempt to document the VAX version (version 3),
        !            44: but with one or two exceptions (wrapmargin, arrow keys)
        !            45: everything said about 2.12 should apply to 3.1.
        !            46: .I "Mark Horton" ]
        !            47: .NH 1
        !            48: Notation
        !            49: .LP
        !            50: \fB[option]\fR is used to denote optional parts of a command.
        !            51: Many \fBvi\fR commands have an optional count.  \fB[cnt]\fR
        !            52: means that an optional number may precede the command to
        !            53: multiply or iterate the command.
        !            54: \fB{variable item}\fR is used to denote parts of the command
        !            55: which must appear, but can take a number of different values.
        !            56: \fB<character [-character]>\fR means that the character or
        !            57: one of the characters in the range described between the
        !            58: two angle brackets is to be typed.
        !            59: For example \fB<esc>\fR means
        !            60: the \fBescape\fR key is to be typed.  \fB<a-z>\fR means that a
        !            61: lower case letter is to be typed.  \fB^<character>\fR means that
        !            62: the character is to be typed as a \fBcontrol\fR character, that is,
        !            63: with the \fB<cntl>\fR key held down while simultaneously typing
        !            64: the specified character.  In this document control characters will
        !            65: be denoted using the \fIupper case\fR character, but
        !            66: ^<uppercase chr> and ^<lowercase chr> are equivalent.  That is, for
        !            67: example, \fB<^D>\fR is equal to \fB<^d>\fR.
        !            68: The most common character abbreviations
        !            69: used in this list are as follows:
        !            70: .VL 8
        !            71: .IP <esc> 8
        !            72: escape, octal 033
        !            73: .IP <cr> 8
        !            74: carriage return, ^M, octal 015
        !            75: .IP <lf> 8
        !            76: linefeed ^J, octal 012
        !            77: .IP <nl> 8
        !            78: newline, ^J, octal 012 (same as linefeed)
        !            79: .IP <bs> 8
        !            80: backspace, ^H, octal 010
        !            81: .IP <tab> 8
        !            82: tab, ^I, octal 011
        !            83: .IP <bell> 8
        !            84: bell, ^G, octal 07
        !            85: .IP <ff> 8
        !            86: formfeed, ^L, octal 014
        !            87: .IP <sp> 8
        !            88: space, octal 040
        !            89: .IP <del> 8
        !            90: delete, octal 0177
        !            91: .LE
        !            92: .sp 1
        !            93: .NH 1
        !            94: Basics
        !            95: .LP
        !            96: To run \fBvi\fR the shell variable \fBTERM\fR must be defined and
        !            97: exported to your environment.
        !            98: How you do this depends on which shell you are using.
        !            99: You can tell which shell you have by the character it
        !           100: prompts you for commands with.
        !           101: The Bourne shell prompts with `$', and the C shell prompts with `%'.
        !           102: For these examples, we will suppose
        !           103: that you are using an HP 2621 terminal, whose termcap name is ``2621''.
        !           104: .NH 2
        !           105: Bourne Shell
        !           106: .LP
        !           107: To manually set your terminal type to 2621 you would type:
        !           108: .DS
        !           109: TERM=2621
        !           110: export TERM
        !           111: .DE
        !           112: .PP
        !           113: There are various ways of having this automatically or
        !           114: semi-automatically done when you log in.
        !           115: Suppose you usually dial in on a 2621.
        !           116: You want to tell this to the machine, but still have it
        !           117: work when you use a hardwired terminal.
        !           118: The recommended way, if you have the
        !           119: .B tset
        !           120: program, is to use the sequence
        !           121: .DS
        !           122: tset \-s \-d 2621 > tset$$
        !           123: \&. tset$$
        !           124: rm tset$$
        !           125: .DE
        !           126: in your .login (for csh) or the same thing using `.' instead of `source'
        !           127: in your .profile (for sh).
        !           128: The above line says that if you are dialing in you are on a 2621,
        !           129: but if you are on a hardwired terminal it figures out your terminal
        !           130: type from an on-line list.
        !           131: .NH 2
        !           132: The C Shell
        !           133: .LP
        !           134: To manually set your terminal type to 2621 you would type:
        !           135: .DS
        !           136: setenv TERM 2621
        !           137: .DE
        !           138: .PP
        !           139: There are various ways of having this automatically or
        !           140: semi-automatically done when you log in.
        !           141: Suppose you usually dial in on a 2621.
        !           142: You want to tell this to the machine, but still have it
        !           143: work when you use a hardwired terminal.
        !           144: The recommended way, if you have the
        !           145: .B tset
        !           146: program, is to use the sequence
        !           147: .DS
        !           148: tset \-s \-d 2621 > tset$$
        !           149: source tset$$
        !           150: rm tset$$
        !           151: .DE
        !           152: in your .login.*
        !           153: .FS
        !           154: * On a version 6 system
        !           155: without environments, the invocation of tset
        !           156: is simpler, just add the line ``tset \-d 2621''
        !           157: to your .login or .profile.
        !           158: .FE
        !           159: The above line says that if you are dialing in you are on a 2621,
        !           160: but if you are on a hardwired terminal it figures out your terminal
        !           161: type from an on-line list.
        !           162: .NH 1
        !           163: Normal Commands
        !           164: .LP
        !           165: \fBVi\fR is a visual editor with a window on the file.  What
        !           166: you see on the screen is \fBvi\fR's current notion of
        !           167: what your file will contain,
        !           168: (at this point in the file),
        !           169: when it is written out.
        !           170: Most commands do not cause any change in the screen until the
        !           171: complete command is typed.  Should you get confused while
        !           172: typing a command, you can abort the command by typing an
        !           173: <del> character.  You will know you are back to command level
        !           174: when you hear a <bell>.  Usually typing an <esc> will produce the
        !           175: same result.  When \fBvi\fR gets an improperly formatted command
        !           176: it rings the <bell>.
        !           177: Following are the \fBvi\fR commands broken down by function.
        !           178: .NH 2
        !           179: Entry and Exit
        !           180: .LP
        !           181: To enter
        !           182: .B vi
        !           183: on a particular
        !           184: .I file ,
        !           185: type
        !           186: .DS
        !           187: \fBvi\fP \fIfile\fP
        !           188: .DE
        !           189: The file will be read in and the cursor will be placed at the beginning
        !           190: of the first line.
        !           191: The first screenfull of the file will be displayed on the terminal.
        !           192: .PP
        !           193: To get out of the editor, type
        !           194: .DS
        !           195: ZZ
        !           196: .DE
        !           197: If you are in some special mode, such as input mode
        !           198: or the middle of a multi-keystroke command, it may
        !           199: be necessary to type <esc> first.
        !           200: .NH 2
        !           201: Cursor and Page Motion
        !           202: .LP
        !           203: .VL 16
        !           204: .B NOTE:
        !           205: The arrow keys (see the next four commands)
        !           206: on certain kinds of terminals will not work with the
        !           207: PDP-11 version of vi.  The control versions or the hjkl versions will
        !           208: work on any terminal.  Experienced users prefer the hjkl keys because
        !           209: they are always right under their fingers.  Beginners often prefer
        !           210: the arrow keys, since they do not require memorization of which hjkl
        !           211: key is which.
        !           212: The mnemonic value of hjkl is clear from looking at the keyboard of an adm3a.
        !           213: .sp
        !           214: .IP "[cnt]<bs> or [cnt]h or [cnt]\(<-" 16
        !           215: .br
        !           216: Move the cursor to the left one character.  Cursor stops at the left
        !           217: margin of the page.
        !           218: If cnt is given, these commands move that many spaces.
        !           219: .IP "[cnt]^N or [cnt]j or [cnt]\(da or [cnt]<lf>" 16
        !           220: .br
        !           221: Move down one line.
        !           222: Moving off the screen scrolls the window to force a new line
        !           223: onto the screen.
        !           224: Mnemonic: \fBN\fRext
        !           225: .IP "[cnt]^P or [cnt]k or [cnt]\(ua" 16
        !           226: .br
        !           227: Move up one line.
        !           228: Moving off the top of the screen forces new text onto the screen.
        !           229: Mnemonic: \fBP\fRrevious
        !           230: .IP "[cnt]<sp> or [cnt]l or [cnt]\(->" 16
        !           231: .br
        !           232: Move to the right one character.
        !           233: Cursor will not go beyond the end of the line.
        !           234: .IP [cnt]- 16
        !           235: Move the cursor up the screen to the beginning of the next line.
        !           236: Scroll if necessary.
        !           237: .IP "[cnt]+ or [cnt]<cr>" 16
        !           238: .sp 1
        !           239: Move the cursor down the screen to the beginning of the next line.
        !           240: Scroll up if necessary.
        !           241: .IP "[cnt]$" 16
        !           242: Move the cursor to the end of the line.
        !           243: If there is a count, move to the end of the line "cnt" lines
        !           244: forward in the file.
        !           245: .IP "^" 16
        !           246: Move the cursor to the beginning of the first word on the line.
        !           247: .IP "0" 16
        !           248: Move the cursor to the left margin of the current line.
        !           249: .IP "[cnt]|" 16
        !           250: Move the cursor to the column specified by the count.  The default is
        !           251: column zero.
        !           252: .IP "[cnt]w" 16
        !           253: Move the cursor to the beginning of the next word. If there
        !           254: is a count, then move forward that many words and
        !           255: position the cursor at the beginning of the word.
        !           256: Mnemonic: next-\fBw\fRord
        !           257: .IP "[cnt]W" 16
        !           258: Move the cursor to the beginning of the next word which follows
        !           259: a "white space" (<sp>,<tab>, or <nl>).  Ignore other punctuation.
        !           260: .IP "[cnt]b" 16
        !           261: Move the cursor to the preceding word.  Mnemonic: \fBb\fRackup-word
        !           262: .IP "[cnt]B" 16
        !           263: Move the cursor to the preceding word that is separated from the
        !           264: current word by a "white space" (<sp>,<tab>, or <nl>).
        !           265: .IP "[cnt]e" 16
        !           266: Move the cursor to the end of the current word or the end of the
        !           267: "cnt"'th word hence.  Mnemonic: \fBe\fRnd-of-word
        !           268: .IP "[cnt]E" 16
        !           269: Move the cursor to the end of the current word which is delimited by
        !           270: "white space" (<sp>,<tab>, or <nl>).
        !           271: .IP "[line number]G" 16
        !           272: .br
        !           273: Move the cursor to the line specified.  Of particular use are the
        !           274: sequences "1G" and "G", which move the cursor to the beginning and
        !           275: the end of the file respectively.  Mnemonic: \fBG\fRo-to
        !           276: .LP
        !           277: .B NOTE:
        !           278: The next four commands (^D, ^U, ^F, ^B)
        !           279: are not true motion commands, in that they
        !           280: cannot be used as the object of commands such as delete or change.
        !           281: .IP "[cnt]^D" 16
        !           282: Move the cursor down in the file by "cnt" lines (or the last "cnt"
        !           283: if a new count isn't given.  The initial default is half a page.)  The
        !           284: screen is simultaneously scrolled up.  Mnemonic: \fBD\fRown
        !           285: .IP "[cnt]^U" 16
        !           286: Move the cursor up in the file by "cnt" lines.  The screen is simultaneously
        !           287: scrolled down.  Mnemonic: \fBU\fRp
        !           288: .IP "[cnt]^F" 16
        !           289: Move the cursor to the next page.  A count moves that many pages.
        !           290: Two lines of the previous page are kept on the screen for continuity if
        !           291: possible.  Mnemonic: \fBF\fRorward-a-page
        !           292: .IP "[cnt]^B" 16
        !           293: Move the cursor to the previous page.  Two lines of the current page
        !           294: are kept if possible.  Mnemonic: \fBB\fRackup-a-page
        !           295: .IP "[cnt](" 16
        !           296: Move the cursor to the beginning of the next sentence.
        !           297: A sentence is defined as ending with a ".", "!", or "?"
        !           298: followed by two spaces or a <nl>.
        !           299: .IP "[cnt])" 16
        !           300: Move the cursor backwards to the beginning of a sentence.
        !           301: .IP "[cnt]}" 16
        !           302: Move the cursor to the beginning of the next paragraph.  This command
        !           303: works best inside \fBnroff\fR documents.  It understands two sets of
        !           304: \fBnroff\fR macros, \fB\-ms\fR and \fB\-mm\fR, for which the
        !           305: commands ".IP", ".LP", ".PP", ".QP", "P", as well as the nroff command ".bp"
        !           306: are considered to be paragraph delimiters.
        !           307: A blank line also delimits a paragraph.
        !           308: The \fBnroff\fR macros that it accepts as paragraph delimiters is
        !           309: adjustable.  See \fBparagraphs\fR under the \fBSet Commands\fR section.
        !           310: .IP "[cnt]{" 16
        !           311: Move the cursor backwards to the beginning of a paragraph.
        !           312: .IP "]]" 16
        !           313: Move the cursor to the next "section", where a section is defined by
        !           314: two sets of \fBnroff\fR macros, \fB\-ms\fR and \fB\-mm\fR, in which
        !           315: ".NH", ".SH", and ".H" delimit a section.  A line beginning with a <ff><nl>
        !           316: sequence, or a line beginning with a "{" are also considered to
        !           317: be section delimiters.  The last option makes it
        !           318: useful for finding the beginnings of C functions.
        !           319: The \fBnroff\fR macros that are used for section delimiters can be adjusted.
        !           320: See \fBsections\fR under the \fBSet Commands\fR section.
        !           321: .IP "[[" 16
        !           322: Move the cursor backwards to the beginning of a section.
        !           323: .IP "%" 16
        !           324: Move the cursor to the matching parenthesis
        !           325: or brace.  This is very useful in C or lisp code.  If the
        !           326: cursor is sitting on a \fB( ) {\fR or \fB}\fR the cursor
        !           327: is moved to the matching character at the other end of the
        !           328: section.  If the cursor is not sitting on a brace or a
        !           329: parenthesis, \fBvi\fR searches forward until it finds one
        !           330: and then jumps to the match mate.
        !           331: .IP "[cnt]H" 16
        !           332: If there is no count move the cursor to the top left position on the screen.
        !           333: If there is a count, then move the cursor to the beginning of the line
        !           334: "cnt" lines from the top of the screen.  Mnemonic:  \fBH\fRome
        !           335: .IP "[cnt]L" 16
        !           336: If there is no count move the cursor to the beginning
        !           337: of the last line on the screen.
        !           338: If there is a count, then move the cursor to the beginning of the line
        !           339: "cnt" lines from the bottom of the screen.  Mnemonic: \fBL\fRast
        !           340: .IP "M" 16
        !           341: Move the cursor to the beginning of the middle line on the screen.
        !           342: Mnemonic: \fBM\fRiddle
        !           343: .IP "m<a-z>" 16
        !           344: This command does not move the cursor, but it \fBmarks\fR the place
        !           345: in the file and the character "<a-z>" becomes the label for referring
        !           346: to this location in the file.  See the next two commands.  Mnemonic:
        !           347: \fBm\fRark
        !           348: .B NOTE:
        !           349: The mark command is not a motion, and cannot be used as the target
        !           350: of commands such as delete.
        !           351: .IP "\(aa<a-z>" 16
        !           352: Move the cursor to the beginning of the line that is marked with the label
        !           353: "<a-z>".
        !           354: .IP "\(ga<a-z>" 16
        !           355: Move the cursor to the exact position on the line that was marked with
        !           356: with the label "<a-z>".
        !           357: .IP "\(aa\(aa" 16
        !           358: Move the cursor back to the beginning of the line where it was before the
        !           359: last "non-relative" move.  A "non-relative" move is something such as a
        !           360: search or a jump to a specific line in the file, rather than moving the
        !           361: cursor or scrolling the screen.
        !           362: .IP "\(ga\(ga" 16
        !           363: Move the cursor back to the exact spot on the line where it was located
        !           364: before the last "non-relative" move.
        !           365: .LE
        !           366: .NH 2
        !           367: Searches
        !           368: .LP
        !           369: The following commands allow you to search for items in a file.
        !           370: .VL 16
        !           371: .IP [cnt]f{chr} 16
        !           372: .sp 1
        !           373: Search forward on the line for the next or "cnt"'th occurrence of
        !           374: the character "chr".  The cursor is placed \fBat\fR the character
        !           375: of interest.  Mnemonic: \fBf\fRind character
        !           376: .IP [cnt]F{chr} 16
        !           377: .sp 1
        !           378: Search backwards on the line for the next or "cnt"'th occurrence of
        !           379: the character "chr".  The cursor is placed \fBat\fR the character
        !           380: of interest.
        !           381: .IP [cnt]t{chr} 16
        !           382: .sp 1
        !           383: Search forward on the line for the next or "cnt"'th occurrence of
        !           384: the character "chr".  The cursor is placed \fBjust preceding\fR
        !           385: the character of interest.  Mnemonic: move cursor up \fBt\fRo character
        !           386: .IP [cnt]T{chr} 16
        !           387: .sp 1
        !           388: Search backwards on the line for the next or "cnt"'th occurrence of
        !           389: the character "chr".  The cursor is placed \fBjust preceding\fR
        !           390: the character of interest.
        !           391: .IP "[cnt];" 16
        !           392: Repeat the last "f", "F", "t" or "T" command.
        !           393: .IP "[cnt]," 16
        !           394: Repeat the last "f", "F", "t" or "T" command, but in the opposite
        !           395: search direction.  This is useful if you overshoot.
        !           396: .IP "[cnt]/[string]/<nl>" 16
        !           397: .br
        !           398: Search forward for the next occurrence of "string".
        !           399: Wrap around at the end of the file
        !           400: does occur.
        !           401: The final \fB</>\fR is not required.
        !           402: .IP "[cnt]?[string]?<nl>" 16
        !           403: .br
        !           404: Search backwards for the next occurrence of "string".  If a count is
        !           405: specified, the count becomes the new window size.  Wrap around at the beginning
        !           406: of the file does occur.
        !           407: The final \fB<?>\fR is not required.
        !           408: .IP n 16
        !           409: Repeat the last /[string]/ or ?[string]? search.  Mnemonic: \fBn\fRext
        !           410: occurrence.
        !           411: .IP N 16
        !           412: Repeat the last /[string]/ or ?[string]? search, but in the reverse
        !           413: direction.
        !           414: .IP ":g/[string]/[editor command]<nl>" 16
        !           415: .sp 1
        !           416: Using the \fB:\fR syntax it is possible to do global searches ala the
        !           417: standard UNIX "ed" editor.
        !           418: .LE
        !           419: .NH 2
        !           420: Text Insertion
        !           421: .LP
        !           422: The following commands allow for the insertion of text.  All multicharacter
        !           423: text insertions are terminated with an <esc> character.
        !           424: The last change
        !           425: can always be \fBundone\fR by typing a \fBu\fR.
        !           426: The text insert in insertion mode can contain newlines.
        !           427: .VL 16
        !           428: .IP a{text}<esc> 16
        !           429: Insert text immediately following the cursor position.
        !           430: Mnemonic: \fBa\fRppend
        !           431: .IP A{text}<esc> 16
        !           432: Insert text at the end of the current line.
        !           433: Mnemonic: \fBA\fRppend
        !           434: .IP i{text}<esc> 16
        !           435: Insert text immediately preceding the cursor position.
        !           436: Mnemonic: \fBi\fRnsert
        !           437: .IP I{text}<esc> 16
        !           438: Insert text at the beginning of the current line.
        !           439: .IP o{text}<esc> 16
        !           440: Insert a new line after the line on which the cursor appears and
        !           441: insert text there.  Mnemonic:  \fBo\fRpen new line
        !           442: .IP O{text}<esc> 16
        !           443: Insert a new line preceding the line on which the cursor appears
        !           444: and insert text there.
        !           445: .LE
        !           446: .NH 2
        !           447: Text Deletion
        !           448: .LP
        !           449: The following commands allow the user to delete text in various ways.
        !           450: All changes can always be \fBundone\fR by typing the \fBu\fR command.
        !           451: .VL 16
        !           452: .IP "[cnt]x" 16
        !           453: Delete the character or characters starting at the cursor position.
        !           454: .IP "[cnt]X" 16
        !           455: Delete the character or characters starting at the character preceding
        !           456: the cursor position.
        !           457: .IP "D" 16
        !           458: Deletes the remainder of the line starting at the cursor.
        !           459: Mnemonic: \fBD\fRelete the rest of line
        !           460: .IP "[cnt]d{motion}" 16
        !           461: .br
        !           462: Deletes one or more occurrences of the specified motion.
        !           463: Any motion from sections 4.1 and 4.2 can be used here.
        !           464: The d can be stuttered (e.g. [cnt]dd) to delete cnt lines.
        !           465: .LE
        !           466: .NH 2
        !           467: Text Replacement
        !           468: .LP
        !           469: The following commands allow the user to simultaneously delete and
        !           470: insert new text.  All such actions can be \fBundone\fR by typing
        !           471: \fBu\fR following the command.
        !           472: .VL 16
        !           473: .IP "r<chr>" 16
        !           474: Replaces the character at the current cursor position with <chr>.  This
        !           475: is a one character replacement.  No <esc> is required for termination.
        !           476: Mnemonic:  \fBr\fReplace character
        !           477: .IP "R{text}<esc>" 16
        !           478: Starts overlaying the characters on the screen with whatever you type.
        !           479: It does not stop until an <esc> is typed.
        !           480: .IP "[cnt]s{text}<esc>" 16
        !           481: Substitute for "cnt" characters beginning at the current cursor
        !           482: position.  A "$" will appear at the position in the text where the
        !           483: "cnt"'th character appears so you will know how much you are erasing.
        !           484: Mnemonic: \fBs\fRubstitute
        !           485: .IP "[cnt]S{text}<esc>" 16
        !           486: Substitute for the entire current line (or lines).  If no count is given,
        !           487: a "$" appears at the end of the current line.  If a count of more than
        !           488: 1 is given, all the lines to be replaced are deleted before the insertion
        !           489: begins.
        !           490: .IP "[cnt]c{motion}{text}<esc>" 16
        !           491: .br
        !           492: Change the specified "motion" by replacing it with the
        !           493: insertion text.  A "$" will appear at the end of the last item
        !           494: that is being deleted unless the deletion involves whole lines.
        !           495: Motion's can be any motion from sections 4.1 or 4.2.
        !           496: Stuttering the c (e.g. [cnt]cc) changes cnt lines.
        !           497: .LE
        !           498: .NH 2
        !           499: Moving Text
        !           500: .LP
        !           501: \fBVi\fR provides a number of ways of moving chunks of text around.
        !           502: There are nine buffers into which each piece of text which is deleted
        !           503: or "yanked" is put in addition to the "undo" buffer.
        !           504: The most recent deletion or yank is in the "undo" buffer and also
        !           505: usually in buffer
        !           506: 1, the next most recent in buffer 2, and so forth.  Each new deletion
        !           507: pushes down all the older deletions.  Deletions older than 9
        !           508: disappear.  There is also
        !           509: a set of named registers, a-z, into which text can optionally
        !           510: be placed.  If any delete or replacement type command is preceded
        !           511: by \fB"<a-z>\fR, that named buffer will contain the text deleted
        !           512: after the command is executed.  For example, \fB"a3dd\fR will delete
        !           513: three lines starting at the current line and put them in buffer \fB"a\fR.*
        !           514: .FS
        !           515: * Referring to an upper case letter as a buffer name (A-Z) is the
        !           516: same as referring to the lower case letter, except that text placed
        !           517: in such a buffer is appended to it instead of replacing it.
        !           518: .FE
        !           519: There are two more basic commands and
        !           520: some variations useful in getting and putting text into a file.
        !           521: .VL 16
        !           522: .IP ["<a-z>][cnt]y{motion} 16
        !           523: .sp 1
        !           524: Yank the specified item or "cnt" items and put in the "undo" buffer or
        !           525: the specified buffer.  The variety of "items" that can be yanked
        !           526: is the same as those that can be deleted with the "d" command or
        !           527: changed with the "c" command.  In the same way that "dd" means
        !           528: delete the current line and "cc" means replace the current line,
        !           529: "yy" means yank the current line.
        !           530: .IP ["<a-z>][cnt]Y 16
        !           531: Yank the current line or the "cnt" lines starting from the current
        !           532: line.  If no buffer is specified, they will go into the "undo" buffer,
        !           533: like any delete would.  It is equivalent to "yy".
        !           534: Mnemonic:  \fBY\fRank
        !           535: .IP ["<a-z>]p 16
        !           536: Put "undo" buffer or the specified buffer down \fBafter\fR the cursor.
        !           537: If whole lines were yanked or deleted into the buffer, then they will be
        !           538: put down on the line following the line the cursor is on.  If
        !           539: something else was deleted, like a word or sentence, then it will
        !           540: be inserted immediately following the cursor.
        !           541: Mnemonic:  \fBp\fRut buffer
        !           542: .IP
        !           543: It should be noted that text in the named buffers remains there when you
        !           544: start editing a new file with the \fB:e file<esc>\fR command.  Since
        !           545: this is so, it is possible to copy or delete text from one file and
        !           546: carry it over to another file in the buffers.
        !           547: However, the undo buffer and the ability to undo are lost when
        !           548: changing files.
        !           549: .IP ["<a-z>]P 16
        !           550: Put "undo" buffer or the specified buffer down \fBbefore\fR the cursor.
        !           551: If whole lines where yanked or deleted into the buffer, then they will be
        !           552: put down on the line preceding the line the cursor is on.  If
        !           553: something else was deleted, like a word or sentence, then it will
        !           554: be inserted immediately preceding the cursor.
        !           555: .IP [cnt]>{motion} 16
        !           556: The shift operator will right shift all the text from the line on which
        !           557: the cursor is located to the line where the \fBmotion\fR is located.
        !           558: The text is shifted by one \fBshiftwidth\fR.  (See section 6.)
        !           559: \fB>>\fR means right shift the current line or lines.
        !           560: .IP [cnt]<{motion} 16
        !           561: The shift operator will left shift all the text from the line on which
        !           562: the cursor is located to the line where the \fBitem\fR is located.
        !           563: The text is shifted by one \fBshiftwidth\fR.  (See section 6.)
        !           564: \fB<<\fR means left shift the current line or lines.
        !           565: Once the line has reached the left margin it is not further affected.
        !           566: .IP [cnt]={motion} 16
        !           567: Prettyprints the indicated area according to
        !           568: .B lisp
        !           569: conventions.
        !           570: The area should be a lisp s-expression.
        !           571: .LE
        !           572: .NH 2
        !           573: Miscellaneous Commands
        !           574: .LP
        !           575: \fBVi\fR has a number of miscellaneous commands that are very
        !           576: useful.  They are:
        !           577: .VL 16
        !           578: .IP ZZ 16
        !           579: This is the normal way to exit from vi.
        !           580: If any changes have been made, the file is written out.
        !           581: Then you are returned to the shell.
        !           582: .IP ^L 16
        !           583: Redraw the current screen.  This is useful if someone "write"s you
        !           584: while you are in "vi" or if for any reason garbage gets onto the
        !           585: screen.
        !           586: .IP ^R 16
        !           587: On dumb terminals, those not having the "delete line" function
        !           588: (the vt100 is such a terminal), \fBvi\fR saves redrawing the
        !           589: screen when you delete a line by just marking the line with an
        !           590: "@" at the beginning and blanking the line.  If you want to
        !           591: actually get rid of the lines marked with "@" and see what the
        !           592: page looks like, typing a ^R will do this.
        !           593: .IP \s+4.\s0 16
        !           594: "Dot" is a particularly useful command.  It repeats the last
        !           595: text modifying command.  Therefore you can type a command once and
        !           596: then to another place and repeat it by just typing ".".
        !           597: .IP u 16
        !           598: Perhaps the most important command in the editor,
        !           599: u undoes the last command that changed the buffer.
        !           600: Mnemonic:  \fBu\fRndo
        !           601: .IP U 16
        !           602: Undo all the text modifying commands performed on the current line
        !           603: since the last time you moved onto it.
        !           604: .IP [cnt]J 16
        !           605: Join the current line and the following line.  The <nl> is deleted
        !           606: and the two lines joined, usually with a space between the
        !           607: end of the first line and the beginning of what was the second
        !           608: line.  If the first line ended with a "period", then two spaces
        !           609: are inserted.
        !           610: A count joins the next cnt lines.
        !           611: Mnemonic: \fBJ\fRoin lines
        !           612: .IP Q 16
        !           613: Switch to \fBex\fR editing mode.
        !           614: In this mode \fBvi\fR will behave very much like \fBed\fR.
        !           615: The editor in this mode will operate on single lines normally and
        !           616: will not attempt to keep the "window" up to date.
        !           617: Once in this mode it is also possible to switch to the \fBopen\fR
        !           618: mode of editing.  By entering the command \fB[line number]open<nl>\fR
        !           619: you enter this mode.  It is similar to the normal visual mode
        !           620: except the window is only \fBone\fR line long.
        !           621: Mnemonic: \fBQ\fRuit visual mode
        !           622: .IP ^] 16
        !           623: An abbreviation for a tag command.
        !           624: The cursor should be positioned at the beginning of a word.
        !           625: That word is taken as a tag name, and the tag with that
        !           626: name is found as if it had been typed in a :tag command.
        !           627: .IP [cnt]!{motion}{UNIX\ cmd}<nl> 16
        !           628: .br
        !           629: Any UNIX filter
        !           630: (e.g. command that reads the standard input and outputs something
        !           631: to the standard output) can be sent a section of the current file and
        !           632: have the output of the command replace the original text.  Useful
        !           633: examples are programs like \fBcb\fR, \fBsort\fR, and
        !           634: \fBnroff\fR.  For instance, using \fBsort\fR it would be possible to
        !           635: sort a section of the current file into a new list.
        !           636: Using \fB!!\fR means take a line or lines starting at the line the
        !           637: cursor is currently on and pass them to the UNIX command.
        !           638: .B NOTE:
        !           639: To just escape to the shell for one command,
        !           640: use :!{cmd}<nl>, see section 5.
        !           641: .IP z{cnt}<nl> 16
        !           642: This resets the current window size to "cnt" lines and redraws the screen.
        !           643: .LE
        !           644: .NH 2
        !           645: Special Insert Characters
        !           646: .LP
        !           647: There are some characters that have special meanings during
        !           648: insert modes.  They are:
        !           649: .VL 16
        !           650: .IP ^V 16
        !           651: During inserts, typing a ^V allows you to quote control characters
        !           652: into the file.  Any character typed after the ^V will be inserted
        !           653: into the file.
        !           654: .IP [^]^D\ or\ [0]^D 16
        !           655: <^D> without any argument backs up one \fBshiftwidth\fR.  This is necessary
        !           656: to remove indentation that was inserted by the \fBautoindent\fR feature.
        !           657: ^<^D> temporarily removes all the autoindentation, thus placing the cursor
        !           658: at the left margin.  On the next line, the previous indent level will be
        !           659: restored.  This is useful for putting "labels" at the left margin.
        !           660: 0<^D> says remove all autoindents and stay that way.  Thus the cursor
        !           661: moves to the left margin and stays there on successive lines until
        !           662: <tab>'s are typed.  As with the <tab>, the <^D> is only effective before
        !           663: any other "non-autoindent" controlling characters are typed.
        !           664: Mnemonic: \fBD\fRelete a shiftwidth
        !           665: .IP ^W 16
        !           666: If the cursor is sitting on a word, <^W> moves the cursor back to the beginning
        !           667: of the word, thus erasing the word from the insert.
        !           668: Mnemonic: erase \fBW\fRord
        !           669: .IP <bs> 16
        !           670: The backspace always serves as an erase during insert modes in addition
        !           671: to your normal "erase" character.  To insert a <bs> into your file, use
        !           672: the <^V> to quote it.
        !           673: .LE
        !           674: .NH 1
        !           675: \fB:\fR Commands
        !           676: .LP
        !           677: Typing a ":" during command mode causes \fBvi\fR to put the cursor at
        !           678: the bottom on the screen in preparation for a command.  In the
        !           679: ":" mode, \fBvi\fR can be given most \fBed\fR commands.  It is
        !           680: also from this mode that you exit from \fBvi\fR or switch to different
        !           681: files.  All commands of this variety are terminated by a <nl>, <cr>,
        !           682: or <esc>.
        !           683: .VL 16
        !           684: .IP ":w[!] [file]" 16
        !           685: Causes \fBvi\fR to write out the current text to the disk.  It is
        !           686: written to the file you are editing unless "file" is supplied.  If
        !           687: "file" is supplied, the write is directed to that file instead.  If
        !           688: that file already exists, \fBvi\fR will not perform the write unless
        !           689: the "!" is supplied indicating you
        !           690: .I really
        !           691: want to destroy the older copy of the file.
        !           692: .IP :q[!] 16
        !           693: Causes \fBvi\fR to exit.  If you have modified the file you are
        !           694: looking at currently and haven't written it out, \fBvi\fR will
        !           695: refuse to exit unless the "!" is supplied.
        !           696: .IP ":e[!] [+[cmd]] [file]" 16
        !           697: .sp 1
        !           698: Start editing a new file called "file" or start editing the current
        !           699: file over again.  The command ":e!" says "ignore the changes I've made
        !           700: to this file and start over from the beginning".  It is useful if
        !           701: you really mess up the file.  The optional "+" says instead of starting
        !           702: at the beginning, start at the "end", or,
        !           703: if "cmd" is supplied, execute "cmd" first.
        !           704: Useful cases of this are where cmd is "n" (any integer) which starts
        !           705: at line number n,
        !           706: and "/text", which searches for "text" and starts at the line where
        !           707: it is found.
        !           708: .IP "^^" 16
        !           709: Switch back to the place you were before your last tag command.
        !           710: If your last tag command stayed within the file, ^^ returns to that tag.
        !           711: If you have no recent tag command, it will return to the
        !           712: same place in the previous file that it was showing when you switched
        !           713: to the current file.
        !           714: .IP ":n[!]" 16
        !           715: Start editing the next file in the argument list.  Since \fBvi\fR
        !           716: can be called with multiple file names, the ":n" command tells it to
        !           717: stop work on the current file and switch to the next file.  If the
        !           718: current file was modifies, it has to be written out before the ":n"
        !           719: will work or else the "!" must be supplied, which says discard the
        !           720: changes I made to the current file.
        !           721: .IP ":n[!] file [file file ...]" 16
        !           722: .sp
        !           723: Replace the current argument list with a new list of files and start
        !           724: editing the first file in this new list.
        !           725: .IP ":r file" 16
        !           726: Read in a copy of "file" on the line after the cursor.
        !           727: .IP ":r !cmd" 16
        !           728: Execute the "cmd" and take its output and put it into the file after
        !           729: the current line.
        !           730: .IP ":!cmd" 16
        !           731: Execute any UNIX shell command.
        !           732: .IP ":ta[!] tag" 16
        !           733: .B Vi
        !           734: looks in the file named
        !           735: .B tags
        !           736: in the current directory.
        !           737: .B Tags
        !           738: is a file of lines in the format:
        !           739: .sp 1
        !           740: .ti +8
        !           741: tag filename \fBvi\fR-search-command
        !           742: .sp 1
        !           743: If \fBvi\fR finds the tag you specified in the \fB:ta\fR command,
        !           744: it stops editing the current file if necessary and if the current file is
        !           745: up to date on the disk and switches to the file specified and uses the
        !           746: search pattern specified to find the "tagged" item of interest.  This
        !           747: is particularly useful when editing multi-file C programs such as the
        !           748: operating system.  There is a program called \fBctags\fR which will
        !           749: generate an appropriate \fBtags\fR file for C and f77
        !           750: programs so that by saying
        !           751: \fB:ta function<nl>\fR you will be switched to that function.
        !           752: It could also be useful when editing multi-file documents, though the
        !           753: \fBtags\fR file would have to be generated manually.
        !           754: .LE
        !           755: .NH 1
        !           756: Special Arrangements for Startup
        !           757: .PP
        !           758: \fBVi\fR takes the value of \fB$TERM\fR and looks up the characteristics
        !           759: of that terminal in the file \fB/etc/termcap\fR.
        !           760: If you don't know \fBvi\fR's name for the terminal you are working
        !           761: on, look in \fB/etc/termcap\fR.
        !           762: .PP
        !           763: When \fBvi\fR starts, it attempts to read the variable EXINIT
        !           764: from your environment.*
        !           765: If that exists, it takes the values in it as the default values
        !           766: for certain of its internal constants.  See the section on "Set Values"
        !           767: for further details.
        !           768: If EXINIT doesn't exist you will get all the normal defaults.
        !           769: .FS
        !           770: * On version 6 systems
        !           771: Instead of EXINIT, put the startup commands in the file .exrc
        !           772: in your home directory.
        !           773: .FE
        !           774: .PP
        !           775: Should you inadvertently hang up the phone while inside
        !           776: .B vi ,
        !           777: or should the computer crash,
        !           778: all may not be lost.
        !           779: Upon returning to the system, type:
        !           780: .DS
        !           781: vi \-r file
        !           782: .DE
        !           783: This will normally recover the file.  If there is more than one
        !           784: temporary file for a specific file name, \fBvi\fR recovers the
        !           785: newest one.  You can get an older version by recovering the
        !           786: file more than once.
        !           787: The command "vi -r" without a file name gives you the list of files
        !           788: that were saved in the last system crash
        !           789: (but
        !           790: .I not
        !           791: the file just saved when the phone was hung up).
        !           792: .NH 1
        !           793: Set Commands
        !           794: .LP
        !           795: \fBVi\fR has a number of internal variables and switches which can be
        !           796: set to achieve special affects.
        !           797: These options come in three forms, those that are switches, which toggle
        !           798: from off to on and back, those that require a numeric value, and those
        !           799: that require an alphanumeric string value.
        !           800: The toggle options are set by a command of the form:
        !           801: .DS
        !           802: :set option<nl>
        !           803: .DE
        !           804: and turned off with the command:
        !           805: .DS
        !           806: :set nooption<nl>
        !           807: .DE
        !           808: Commands requiring a value are set with a command of the form:
        !           809: .DS
        !           810: :set option=value<nl>
        !           811: .DE
        !           812: To display the value of a specific option type:
        !           813: .DS
        !           814: :set option?<nl>
        !           815: .DE
        !           816: To display only those that you have changed type:
        !           817: .DS
        !           818: :set<nl>
        !           819: .DE
        !           820: and to display the long table of all the settable parameters and
        !           821: their current values type:
        !           822: .DS
        !           823: :set all<nl>
        !           824: .DE
        !           825: .PP
        !           826: Most of the options have a long form and an abbreviation.  Both are
        !           827: listed in the following table as well as the normal default value.
        !           828: .PP
        !           829: To arrange to have values other than the default used every time you
        !           830: enter
        !           831: .B vi ,
        !           832: place the appropriate
        !           833: .B set
        !           834: command in EXINIT in your environment, e.g.
        !           835: .DS
        !           836: EXINIT='set ai aw terse sh=/bin/csh'
        !           837: export EXINIT
        !           838: .DE
        !           839: or
        !           840: .DS
        !           841: setenv EXINIT 'set ai aw terse sh=/bin/csh'
        !           842: .DE
        !           843: for
        !           844: .B sh
        !           845: and
        !           846: .B csh ,
        !           847: respectively.
        !           848: These are usually placed in your .profile or .login.
        !           849: If you are running a system without environments (such as version 6)
        !           850: you can place the set command in the file .exrc in your home
        !           851: directory.
        !           852: .VL 16
        !           853: .IP autoindent\ ai 16
        !           854: Default: noai Type: toggle
        !           855: .br
        !           856: When in autoindent mode, vi helps you indent code by starting each
        !           857: line in the same column as the preceding line.
        !           858: Tabbing to the right with <tab> or <^T> will move this boundary to
        !           859: the right, and it can be moved to the left with <^D>.
        !           860: .IP autoprint\ ap 16
        !           861: Default: ap Type: toggle
        !           862: .br
        !           863: Causes the current line to be printed after each ex text modifying command.
        !           864: This is not of much interest in the normal \fBvi\fR visual mode.
        !           865: .IP autowrite\ aw 16
        !           866: Default: noaw type: toggle
        !           867: .br
        !           868: Autowrite causes an automatic write to be done if there are unsaved
        !           869: changes before certain commands which change files or otherwise
        !           870: interact with the outside world.
        !           871: These commands are :!, :tag, :next, :rewind, ^^, and ^].
        !           872: .IP beautify\ bf 16
        !           873: Default: nobf Type: toggle
        !           874: .br
        !           875: Causes all control characters except <tab>, <nl>, and <ff> to be discarded.
        !           876: .IP directory\ dir 16
        !           877: Default: dir=/tmp Type: string
        !           878: .br
        !           879: This is the directory in which \fBvi\fR puts its temporary file.
        !           880: .IP errorbells\ eb 16
        !           881: Default: noeb Type: toggle
        !           882: .br
        !           883: Error messages are preceded by a <bell>.
        !           884: .IP hardtabs\ ht 16
        !           885: Default: hardtabs=8 Type: numeric
        !           886: .br
        !           887: This option contains the value of hardware tabs in your terminal, or
        !           888: of software tabs expanded by the Unix system.
        !           889: .IP ignorecase\ ic 16
        !           890: Default: noic Type: toggle
        !           891: .br
        !           892: All upper case characters are mapped to lower case in regular expression
        !           893: matching.
        !           894: .IP lisp 16
        !           895: Default: nolisp Type: toggle
        !           896: .br
        !           897: Autoindent for \fBlisp\fR code.  The commands \fB( ) [[\fR and \fB]]\fR
        !           898: are modified appropriately to affect s-expressions and functions.
        !           899: .IP list 16
        !           900: Default: nolist Type: toggle
        !           901: .br
        !           902: All printed lines have the <tab> and <nl> characters displayed visually.
        !           903: .IP magic 16
        !           904: Default: magic Type: toggle
        !           905: .br
        !           906: Enable the metacharacters for matching.  These include \fB. * < > [string]
        !           907: [^string]\fR and \fB[<chr>-<chr>]\fR.
        !           908: .IP number\ nu 16
        !           909: Default: nonu Type: toggle
        !           910: .br
        !           911: Each line is displayed with its line number.
        !           912: .IP open 16
        !           913: Default: open Type: toggle
        !           914: .br
        !           915: When set, prevents entering open or visual modes from ex or edit.
        !           916: Not of interest from vi.
        !           917: .IP optimize\ opt 16
        !           918: Default: opt Type: toggle
        !           919: .br
        !           920: Basically of use only when using the \fBex\fR capabilities.  This
        !           921: option prevents automatic <cr>s from taking place,
        !           922: and speeds up output of indented lines,
        !           923: at the expense of losing typeahead on some versions of UNIX.
        !           924: .IP paragraphs\ para 16
        !           925: Default: para=IPLPPPQPP\ bp Type: string
        !           926: .br
        !           927: Each pair of characters in the string indicate \fBnroff\fR macros
        !           928: which are to be treated as the beginning of a paragraph for the
        !           929: \fB{\fR and \fB}\fR commands.  The default string is for the \fB-ms\fR
        !           930: and \fB-mm\fR macros.
        !           931: To indicate one letter \fBnroff\fR macros, such as \fB.P\fR or \fB.H\fR,
        !           932: quote a space in for the second character position.  For example:
        !           933: .sp 1
        !           934: .ti +8
        !           935: :set paragraphs=P\e bp<nl>
        !           936: .sp 1
        !           937: would cause \fBvi\fR to consider \fB.P\fR and \fB.bp\fR as paragraph
        !           938: delimiters.
        !           939: .IP prompt 16
        !           940: Default: prompt Type: toggle
        !           941: .br
        !           942: In
        !           943: .B ex
        !           944: command mode the prompt character \fB:\fR will be printed when
        !           945: \fBex\fR is waiting for a command.  This is not of interest from vi.
        !           946: .IP redraw 16
        !           947: Default: noredraw Type: toggle
        !           948: .br
        !           949: On dumb terminals, force the screen to always be up to date,
        !           950: by sending great amounts of output.  Useful only at high speeds.
        !           951: .IP report 16
        !           952: Default: report=5 Type: numeric
        !           953: .br
        !           954: This sets the threshold for the number of lines modified.  When
        !           955: more than this number of lines are modified, removed, or yanked,
        !           956: \fBvi\fR will report the number of lines changed at the bottom of
        !           957: the screen.
        !           958: .IP scroll 16
        !           959: Default: scroll={1/2 window} Type: numeric
        !           960: .br
        !           961: This is the number of lines that the screen scrolls up or down when
        !           962: using the <^U> and <^D> commands.
        !           963: .IP sections 16
        !           964: Default: sections=SHNHH HU Type: string
        !           965: .br
        !           966: Each two character pair of this string specify \fBnroff\fR macro names
        !           967: which are to be treated as the beginning of a section by the
        !           968: \fB]]\fR and \fB[[\fR commands.  The default string is for the \fB-ms\fR
        !           969: and \fB-mm\fR macros.
        !           970: To enter one letter \fBnroff\fR macros, use a quoted space as the
        !           971: second character.
        !           972: See \fBparagraphs\fR for a fuller explanation.
        !           973: .IP shell\ sh 16
        !           974: Default: sh=from environment SHELL or /bin/sh   Type: string
        !           975: .br
        !           976: This is the name of the \fBsh\fR to be used for "escaped" commands.
        !           977: .IP shiftwidth\ sw 16
        !           978: Default: sw=8 Type: numeric
        !           979: .br
        !           980: This is the number of spaces that a <^T> or <^D> will move over for
        !           981: indenting, and the amount < and > shift by.
        !           982: .IP showmatch\ sm 16
        !           983: Default: nosm Type: toggle
        !           984: .br
        !           985: When a \fB)\fR or \fB}\fR is typed, show the matching \fB(\fR or \fB{\fR
        !           986: by moving the cursor to it for one second if it is on the current screen.
        !           987: .IP slowopen\ slow 16
        !           988: Default: terminal dependent Type: toggle
        !           989: .br
        !           990: On terminals that are slow and unintelligent, this option prevents the
        !           991: updating of the screen some of the time to improve speed.
        !           992: .IP tabstop\ ts 16
        !           993: Default: ts=8 Type: numeric
        !           994: .br
        !           995: <tab>s are expanded to boundaries that are multiples of this value.
        !           996: .IP taglength\ tl 16
        !           997: Default: tl=0 Type: numeric
        !           998: .br
        !           999: If nonzero, tag names are only significant to this many characters.
        !          1000: .IP term 16
        !          1001: Default: (from environment \fBTERM\fP, else dumb) Type: string
        !          1002: .br
        !          1003: This is the terminal and controls the visual displays.  It cannot be
        !          1004: changed when in "visual" mode,
        !          1005: you have to Q to command mode, type a
        !          1006: set term command, and do ``vi.'' to get back into visual.
        !          1007: Or exit vi, fix $TERM, and reenter.
        !          1008: The definitions that drive a particular
        !          1009: terminal type are found in the file \fB/etc/termcap\fR.
        !          1010: .IP terse 16
        !          1011: Default: terse Type: toggle
        !          1012: .br
        !          1013: When set, the error diagnostics are short.
        !          1014: .IP warn 16
        !          1015: Default: warn Type: toggle
        !          1016: .br
        !          1017: The user is warned if she/he tries to escape to
        !          1018: the shell without writing out the current changes.
        !          1019: .IP window 16
        !          1020: Default: window={8 at 600 baud or less, 16 at 1200 baud, and screen
        !          1021: size \- 1 at 2400 baud or more} Type: numeric
        !          1022: .br
        !          1023: This is the number of lines in the window whenever \fBvi\fR must redraw
        !          1024: an entire screen.  It is useful to make this size smaller if you are
        !          1025: on a slow line.
        !          1026: .IP w300,\ w1200,\ w9600
        !          1027: .br
        !          1028: These set window, but only within the corresponding speed ranges.
        !          1029: They are useful in an EXINIT to fine tune window sizes.
        !          1030: For example,
        !          1031: .DS
        !          1032: set w300=4 w1200=12
        !          1033: .DE
        !          1034: causes a 4 lines window at speed up to 600 baud, a 12 line window at 1200
        !          1035: baud, and a full screen (the default) at over 1200 baud.
        !          1036: .IP wrapscan\ ws 16
        !          1037: Default: ws Type: toggle
        !          1038: .br
        !          1039: Searches will wrap around the end of the file when is option is set.  When
        !          1040: it is off, the search will terminate when it reaches the end or the
        !          1041: beginning of the file.
        !          1042: .IP wrapmargin\ wm 16
        !          1043: Default: wm=0 Type: numeric
        !          1044: .br
        !          1045: \fBVi\fR will automatically insert a <nl> when it finds a natural
        !          1046: break point (usually a <sp> between words) that occurs within
        !          1047: "wm" spaces of the right margin.
        !          1048: Therefore with "wm=0" the option is off.  Setting it to 10 would
        !          1049: mean that any time you are within 10 spaces of the right margin
        !          1050: \fBvi\fR would be looking for a <sp> or <tab> which it could
        !          1051: replace with a <nl>.  This is convenient for people who forget
        !          1052: to look at the screen while they type.
        !          1053: (In version 3, wrapmargin behaves more like nroff, in that the
        !          1054: boundary specified by the distance from the right edge of the screen
        !          1055: is taken as the rightmost edge of the area where a break is allowed,
        !          1056: instead of the leftmost edge.)
        !          1057: .IP writeany\ wa 16
        !          1058: Default: nowa Type: toggle
        !          1059: .br
        !          1060: \fBVi\fR normally makes a number of checks before it writes out a file.
        !          1061: This prevents the user from inadvertently destroying a file.  When the
        !          1062: "writeany" option is enabled, \fBvi\fR no longer makes these checks.
        !          1063: .LE

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.