Annotation of 43BSDReno/contrib/emacs-18.55/info/vip, revision 1.1.1.1

1.1       root        1: Info file vip, produced by texinfo-format-buffer   -*-Text-*-
                      2: from file vip.texinfo
                      3: 
                      4: 
                      5: 
                      6: Distribution
                      7: ************
                      8: 
                      9: Copyright (C) 1987 Masahiko Sato.
                     10: 
                     11: Permission is granted to make and distribute verbatim copies of
                     12: this manual provided the copyright notice and this permission notice
                     13: are preserved on all copies.
                     14: 
                     15: Permission is granted to copy and distribute modified versions of this
                     16: manual under the conditions for verbatim copying, provided that the entire
                     17: resulting derived work is distributed under the terms of a permission
                     18: notice identical to this one.
                     19: 
                     20: Permission is granted to copy and distribute translations of this manual
                     21: into another language, under the same conditions as for modified versions.
                     22: 
                     23: 
                     24: 
                     25: File: vip  Node: Top, Up: (DIR), Next: Survey
                     26: 
                     27: VIP
                     28: ***
                     29: 
                     30: VIP is a Vi emulating package written in Emacs Lisp.  VIP implements most
                     31: Vi commands including Ex commands.  It is therefore hoped that this package
                     32: will enable you to do Vi style editing under the powerful GNU Emacs
                     33: environment.  This info file describes the usage of VIP assuming that you
                     34: are fairly accustomed to Vi but not so much with Emacs.  Also we will
                     35: concentrate mainly on differences from Vi, especially features unique to
                     36: VIP.
                     37: 
                     38: It is recommended that you read nodes on survey and on customization before
                     39: you start using VIP.  Other nodes may be visited as needed.
                     40: 
                     41: Comments and bug reports are welcome.  Please send messages to
                     42: `[email protected]' if you are outside of Japan and to
                     43: `[email protected]' if you are in Japan.
                     44: 
                     45: 
                     46: * Menu:
                     47: 
                     48: * Survey::             A survey of VIP.
                     49: * Vi Commands::                Details of Vi commands.
                     50: * Ex Commands::                Details of Ex commands.
                     51: * Customization::      How to customize VIP.
                     52: 
                     53: 
                     54: File: vip  Node: Survey, Prev: Top, Up: Top, Next: Basic Concepts
                     55: 
                     56: A Survey of VIP
                     57: ***************
                     58: 
                     59: In this chapter we describe basics of VIP with emphasis on the features not
                     60: found in Vi and on how to use VIP under GNU Emacs.
                     61: 
                     62: * Menu:
                     63: 
                     64: * Basic Concepts::     Basic concepts in Emacs.
                     65: * Loading VIP::                How to load VIP automatically.
                     66: * Modes in VIP::       VIP has three modes, which are orthogonal to modes
                     67:                        in Emacs.
                     68: * Differences from Vi:: Differences of VIP from Vi is explained.
                     69: 
                     70: 
                     71: File: vip  Node: Basic Concepts, Prev: Survey, Up: Survey, Next: Loading VIP
                     72: 
                     73: Basic Concepts
                     74: ==============
                     75: 
                     76: We begin by explaining some basic concepts of Emacs.  These concepts are
                     77: explained in more detail in the GNU Emacs Manual.
                     78: 
                     79: 
                     80: Conceptually, a "buffer" is just a string of ASCII characters and two
                     81: special characters PNT ("point") and MRK ("mark") such that the character
                     82: PNT occurs exactly once and MRK occurs at most once.  The "text" of a
                     83: buffer is obtained by deleting the occurrences of PNT and MRK.  If, in a
                     84: buffer, there is a character following PNT then we say that point is
                     85: "looking at" the character; otherwise we say that point is "at the end of
                     86: buffer".  PNT and MRK are used to indicate positions in a buffer and they
                     87: are not part of the text of the buffer.  If a buffer contains a MRK then
                     88: the text between MRK and PNT is called the "region" of the buffer.
                     89: 
                     90: 
                     91: Emacs provides (multiple) "windows" on the screen, and you can see the
                     92: content of a buffer through the window associated with the buffer.  The
                     93: cursor of the screen is always positioned on the character after PNT.
                     94: 
                     95: 
                     96: 
                     97: A "keymap" is a table that records the bindings between characters and
                     98: command functions.  There is the "global keymap" common to all the buffers.
                     99: Each buffer has its "local keymap" that determines the "mode" of the
                    100: buffer.  Local keymap overrides global keymap, so that if a function is
                    101: bound to some key in the local keymap then that function will be executed
                    102: when you type the key.  If no function is bound to a key in the local map,
                    103: however, the function bound to the key in the global map becomes in effect.
                    104: 
                    105: 
                    106: File: vip  Node: Loading VIP, Prev: Basic Concepts, Up: Survey, Next: Modes in VIP
                    107: 
                    108: Loading VIP
                    109: ===========
                    110: 
                    111: The recommended way to load VIP automatically is to include the line:
                    112:      (load "vip")
                    113: in your `.emacs' file.  The `.emacs' file is placed in your home
                    114: directly and it will be executed every time you invoke Emacs.  If you wish
                    115: to be in vi mode whenver Emacs starts up, you can include the following
                    116: line in your `.emacs' file instead of the above line:
                    117:      (setq term-setup-hook 'vip-mode)
                    118: (*Note Vi Mode::, for the explanation of vi mode.)
                    119: 
                    120: Even if your `.emacs' file does not contain any of the above lines,
                    121: you can load VIP and enter vi mode by typing the following from within
                    122: Emacs.
                    123:      M-x vip-mode
                    124: 
                    125: 
                    126: File: vip  Node: Modes in VIP, Prev: Loading VIP, Up: Survey, Next: Emacs Mode
                    127: 
                    128: Modes in VIP
                    129: ============
                    130: 
                    131: 
                    132: Loading VIP has the effect of globally binding `C-z' (`Control-z') to the
                    133: function `vip-change-mode-to-vi'. The default binding of `C-z' in GNU Emacs
                    134: is `suspend-emacs', but, you can also call `suspend-emacs' by typing `C-x
                    135: C-z'.  Other than this, all the key bindings of Emacs remain the same after
                    136: loading VIP.
                    137: 
                    138: 
                    139: Now, if you hit `C-z', the function `vip-change-mode-to-vi' will be called
                    140: and you will be in "vi mode".  (Some major modes may locally bind `C-z' to
                    141: some special functions.  In such cases, you can call
                    142: `vip-change-mode-to-vi' by `execute-extended-command' which is invoked by
                    143: `M-x'.  Here `M-x' means `Meta-x', and if your terminal does not have a
                    144: META key you can enter it by typing `ESC x'.  The same effect can also be
                    145: achieve by typing `M-x vip-mode'.)
                    146: 
                    147: 
                    148: You can observe the change of mode by looking at the "mode line".  For
                    149: instance, if the mode line is:
                    150:      -----Emacs: *scratch*              (Lisp Interaction)----All------------
                    151: then it will change to:
                    152:      -----Vi:    *scratch*              (Lisp Interaction)----All------------
                    153: Thus the word `Emacs' in the mode line will change to `Vi'.
                    154: 
                    155: 
                    156: You can go back to the original "emacs mode" by typing `C-z' in vi mode.
                    157: Thus `C-z' toggles between these two modes.
                    158: 
                    159: Note that modes in VIP exist orthogonally to modes in Emacs.  This means
                    160: that you can be in vi mode and at the same time, say, shell mode.
                    161: 
                    162: Vi mode corresponds to Vi's command mode.  From vi mode you can enter
                    163: "insert mode" (which corresponds to Vi's insert mode) by usual Vi command
                    164: keys like `i', `a', `o' ... etc.
                    165: 
                    166: In insert mode, the mode line will look like this:
                    167:      -----Insert *scratch*              (Lisp Interaction)----All------------
                    168: You can exit from insert mode by hitting ESC key as you do in Vi.
                    169: 
                    170: That VIP has three modes may seem very complicated, but in fact it is not
                    171: so.  VIP is implemented so that you can do most editing remaining only
                    172: in the two modes for Vi (that is vi mode and insert mode).
                    173: 
                    174: 
                    175: The figure below shows the transition of three modes in VIP.
                    176:      
                    177:      
                    178:                 === C-z ==>          == i,o ... ==>
                    179:      emacs mode             vi mode                 insert mode
                    180:                 <== X-z ===          <=== ESC ====
                    181: 
                    182: * Menu:
                    183: 
                    184: * Emacs Mode::         This is the mode you should know better.
                    185: * Vi Mode::            Vi commands are executed in this mode.
                    186: * Insert Mode::                You can enter text, and also can do editing if you
                    187:                        know enough Emacs commands.
                    188: 
                    189: 
                    190: File: vip  Node: Emacs Mode, Prev: Modes in VIP, Up: Modes in VIP, Next: Vi Mode
                    191: 
                    192: Emacs Mode
                    193: ----------
                    194: 
                    195: 
                    196: You will be in this mode just after you loaded VIP.  You can do all normal
                    197: Emacs editing in this mode.  Note that the key `C-z' is globally bound to
                    198: `vip-change-mode-to-vi'.  So, if you type `C-z' in this mode then you will
                    199: be in vi mode.
                    200: 
                    201: 
                    202: File: vip  Node: Vi Mode, Prev: Emacs Mode, Up: Modes in VIP, Next: Insert Mode
                    203: 
                    204: Vi Mode
                    205: -------
                    206: 
                    207: This mode corresponds to Vi's command mode.  Most Vi commands work as they
                    208: do in Vi.  You can go back to emacs mode by typing `C-z'.  You can
                    209: enter insert mode, just as in Vi, by typing `i', `a' etc.
                    210: 
                    211: 
                    212: File: vip  Node: Insert Mode, Prev: Vi Mode, Up: Modes in VIP, Next: Differences from Vi
                    213: 
                    214: Insert Mode
                    215: -----------
                    216: 
                    217: The key bindings in this mode is the same as in the emacs mode except for
                    218: the following 4 keys.  So, you can move around in the buffer and change
                    219: its content while you are in insert mode.
                    220: 
                    221: `ESC'     
                    222:      This key will take you back to vi mode.
                    223: `C-h'     
                    224:      Delete previous character.
                    225: `C-w'     
                    226:      Delete previous word.
                    227: `C-z'     
                    228:      Typing this key has the same effect as typing ESC in emacs mode.
                    229:      Thus typing `C-z x' in insert mode will have the same effect as typing
                    230:      `ESC x' in emacs mode.
                    231: 
                    232: 
                    233: File: vip  Node: Differences from Vi, Prev: Insert Mode, Up: Survey, Next: Undoing
                    234: 
                    235: Differences from Vi
                    236: ===================
                    237: 
                    238: The major differences from Vi are explained below.
                    239: 
                    240: * Menu:
                    241: 
                    242: * Undoing::            You can undo more in VIP.
                    243: * Changing::           Commands for changing the text.
                    244: * Searching::          Search commands.
                    245: * z Command::          You can now use zH, zM and zL as well as z- etc.
                    246: * Counts::             Some Vi commands which do not accept a count now
                    247:                        accept one.
                    248: * Marking::            You can now mark the current point, beginning of
                    249:                        the buffer etc.
                    250: * Region Commands::    You can now give a region as an argument for delete
                    251:                        commands etc.
                    252: * New Commands::       Some new commands not available in Vi are added.
                    253: * New Bindings::       Bindings of some keys are changed for the
                    254:                        convenience of editing under Emacs.
                    255: * Window Commands::    Commands for moving among windows etc.
                    256: * Buffer Commands::    Commands for selecting buffers etc.
                    257: * File Commands::      Commands for visiting files etc.
                    258: * Misc Commands::      Other useful commands.
                    259: 
                    260: 
                    261: File: vip  Node: Undoing, Prev: Differences from Vi, Up: Differences from Vi, Next: Changing
                    262: 
                    263: Undoing
                    264: -------
                    265: 
                    266: 
                    267: You can repeat undoing by the `.' key.  So, `u' will undo a single change,
                    268: while `u . . .', for instance, will undo 4 previous changes.  Undo is
                    269: undoable as in Vi.  So the content of the buffer will be the same before
                    270: and after `u u'.
                    271: 
                    272: 
                    273: File: vip  Node: Changing, Prev: Undoing, Up: Differences from Vi, Next: Searching
                    274: 
                    275: Changing
                    276: --------
                    277: 
                    278: Some commands which change a small number of characters are executed
                    279: slightly differently.  Thus, if point is at the beginning of a word `foo'
                    280: and you wished to change it to `bar' by typing `c w', then VIP will prompt
                    281: you for a new word in the minibuffer by the prompt `foo => '.  You can then
                    282: enter `bar' followed by RET or ESC to complete the command.  Before you
                    283: enter RET or ESC you can abort the command by typing `C-g'.  In general,
                    284: you can abort a partially formed command by typing `C-g'.
                    285: 
                    286: 
                    287: File: vip  Node: Searching, Prev: Changing, Up: Differences from Vi, Next: z Command
                    288: 
                    289: Searching
                    290: ---------
                    291: 
                    292: 
                    293: As in Vi, searching is done by `/' and `?'.  The string will be searched
                    294: literally by default.  To invoke a regular expression search, first execute
                    295: the search command `/' (or `?') with empty search string.  (I.e, type `/'
                    296: followed by RET.)  A search for empty string will toggle the search mode
                    297: between vanilla search and regular expression search.  You cannot give an
                    298: offset to the search string.  (It is a limitation.)  By default, search
                    299: will wrap around the buffer as in Vi.  You can change this by rebinding the
                    300: variable `vip-search-wrap-around'.  *Note Customization::, for how to do
                    301: this.
                    302: 
                    303: 
                    304: File: vip  Node: z Command, Prev: Searching, Up: Differences from Vi, Next: Counts
                    305: 
                    306: z Command
                    307: ---------
                    308: 
                    309: 
                    310: For those of you who cannot remember which of `z' followed by RET, `.' and
                    311: `-' do what.  You can also use `z' followed by `H', `M' and `L' to place
                    312: the current line in the Home (Middle, and Last) line of the window.
                    313: 
                    314: 
                    315: File: vip  Node: Counts, Prev: z Command, Up: Differences from Vi, Next: Marking
                    316: 
                    317: Counts
                    318: ------
                    319: 
                    320: Some Vi commands which do not accept a count now accept one
                    321: 
                    322: `p'     
                    323: `P'     
                    324:      Given counts, text will be yanked (in Vi's sense) that many times.  Thus
                    325:      `3 p' is the same as `p p p'.
                    326: `o'     
                    327: `O'     
                    328:      Given counts, that many copies of text will be inserted. Thus
                    329:      `o a b c ESC' will insert 3 lines of `abc' below the current
                    330:      line.
                    331: `/'     
                    332: `?'     
                    333:      Given a count N, N-th occurrence will be searched.
                    334: 
                    335: 
                    336: File: vip  Node: Marking, Prev: Counts, Up: Differences from Vi, Next: Region Commands
                    337: 
                    338: Marking
                    339: -------
                    340: 
                    341: Typing an `m' followed by a lower case character CH marks the
                    342: point to the register named CH as in Vi.  In addition to these, we
                    343: have following key bindings for marking.
                    344: 
                    345: 
                    346: `m <'     
                    347:      Set mark at the beginning of buffer.
                    348: `m >'     
                    349:      Set mark at the end of buffer.
                    350: `m .'     
                    351:      Set mark at point (and push old mark on mark ring).
                    352: `m ,'     
                    353:      Jump to mark (and pop mark off the mark ring).
                    354: 
                    355: 
                    356: File: vip  Node: Region Commands, Prev: Marking, Up: Differences from Vi, Next: New Commands
                    357: 
                    358: Region Commands
                    359: ---------------
                    360: 
                    361: 
                    362: Vi operators like `d', `c' etc. are usually used in combination with motion
                    363: commands.  It is now possible to use current region as the argument to
                    364: these operators.  (A "region" is a part of buffer delimited by point and
                    365: mark.)  The key `r' is used for this purpose.  Thus `d r' will delete the
                    366: current region.  If `R' is used instead of `r' the region will first be
                    367: enlarged so that it will become the smallest region containing the original
                    368: region and consisting of whole lines.  Thus `m . d R' will have the same
                    369: effect as `d d'.
                    370: 
                    371: 
                    372: File: vip  Node: New Commands, Prev: Region Commands, Up: Differences from Vi, Next: New Bindings
                    373: 
                    374: Some New Commands
                    375: -----------------
                    376: 
                    377: Note that the keys below (except for `R') are not used in Vi.
                    378: 
                    379: `C-a'     
                    380:      Move point to the beginning of line.
                    381: `C-n'     
                    382:      If you have two or more windows in the screen, this key will move point to
                    383:      the next window.
                    384: `C-o'     
                    385:      Insert a newline and leave point before it, and then enter insert mode.
                    386: `C-r'     
                    387:      Backward incremental search.
                    388: `C-s'     
                    389:      Forward incremental search.
                    390: `C-c'     
                    391: `C-x'     
                    392: `ESC'     
                    393:      These keys will exit from vi mode and return to emacs mode temporarily.  If
                    394:      you hit one of these keys, Emacs will be in emacs mode and will believe
                    395:      that you hit that key in emacs mode. For example, if you hit `C-x'
                    396:      followed by `2', then the current window will be split into 2 and you
                    397:      will be in vi mode again.
                    398: `\'     
                    399:      Escape to emacs mode.  Hitting `\' will take you to emacs mode, and
                    400:      you can execute a single Emacs command.  After executing the Emacs
                    401:      command you will be in vi mode again.  You can give a count before
                    402:      typing `\'.  Thus `5 \ *', as well as `\ C-u 5 *', will insert `*****'
                    403:      before point.  Similarly `1 0 \ C-p' will move the point 10 lines
                    404:      above the current line.
                    405: `K'     
                    406:      Kill current buffer if it is not modified.  Useful when you selected a
                    407:      buffer which you did not want.
                    408: `Q'     
                    409: `R'     
                    410:      `Q' is for query replace and `R' is for replace.  By default,
                    411:      string to be replaced are treated literally.  If you wish to do a regular
                    412:      expression replace, first do replace with empty string as the string to be
                    413:      replaced.  In this way, you can toggle between vanilla and regular
                    414:      expression replacement.
                    415: `v'     
                    416: `V'     
                    417:      These keys are used to Visit files.  `v' will switch to a buffer
                    418:      visiting file whose name can be entered in the minibuffer. `V' is
                    419:      similar, but will use window different from the current window.
                    420: `#'     
                    421:      If followed by a certain character CH, it becomes an operator whose
                    422:      argument is the region determined by the motion command that follows.
                    423:      Currently, CH can be one of `c', `C', `g', `q' and `s'.
                    424: `# c'     
                    425:      Change upper case characters in the region to lower case
                    426:      (`downcase-region').
                    427: `# C'     
                    428:      Change lower case characters in the region to upper case. For instance,
                    429:      `# C 3 w' will capitalize 3 words from the current point
                    430:      (`upcase-region').
                    431: `# g'     
                    432:      Execute last keyboard macro for each line in the region
                    433:      (`vip-global-execute').
                    434: `# q'     
                    435:      Insert specified string at the beginning of each line in the region
                    436:      (`vip-quote-region').
                    437: `# s'     
                    438:      Check spelling of words in the region (`spell-region').
                    439: `*'     
                    440:      Call last keyboard macro.
                    441: 
                    442: 
                    443: File: vip  Node: New Bindings, Prev: New Commands, Up: Differences from Vi, Next: Window Commands
                    444: 
                    445: New Key Bindings
                    446: ----------------
                    447: 
                    448: In VIP the meanings of some keys are entirely different from Vi.  These key
                    449: bindings are done deliberately in the hope that editing under Emacs will
                    450: become easier.  It is however possible to rebind these keys to functions
                    451: which behave similarly as in Vi.  *Note Customizing Key Bindings::, for
                    452: details.
                    453: 
                    454: `C-g'     
                    455: `g'     
                    456:      In Vi, `C-g' is used to get information about the file associated to
                    457:      the current buffer.  Here, `g' will do that, and `C-g' is
                    458:      used to abort a command (this is for compatibility with emacs mode.)
                    459: `SPC'     
                    460: `RET'     
                    461:      Now these keys will scroll up and down the text of current window.
                    462:      Convenient for viewing the text.
                    463: `s'     
                    464: `S'     
                    465:      They are used to switch to a specified buffer.  Useful for switching to
                    466:      already existing buffer since buffer name completion is provided.  Also
                    467:      a default buffer will be given as part of the prompt, to which you can
                    468:      switch by just typing RET key.  `s' is used to select buffer
                    469:      in the current window, while `S' selects buffer in another window.
                    470: `C'     
                    471: `X'     
                    472:      These keys will exit from vi mode and return to emacs mode
                    473:      temporarily.  If you type `C' (`X'), Emacs will be in emacs mode and
                    474:      will believe that you have typed `C-c' (`C-x', resp.) in emacs mode.
                    475:      Moreover, if the following character you type is an upper case letter,
                    476:      then Emacs will believe that you have typed the corresponding control
                    477:      character.  You will be in vi mode again after the command is
                    478:      executed.  For example, typing `X S' in vi mode is the same as typing
                    479:      `C-x C-s' in emacs mode.  You get the same effect by typing `C-x C-s'
                    480:      in vi mode, but the idea here is that you can execute useful Emacs
                    481:      commands without typing control characters. For example, if you hit
                    482:      `X' (or `C-x') followed by `2', then the current window will be split
                    483:      into 2 and you will be in vi mode again.
                    484: 
                    485: In addition to these, `ctl-x-map' is slightly modified:
                    486: 
                    487: 
                    488: `X 3'     
                    489: `C-x 3'     
                    490:      This is equivalent to `C-x 1 C-x 2' (1 + 2 = 3).
                    491: 
                    492: 
                    493: File: vip  Node: Window Commands, Prev: New Bindings, Up: Differences from Vi, Next: Buffer Commands
                    494: 
                    495: Window Commands
                    496: ---------------
                    497: 
                    498: In this and following subsections, we give a summary of key bindings for
                    499: basic functions related to windows, buffers and files.
                    500: 
                    501: `C-n'     
                    502:      Switch to next window.
                    503: `X 1'     
                    504: `C-x 1'     
                    505:      Delete other windows.
                    506: `X 2'     
                    507: `C-x 2'     
                    508:      Split current window into two windows.
                    509: `X 3'     
                    510: `C-x 3'     
                    511:      Show current buffer in two windows.
                    512: 
                    513: 
                    514: File: vip  Node: Buffer Commands, Prev: Window Commands, Up: Differences from Vi, Next: File Commands
                    515: 
                    516: Buffer Commands
                    517: ---------------
                    518: 
                    519: `s'     
                    520:      Switch to the specified buffer in the current window
                    521:      (`vip-switch-to-buffer').
                    522: `S'     
                    523:      Switch to the specified buffer in another window
                    524:      (`vip-switch-to-buffer-other-window').
                    525: `K'     
                    526:      Kill the current buffer if it is not modified.
                    527: `X S'     
                    528: `C-x C-s'     
                    529:      Save the current buffer in the file associated to the buffer.
                    530: 
                    531: 
                    532: File: vip  Node: File Commands, Prev: Buffer Commands, Up: Differences from Vi, Next: Misc Commands
                    533: 
                    534: File Commands
                    535: -------------
                    536: 
                    537: `v'     
                    538:      Visit specified file in the current window.
                    539: `V'     
                    540:      Visit specified file in another window.
                    541: `X W'     
                    542: `C-x C-w'     
                    543:      Write current buffer into the specified file.
                    544: `X I'     
                    545: `C-x C-i'     
                    546:      
                    547:      Insert specified file at point.
                    548: 
                    549: 
                    550: File: vip  Node: Misc Commands, Prev: File Commands, Up: Differences from Vi, Next: Vi Commands
                    551: 
                    552: Miscellaneous Commands
                    553: ----------------------
                    554: 
                    555: `X ('     
                    556: `C-x ('     
                    557:      Start remembering keyboard macro.
                    558: `X )'     
                    559: `C-x )'     
                    560:      Finish remembering keyboard macro.
                    561: `*'     
                    562:      Call last remembered keyboard macro.
                    563: `X Z'     
                    564: `C-x C-z'     
                    565:      Suspend Emacs.
                    566: `Z Z'     
                    567:      Exit Emacs.
                    568: `Q'     
                    569:      Query replace.
                    570: `R'     
                    571:      Replace.
                    572: 
                    573: 
                    574: File: vip  Node: Vi Commands, Prev: Misc Commands, Up: Top, Next: Numeric Arguments
                    575: 
                    576: Vi Commands
                    577: ***********
                    578: 
                    579: This chapter describes Vi commands other than Ex commands implemented in
                    580: VIP.  Except for the last section which discusses insert mode, all the
                    581: commands described in this chapter are to be used in vi mode.
                    582: 
                    583: * Menu:
                    584: 
                    585: * Numeric Arguments::  Many commands accept numeric arguments
                    586: * Important Keys::     Some very important keys.
                    587: * Buffers and Windows::        Commands for handling buffers and windows.
                    588: * Files::              Commands for handling files.
                    589: * Viewing the Buffer:: How you can view the current buffer.
                    590: * Mark Commands::      Marking positions in a buffer.
                    591: * Motion Commands::    Commands for moving point.
                    592: * Modifying Commands:: Commands for modifying the buffer.
                    593: 
                    594: 
                    595: File: vip  Node: Numeric Arguments, Prev: Vi Commands, Up: Vi Commands, Next: Important Keys
                    596: 
                    597: Numeric Arguments
                    598: =================
                    599: 
                    600: 
                    601: Most Vi commands accept a "numeric argument" which can be supplied as a
                    602: prefix to the commands.  A numeric argument is also called a "count".  In
                    603: many cases, if a count is given, the command is executed that many times.
                    604: For instance, `5 d d' deletes 5 lines while simple `d d' deletes a line.
                    605: In this manual the metavariable N will denote a count.
                    606: 
                    607: 
                    608: File: vip  Node: Important Keys, Prev: Numeric Arguments, Up: Vi Commands, Next: Buffers and Windows
                    609: 
                    610: Important Keys
                    611: ==============
                    612: 
                    613: The keys `C-g' and `C-l' are unique in that their associated
                    614: functions are the same in any of emacs, vi and insert mode.
                    615: 
                    616: `C-g'     
                    617:      Quit.  Cancel running or partially typed command (`keyboard-quit').
                    618: `C-l'     
                    619:      Clear the screen and reprint everything (`recenter').
                    620: 
                    621: In Emacs many commands are bound to the key strokes that start with `C-x',
                    622: `C-c' and ESC.  These commands can be accessed from vi mode as easily as
                    623: from emacs mode.
                    624: 
                    625: `C-x'     
                    626: `C-c'     
                    627: `ESC'     
                    628:      Typing one of these keys have the same effect as typing it in emacs mode.
                    629:      Appropriate command will be executed according as the keys you type after
                    630:      it.  You will be in vi mode again after the execution of the command.
                    631:      For instance, if you type `ESC <' (in vi mode) then the cursor will
                    632:      move to the beginning of the buffer and you will still be in vi mode.
                    633: `C'     
                    634: `X'     
                    635:      Typing one of these keys have the effect of typing the corresponding
                    636:      control character in emacs mode.  Moreover, if you type an upper case
                    637:      character following it, that character will also be translated to the
                    638:      corresponding control character.  Thus typing `X W' in vi mode is the
                    639:      same as typing `C-x C-w' in emacs mode.  You will be in vi mode again
                    640:      after the execution of a command.
                    641: `\'     
                    642:      Escape to emacs mode.  Hitting the `\' key will take you to emacs
                    643:      mode, and you can execute a single Emacs command.  After executing the
                    644:      Emacs command you will be in vi mode again.  You can give a count
                    645:      before typing `\'.  Thus `5 \ +', as well as `\ C-u 5 +', will insert
                    646:      `+++++' before point.
                    647: 
                    648: 
                    649: File: vip  Node: Buffers and Windows, Prev: Important Keys, Up: Vi Commands, Next: Files
                    650: 
                    651: Buffers and Windows
                    652: ===================
                    653: 
                    654: 
                    655: In Emacs the text you edit is stored in a "buffer".  See GNU Emacs Manual,
                    656: for details.  There is always one "selected" buffer which is called the
                    657: "current buffer".
                    658: 
                    659: 
                    660: You can see the contents of buffers through "windows" created by Emacs.
                    661: When you have multiple windows on the screen only one of them is selected.
                    662: Each buffer has a unique name, and each window has a mode line which shows
                    663: the name of the buffer associated with the window and other information
                    664: about the status of the buffer.  You can change the format of the mode
                    665: line, but normally if you see `**' at the beginning of a mode line it
                    666: means that the buffer is "modified".  If you write out the content of
                    667: the buffer to a file, then the buffer will become not modified.  Also if
                    668: you see `%%' at the beginning of the mode line, it means that the file
                    669: associated with the buffer is write protected.
                    670: 
                    671: We have the following commands related to windows and buffers.
                    672: 
                    673: `C-n'     
                    674:      Move cursor to the next-window (`vip-next-window').
                    675: `X 1'     
                    676:      Delete other windows and make the selected window fill the screen
                    677:      (`delete-other-windows').
                    678: `X 2'     
                    679:      Split current window into two windows (`split-window-vertically').
                    680: `X 3'     
                    681:      Show current buffer in two windows.
                    682: `s BUFFER RET'     
                    683:      Select or create a buffer named BUFFER (`vip-switch-to-buffer').
                    684: `S BUFFER RET'     
                    685:      Similar but select a buffer named BUFFER in another window
                    686:      (`vip-switch-to-buffer-other-window').
                    687: `K'     
                    688:      Kill the current buffer if it is not modified or if it is not associated
                    689:      with a file (`vip-kill-buffer').
                    690: `X B'     
                    691:      List the existing buffers (`list-buffers').
                    692: 
                    693: 
                    694: As "buffer name completion" is provided, you have only to type in
                    695: initial substring of the buffer name which is sufficient to identify it
                    696: among names of existing buffers.  After that, if you hit TAB the rest
                    697: of the buffer name will be supplied by the system, and you can confirm it
                    698: by RET.  The default buffer name to switch to will also be prompted,
                    699: and you can select it by giving a simple RET.  See GNU Emacs Manual
                    700: for details of completion.
                    701: 
                    702: 
                    703: File: vip  Node: Files, Prev: Buffers and Windows, Up: Vi Commands, Next: Viewing the Buffer
                    704: 
                    705: Files
                    706: =====
                    707: 
                    708: We have the following commands related to files.  They are used to visit,
                    709: save and insert files.
                    710: 
                    711: `v FILE RET'     
                    712:      Visit specified file in the current window (`vip-find-file').
                    713: `V FILE RET'     
                    714:      Visit specified file in another window (`vip-find-file-other-window').
                    715: `X S'     
                    716:      Save current buffer to the file associated with the buffer.  If no file is
                    717:      associated with the buffer, the name of the file to write out the content
                    718:      of the buffer will be asked in the minibuffer.
                    719: `X W FILE RET'     
                    720:      Write current buffer into a specified file.
                    721: `X I FILE RET'     
                    722:      Insert a specified file at point.
                    723: `g'     
                    724:      Give information on the file associated with the current buffer.  Tell you
                    725:      the name of the file associated with the buffer, the line number of the
                    726:      current point and total line numbers in the buffer.  If no file is
                    727:      associated with the buffer, this fact will be indicated by the null file
                    728:      name `""'.
                    729: 
                    730: 
                    731: In Emacs, you can edit a file by "visiting" it.  If you wish to visit a
                    732: file in the current window, you can just type `v'.  Emacs maintains the
                    733: "default directory" which is specific to each buffer.  Suppose, for
                    734: instance, that the default directory of the current buffer is
                    735: `/usr/masahiko/lisp/'.  Then you will get the following prompt in the
                    736: minibuffer.
                    737:      visit file: /usr/masahiko/lisp/
                    738: If you wish to visit, say, `vip.el' in this directory, then you can
                    739: just type `vip.el' followed by RET.  If the file `vip.el'
                    740: already exists in the directory, Emacs will visit that file, and if not,
                    741: the file will be created.  Emacs will use the file name (`vip.el', in
                    742: this case) as the name of the buffer visiting the file.  In order to make
                    743: the buffer name unique, Emacs may append `<2>', `<3>' etc., to
                    744: the buffer name.  As the "file name completion" is provided here, you
                    745: can sometime save typing.  For instance, suppose there is only one file in the
                    746: default directory whose name starts with `v', that is `vip.el'.
                    747: Then if you just type `v TAB' then it will be completed to
                    748: `vip.el'.  Thus, in this case, you just have to type `v v TAB
                    749: RET' to visit `/usr/masahiko/lisp/vip.el'.  Continuing the
                    750: example, let us now suppose that you wished to visit the file
                    751: `/usr/masahiko/man/vip.texinfo'.  Then to the same prompt which you get
                    752: after you typed `v', you can enter `/usr/masahiko/man/vip.texinfo' or
                    753: `../man/vip.texinfo' followed by RET.
                    754: 
                    755: Use `V' instead of `v', if you wish to visit a file in another
                    756: window.
                    757: 
                    758: You can verify which file you are editing by typing `g'.  (You can also
                    759: type `X B' to get nformation on other buffers too.)  If you type `g' you
                    760: will get an information like below in the echo area:
                    761:      "/usr/masahiko/man/vip.texinfo" line 921 of 1949
                    762: 
                    763: After you edited the buffer (`vip.texinfo', in our example) for a while,
                    764: you may wish to save it in a file.  If you wish to save it in the file
                    765: associated with the buffer (`/usr/masahiko/man/vip.texinfo', in this case),
                    766: you can just say `X S'.  If you wish to save it in another file, you can
                    767: type `X W'.  You will then get a similar prompt as you get for `v', to
                    768: which you can enter the file name.
                    769: 
                    770: 
                    771: File: vip  Node: Viewing the Buffer, Prev: Files, Up: Vi Commands, Next: Mark Commands
                    772: 
                    773: Viewing the Buffer
                    774: ==================
                    775: 
                    776: In this and next section we discuss commands for moving around in the
                    777: buffer.  These command do not change the content of the buffer.  The
                    778: following commands are useful for viewing the content of the current
                    779: buffer.
                    780: 
                    781: `SPC'     
                    782: `C-f'     
                    783:      Scroll text of current window upward almost full screen.  You can go
                    784:      forward in the buffer by this command (`vip-scroll').
                    785: `RET'     
                    786: `C-b'     
                    787:      Scroll text of current window downward almost full screen.  You can go
                    788:      backward in the buffer by this command (`vip-scroll-back').
                    789: `C-d'     
                    790:      Scroll text of current window upward half screen.  You can go
                    791:      down in the buffer by this command (`vip-scroll-down').
                    792: `C-u'     
                    793:      Scroll text of current window downward half screen.  You can go
                    794:      up in the buffer by this command (`vip-scroll-up').
                    795: `C-y'     
                    796:      Scroll text of current window upward by one line (`vip-scroll-down-one').
                    797: `C-e'     
                    798:      Scroll text of current window downward by one line (`vip-scroll-up-one').
                    799: You can repeat these commands by giving a count.  Thus, `2 SPC'
                    800: has the same effect as `SPC SPC'.
                    801: 
                    802: The following commands reposition point in the window.
                    803: 
                    804: `z H'     
                    805: `z RET'     
                    806:      Put point on the top (home) line in the window.  So the current line
                    807:      becomes the top line in the window.  Given a count N, point will be
                    808:      placed in the N-th line from top (`vip-line-to-top').
                    809: `z M'     
                    810: `z .'     
                    811:      Put point on the middle line in the window.  Given a count N,
                    812:      point will be placed in the N-th line from the middle line
                    813:      (`vip-line-to-middle').
                    814: `z L'     
                    815: `z -'     
                    816:      Put point on the bottom line in the window.  Given a count N,
                    817:      point will be placed in the N-th line from bottom
                    818:      (`vip-line-to-bottom').
                    819: `C-l'     
                    820:      Center point in window and redisplay screen (`recenter').
                    821: 
                    822: 
                    823: File: vip  Node: Mark Commands, Prev: Viewing the Buffer, Up: Vi Commands, Next: Motion Commands
                    824: 
                    825: Mark Commands
                    826: =============
                    827: 
                    828: The following commands are used to mark positions in the buffer.
                    829: 
                    830: `m CH'     
                    831:      Store current point in the register CH.  CH must be a lower
                    832:      case character between `a' and `z'.
                    833: `m <'     
                    834:      Set mark at the beginning of current buffer.
                    835: `m >'     
                    836:      Set mark at the end of current buffer.
                    837: `m .'     
                    838:      Set mark at point.
                    839: `m ,'     
                    840:      Jump to mark (and pop mark off the mark ring).
                    841: 
                    842: 
                    843: Emacs uses the "mark ring" to store marked positions.  The commands
                    844: `m <', `m >' and `m .' not only set mark but also add it as the
                    845: latest element of the mark ring (replacing the oldest one).  By repeating
                    846: the command ``m ,'' you can visit older and older marked positions.  You
                    847: will eventually be in a loop as the mark ring is a ring.
                    848: 
                    849: 
                    850: File: vip  Node: Motion Commands, Prev: Mark Commands, Up: Vi Commands, Next: Searching and Replacing
                    851: 
                    852: Motion Commands
                    853: ===============
                    854: 
                    855: Commands for moving around in the current buffer are collected here.  These
                    856: commands are used as an `argument' for the delete, change and yank commands
                    857: to be described in the next section.
                    858: 
                    859: `h'     
                    860:      Move point backward by one character.  Signal error if point is at the
                    861:      beginning of buffer, but (unlike Vi) do not complain otherwise
                    862:      (`vip-backward-char').
                    863: `l'     
                    864:      Move point backward by one character.  Signal error if point is at the
                    865:      end of buffer, but (unlike Vi) do not complain otherwise
                    866:      (`vip-forward-char').
                    867: `j'     
                    868:      Move point to the next line keeping the current column.  If point is on the
                    869:      last line of the buffer, a new line will be created and point will move to
                    870:      that line (`vip-next-line').
                    871: `k'     
                    872:      Move point to the previous line keeping the current column
                    873:      (`vip-next-line').
                    874: `+'     
                    875:      Move point to the next line at the first non-white character.  If point is
                    876:      on the last line of the buffer, a new line will be created and point will
                    877:      move to the beginning of that lin (`vip-next-line-at-bol').
                    878: `-'     
                    879:      Move point to the previous line at the first non-white character
                    880:      (`vip-previous-line-at-bol').
                    881: If a count is given to these commands, the commands will be repeated that
                    882: many times.
                    883: 
                    884: `0'     
                    885:      Move point to the beginning of line (`vip-beginning-of-line').
                    886: `^'     
                    887:      Move point to the first non-white character on the line
                    888:      (`vip-bol-and-skip-white').
                    889: `$'     
                    890:      Move point to the end of line (`vip-goto-eol').
                    891: `N |'     
                    892:      Move point to the N-th column on the line (`vip-goto-col').
                    893: Except for the `|' command, these commands neglect a count.
                    894: 
                    895: 
                    896: `w'     
                    897:      Move point forward to the beginning of the next word
                    898:      (`vip-forward-word').
                    899: `W'     
                    900:      Move point forward to the beginning of the next word, where a "word" is
                    901:      considered as a sequence of non-white characters (`vip-forward-Word').
                    902: `b'     
                    903:      Move point backward to the beginning of a word (`vip-backward-word').
                    904: `B'     
                    905:      Move point backward to the beginning of a word, where a word is
                    906:      considered as a sequence of non-white characters (`vip-forward-Word').
                    907: `e'     
                    908:      Move point forward to the end of a word (`vip-end-of-word').
                    909: `E'     
                    910:      Move point forward to the end of a word, where a word is
                    911:      considered as a sequence of non-white characters (`vip-end-of-Word').
                    912: Here the meaning of the word `word' for the `w', `b' and `e'
                    913: commands is determined by the "syntax table" effective in the current
                    914: buffer.  Each major mode has its syntax mode, and therefore the meaning of
                    915: a word also changes as the major mode changes.  See GNU Emacs Manual for
                    916: details of syntax table.
                    917: 
                    918: `H'     
                    919:      Move point to the beginning of the home (top) line of the window.
                    920:      Given a count N, go to the N-th line from top
                    921:      (`vip-window-top').
                    922: `M'     
                    923:      Move point to the beginning of the middle line of the window.  Given
                    924:      a count N, go to the N-th line from the middle line
                    925:      (`vip-window-middle').
                    926: `L'     
                    927:      Move point to the beginning of the lowest (bottom) line of the
                    928:      window.  Given count, go to the N-th line from bottom
                    929:      (`vip-window-bottom').
                    930: These commands can be used to go to the desired line visible on the screen.
                    931: 
                    932: `('     
                    933:      Move point backward to the beginning of the sentence
                    934:      (`vip-backward-sentence').
                    935: `)'     
                    936:      Move point forward to the end of the sentence
                    937:      (`vip-forward-sentence').
                    938: `{'     
                    939:      Move point backward to the beginning of the paragraph
                    940:      (`vip-backward-paragraph').
                    941: `}'     
                    942:      Move point forward to the end of the paragraph
                    943:      (`vip-forward-paragraph').
                    944: A count repeats the effect for these commands.
                    945: 
                    946: `G'     
                    947:      Given a count N, move point to the N-th line in the buffer on
                    948:      the first non-white character.  Without a count, go to the end of the buffer
                    949:      (`vip-goto-line').
                    950: `` `'     
                    951:      Exchange point and mark (`vip-goto-mark').
                    952: `` CH'     
                    953:      Move point to the position stored in the register CH.  CH must
                    954:      be a lower case letter.
                    955: `' ''     
                    956:      Exchange point and mark, and then move point to the first non-white
                    957:      character on the line (`vip-goto-mark-and-skip-white').
                    958: `' CH'     
                    959:      Move point to the position stored in the register CH and skip to the
                    960:      first non-white character on the line.  CH must be a lower case letter.
                    961: `%'     
                    962:      Move point to the matching parenthesis if point is looking at `(',
                    963:      `)', `{', `}', `[' or `]'
                    964:      (`vip-paren-match').
                    965: The command `G' mark point before move, so that you can return to the
                    966: original point by `` `'.  The original point will also be stored in
                    967: the mark ring.
                    968: 
                    969: The following commands are useful for moving points on the line.  A count
                    970: will repeat the effect.
                    971: 
                    972: `f CH'     
                    973:      Move point forward to the character CH on the line.  Signal error if
                    974:      CH could not be found (`vip-find-char-forward').
                    975: `F CH'     
                    976:      Move point backward to the character CH on the line.  Signal error if
                    977:      CH could not be found (`vip-find-char-backward').
                    978: `t CH'     
                    979:      Move point forward upto the character CH on the line.  Signal error if
                    980:      CH could not be found (`vip-goto-char-forward').
                    981: `T CH'     
                    982:      Move point backward upto the character CH on the line.  Signal error if
                    983:      CH could not be found (`vip-goto-char-backward').
                    984: `;'     
                    985:      Repeat previous `f', `t', `F' or `T' command
                    986:      (`vip-repeat-find').
                    987: `,'     
                    988:      Repeat previous `f', `t', `F' or `T' command, in the
                    989:      opposite direction (`vip-repeat-find-opposite').
                    990: 
                    991: 
                    992: File: vip  Node: Searching and Replacing, Prev: Motion Commands, Up: Vi Commands, Next: Modifying Commands
                    993: 
                    994: Searching and Replacing
                    995: =======================
                    996: 
                    997: Following commands are available for searching and replacing.
                    998: 
                    999: 
                   1000: `/ STRING RET'     
                   1001:      Search the first occurrence of the string STRING forward starting
                   1002:      from point.  Given a count N, the N-th occurrence of
                   1003:      STRING will be searched.  If the variable `vip-re-search' has value
                   1004:      `t' then "regular expression" search is done and the string
                   1005:      matching the regular expression STRING is found.  If you give an
                   1006:      empty string as STRING then the search mode will change from vanilla
                   1007:      search to regular expression search and vice versa
                   1008:      (`vip-search-forward').
                   1009: `? STRING RET'     
                   1010:      Same as `/', except that search is done backward
                   1011:      (`vip-search-backward').
                   1012: `n'     
                   1013:      Search the previous search pattern in the same direction as before
                   1014:      (`vip-search-next').
                   1015: `N'     
                   1016:      Search the previous search pattern in the opposite direction
                   1017:      (`vip-search-Next').
                   1018: `C-s'     
                   1019:      Search forward incrementally.  See GNU Emacs Manual for details
                   1020:      (`isearch-forward').
                   1021: `C-r'     
                   1022:      Search backward incrementally (`isearch-backward').
                   1023: `R STRING RET NEWSTRING'     
                   1024:      There are two modes of replacement, "vanilla" and "regular expression".
                   1025:      If the mode is vanilla you will get a prompt `Replace string:',
                   1026:      and if the mode is regular expression you will ge a prompt
                   1027:      `Replace regexp:'.  The mode is initially vanilla, but you can
                   1028:      toggle these modes by giving a null string as STRING.  If the mode is
                   1029:      vanilla, this command replaces every occurrence of STRING with
                   1030:      NEWSTRING.  If the mode is regular expression, STRING is
                   1031:      treated as a regular expression and every string matching the regular
                   1032:      expression is replaced with NEWSTRING (`vip-replace-string').
                   1033: `Q     STRING RET NEWSTRING'     
                   1034:      Same as `R' except that you will be asked form confirmation before each
                   1035:      replacement
                   1036:      (`vip-query-replace').
                   1037: `r CH'     
                   1038:      Replace the character point is looking at by the character CH.  Give
                   1039:      count, replace that many characters by CH (`vip-replace-char').
                   1040: The commands `/' and `?' mark point before move, so that you can
                   1041: return to the original point by `` `'.
                   1042: 
                   1043: 
                   1044: File: vip  Node: Modifying Commands, Prev: Searching and Replacing, Up: Vi Commands, Next: Delete Commands
                   1045: 
                   1046: Modifying Commands
                   1047: ==================
                   1048: 
                   1049: In this section, commands for modifying the content of a buffer are
                   1050: described.  These commands affect the region determined by a motion command
                   1051: which is given to the commands as their argument.
                   1052: 
                   1053: 
                   1054: We classify motion commands into "point commands" and
                   1055: "line commands".  The point commands are as follows:
                   1056:      `h', `l', `0', `^', `$', `w', `W', `b', `B', `e', `E', `(', `)', `/', `?', ``', `f', `F', `t', `T', `%', `;', `,'
                   1057: The line commands are as follows:
                   1058:      `j', `k', `+', `-', `H', `M', `L', `{', `}', `G', `''
                   1059: If a point command is given as an argument to a modifying command, the
                   1060: region determined by the point command will be affected by the modifying
                   1061: command. On the other hand, if a line command is given as an argument to a
                   1062: modifying command, the region determined by the line command will be
                   1063: enlarged so that it will become the smallest region properly containing the
                   1064: region and consisting of whole lines (we call this process "expanding
                   1065: the region"), and then the enlarged region will be affected by the modifying
                   1066: command.
                   1067: 
                   1068: * Menu:
                   1069: 
                   1070: * Delete Commands::    Commands for deleting text.
                   1071: * Yank Commands::      Commands for yanking text in Vi's sense.
                   1072: * Put Back Commands::  Commands for putting bake deleted/yanked text.
                   1073: * Change Commands::    Commands for changing text.
                   1074: 
                   1075: File: vip  Node: Delete Commands, Prev: Modifying Commands, Up: Modifying Commands, Next: Yank Commands
                   1076: 
                   1077: Delete Commands
                   1078: ---------------
                   1079: 
                   1080: `d MOTION-COMMAND'     
                   1081:      Delete the region determined by the motion command MOTION-COMMAND.
                   1082: For example, `d $' will delete the region between point and end of
                   1083: current line since `$' is a point command that moves point to end of line.
                   1084: `d G' will delete the region between the beginning of current line and
                   1085: end of the buffer, since `G' is a line command.  A count given to the
                   1086: command above will become the count for the associated motion command.
                   1087: Thus, `3 d w' will delete three words.
                   1088: 
                   1089: It is also possible to save the deleted text into a register you specify.
                   1090: For example, you can say `" t 3 d w' to delete three words and save it
                   1091: to register `t'.  The name of a register is a lower case letter between
                   1092: `a' and `z'.  If you give an upper case letter as an argument to
                   1093: a delete command, then the deleted text will be appended to the content of
                   1094: the register having the corresponding lower case letter as its name.  So,
                   1095: `" T d w' will delete a word and append it to register `t'.  Other
                   1096: modifying commands also accept a register name as their argument, and we
                   1097: will not repeat similar explanations.
                   1098: 
                   1099: We have more delete commands as below.
                   1100: 
                   1101: `d d'     
                   1102:      Delete a line.  Given a count N, delete N lines.
                   1103: `d r'     
                   1104:      Delete current region.
                   1105: `d R'     
                   1106:      Expand current region and delete it.
                   1107: `D'     
                   1108:      Delete to the end of a line (`vip-kill-line').
                   1109: `x'     
                   1110:      Delete a character after point.  Given N, delete N characters
                   1111:      (`vip-delete-char').
                   1112: `DEL'     
                   1113:      Delete a character before point.  Given N, delete N characters
                   1114:      (`vip-delete-backward-char').
                   1115: 
                   1116: 
                   1117: File: vip  Node: Yank Commands, Prev: Delete Commands, Up: Modifying Commands, Next: Put Back Commands
                   1118: 
                   1119: Yank Commands
                   1120: -------------
                   1121: 
                   1122: 
                   1123: Yank commands "yank" a text of buffer into a (usually anonymous) register.
                   1124: Here the word `yank' is used in Vi's sense.  Thus yank commands do not
                   1125: alter the content of the buffer, and useful only in combination with
                   1126: commands that put back the yanked text into the buffer.
                   1127: 
                   1128: `y MOTION-COMMAND'     
                   1129:      Yank the region determined by the motion command MOTION-COMMAND.
                   1130: For example, `y $' will yank the text between point and the end of line
                   1131: into an anonymous register, while `"c y $' will yank the same text into
                   1132: register `c'.
                   1133: 
                   1134: Use the following command to yank consecutive lines of text.
                   1135: 
                   1136: `y y'     
                   1137: `Y'     
                   1138:      Yank a line.  Given N, yank N lines (`vip-yank-line').
                   1139: `y r'     
                   1140:      Yank current region.
                   1141: `y R'     
                   1142:      Expand current region and yank it.
                   1143: 
                   1144: 
                   1145: File: vip  Node: Put Back Commands, Prev: Yank Commands, Up: Modifying Commands, Next: Change Commands
                   1146: 
                   1147: Put Back Commands
                   1148: -----------------
                   1149: Deleted or yanked texts can be put back into the buffer by the command
                   1150: below.
                   1151: 
                   1152: `p'     
                   1153:      Insert, after the character point is looking at, most recently
                   1154:      deleted/yanked text from anonymous register. Given a register name
                   1155:      argument, the content of the named register will be put back.  Given a
                   1156:      count, the command will be repeated that many times. This command also
                   1157:      checks if the text to put back ends with a new line character, and if so
                   1158:      the text will be but below the current line (`vip-put-back').
                   1159: `P'     
                   1160:      Insert at point most recently deleted/yanked text from anonymous register.
                   1161:      Given a register name argument, the content of the named register will
                   1162:      be put back.  Given a count, the command will be repeated that many times.
                   1163:      This command also checks if the text to put back ends with a new line
                   1164:      character, and if so the text will be put above the current line rather
                   1165:      than at point (`vip-Put-back').
                   1166: Thus, `" c p' will put back the content of the register `c' into the
                   1167: buffer.  It is also possible to specify "number register" which is a
                   1168: numeral between `1' and `9'.  If the number register N is
                   1169: specified, N-th previously deleted/yanked text will be put back.  It
                   1170: is an error to specify a number register for the delete/yank commands.
                   1171: 
                   1172: 
                   1173: File: vip  Node: Change Commands, Prev: Put Back Commands, Up: Modifying Commands, Next: Repeating and Undoing Modifications
                   1174: 
                   1175: Change Commands
                   1176: ---------------
                   1177: 
                   1178: Most commonly used change command takes the following form.
                   1179: 
                   1180: `c MOTION-COMMAND'     
                   1181:      Replace the content of the region determined by the motion command
                   1182:      MOTION-COMMAND by the text you type.  If the motion command is a
                   1183:      point command then you will type the text into minibuffer, and if the
                   1184:      motion command is a line command then the region will be deleted first and
                   1185:      you can insert the text in INSERT MODE.  For example, if point is at
                   1186: the beginning of a word `foo' and you wish to change it to `bar', you can
                   1187: type `c w'.  Then, as `w' is a point command, you will get the prompt `foo
                   1188: =>' in the minibuffer, for which you can type `b a r RET' to complete the
                   1189: change command.
                   1190: 
                   1191: `c c'     
                   1192:      Change a line.  Given a count, that many lines are changed.
                   1193: `c r'     
                   1194:      Change current region.
                   1195: `c R'     
                   1196:      Expand current region and change it.
                   1197: 
                   1198: 
                   1199: File: vip  Node: Repeating and Undoing Modifications, Prev: Change Commands, Up: Modifying Commands, Next: Other Vi Commands
                   1200: 
                   1201: Repeating and Undoing Modifications
                   1202: -----------------------------------
                   1203: 
                   1204: VIP records the previous modifying command, so that it is easy to repeat
                   1205: it.  It is also very easy to undo changes made by modifying commands.
                   1206: 
                   1207: `u'     
                   1208:      Undo the last change.  You can undo more by repeating undo by the repeat
                   1209:      command `.'.  For example, you can undo 5 previous changes by typing
                   1210:      `u....'.  If you type `uu', then the second `u' undoes the
                   1211:      first undo command (`vip-undo').
                   1212: `.'     
                   1213:      Repeat the last modifying command.  Given count N it becomes the new
                   1214:      count for the repeated command.  Otherwise, the count for the last
                   1215:      modifying command is used again (`vip-repeat').
                   1216: 
                   1217: 
                   1218: File: vip  Node: Other Vi Commands, Prev: Repeating and Undoing Modifications, Up: Vi Commands, Next: Commands in Insert Mode
                   1219: 
                   1220: Other Vi Commands
                   1221: =================
                   1222: 
                   1223: Miscellaneous Vi commands are collected here.
                   1224: 
                   1225: `Z Z'     
                   1226:      Exit Emacs.  If modified buffers exist, you will be asked whether you wish
                   1227:      to save them or not (`save-buffers-kill-emacs').
                   1228: `! MOTION-COMMAND FORMAT-COMMAND'     
                   1229: `N ! ! FORMAT-COMMAND'     
                   1230:      The region determined by the motion command MOTION-COMMAND will be
                   1231:      given to the shell command FORMAT-COMMAND and the region will be
                   1232:      replaced by its output.  If a count is given, it will be passed to
                   1233:      MOTION-COMMAND.  For example, `3!Gsort' will sort the region
                   1234:      between point and the 3rd line.  If `!' is used instead of
                   1235:      MOTION-COMMAND then N lines will be processed by
                   1236:      FORMAT-COMMAND (`vip-command-argument').
                   1237: `J'     
                   1238:      Join two lines.  Given count, join that many lines.  A space will be
                   1239:      inserted at each junction (`vip-join-lines').
                   1240: `< MOTION-COMMAND'     
                   1241: `N < <'     
                   1242:      Shift region determined by the motion command MOTION-COMMAND to
                   1243:      left by SHIFT-WIDTH (default is 8).  If `<' is used instead of
                   1244:      MOTION-COMMAND then shift N lines
                   1245:      (`vip-command-argument').
                   1246: `> MOTION-COMMAND'     
                   1247: `N > >'     
                   1248:      Shift region determined by the motion command MOTION-COMMAND to
                   1249:      right by SHIFT-WIDTH (default is 8).  If `<' is used instead of
                   1250:      MOTION-COMMAND then shift N lines
                   1251:      (`vip-command-argument').
                   1252: `= MOTION-COMMAND'     
                   1253:      Indent region determined by the motion command MOTION-COMMAND.  If
                   1254:      `=' is used instead of MOTION-COMMAND then indent N lines
                   1255:      (`vip-command-argument').
                   1256: `*'     
                   1257:      Call last remembered keyboard macro.
                   1258: `#'     
                   1259:      A new vi operator. *Note New Commands::, for more details.
                   1260: 
                   1261: The following keys are reserved for future extensions, and currently
                   1262: assigned to a function that just beeps (`vip-nil').
                   1263: 
                   1264: 
                   1265:      &, @, U, [, ], _, q, ~
                   1266: 
                   1267: VIP uses a special local keymap to interpret key strokes you enter in vi
                   1268: mode.  The following keys are bound to NIL in the keymap.  Therefore,
                   1269: these keys are interpreted by the global keymap of Emacs.  We give below a
                   1270: short description of the functions bound to these keys in the global
                   1271: keymap.  See GNU Emacs Manual for details.
                   1272: 
                   1273: `C-@'     
                   1274:      Set mark and push previous mark on mark ring (`set-mark-command').
                   1275: `TAB'     
                   1276:      Indent line for current major mode (`indent-for-tab-command').
                   1277: `LFD'     
                   1278:      Insert a newline, then indent according to mode (`newline-and-indent').
                   1279: `C-k'     
                   1280:      Kill the rest of the current line; before a newline, kill the newline.
                   1281:      With prefix argument, kill that many lines from point.  Negative arguments
                   1282:      kill lines backward (`kill-line').
                   1283: `C-l'     
                   1284:      Clear the screen and reprint everything (`recenter').
                   1285: `N C-p'     
                   1286:      Move cursor vertically up N lines (`previous-line').
                   1287: `C-q'     
                   1288:      Read next input character and insert it.  Useful for inserting control
                   1289:      characters
                   1290:      (`quoted-insert').
                   1291: `C-r'     
                   1292:      Search backward incrementally (`isearch-backward').
                   1293: `C-s'     
                   1294:      Search forward incrementally (`isearch-forward').
                   1295: `N C-t'     
                   1296:      Interchange charcters around point, moving forward one character.  With
                   1297:      count N, take character before point and drag it forward past N
                   1298:      other characters.  If no argument and at end of line, the previous two
                   1299:      characters are exchanged (`transpose-chars').
                   1300: `N C-v'     
                   1301:      Scroll text upward N lines.  If N is not given, scroll near
                   1302:      full screen (`scroll-up').
                   1303: `C-w'     
                   1304:      Kill between point and mark.  The text is save in the kill ring.  The
                   1305:      command `P' or `p' can retrieve it from kill ring
                   1306:      (`kill-region').
                   1307: 
                   1308: 
                   1309: File: vip  Node: Commands in Insert Mode, Prev: Other Vi Commands, Up: Vi Commands, Next: Ex Commands
                   1310: 
                   1311: Insert Mode
                   1312: ===========
                   1313: 
                   1314: You can enter insert mode by one of the following commands.  In addition to
                   1315: these, you will enter insert mode if you give a change command with a line
                   1316: command as the motion command.  Insert commands are also modifying commands
                   1317: and you can repeat them by the repeat command `.' (`vip-repeat').
                   1318: 
                   1319: `i'     
                   1320:      Enter insert mode at point (`vip-insert').
                   1321: `I'     
                   1322:      Enter insert mode at the first non white character on the line
                   1323:      (`vip-Insert').
                   1324: `a'     
                   1325:      Move point forward by one character and then enter insert mode
                   1326:      (`vip-append').
                   1327: `A'     
                   1328:      Enter insert mode at end of line (`vip-Append').
                   1329: `o'     
                   1330:      Open a new line below the current line and enter insert mode
                   1331:      (`vip-open-line').
                   1332: `O'     
                   1333:      Open a new line above the current line and enter insert mode
                   1334:      (`vip-Open-line').
                   1335: `C-o'     
                   1336:      Insert a newline and leave point before it, and then enter insert mode
                   1337:      (`vip-open-line-at-point').
                   1338: 
                   1339: Insert mode is almost like emacs mode.  Only the following 4 keys behave
                   1340: differently from emacs mode.
                   1341: 
                   1342: `ESC'     
                   1343:      This key will take you back to vi mode (`vip-change-mode-to-vi').
                   1344: `C-h'     
                   1345:      Delete previous character (`delete-backward-char').
                   1346: `C-w'     
                   1347:      Delete previous word (`vip-delete-backward-word').
                   1348: `C-z'     
                   1349:      This key simulates ESC key in emacs mode.  For instance, typing
                   1350:      `C-z x' in insert mode iw the same as typing `ESC x' in emacs mode
                   1351:      (`vip-ESC').
                   1352: You can also bind `C-h' to `help-command' if you like.
                   1353: (*Note Customizing Key Bindings::, for details.)  Binding `C-h' to
                   1354: `help-command' has the effect of making the meaning of `C-h'
                   1355: uniform among emacs, vi and insert modes.
                   1356: 
                   1357: When you enter insert mode, VIP records point as the start point of
                   1358: insertion, and when you leave insert mode the region between point and
                   1359: start point is saved for later use by repeat command etc.  Therefore, repeat
                   1360: command will not really repeat insertion if you move point by emacs
                   1361: commands while in insert mode.
                   1362: 
                   1363: 
                   1364: File: vip  Node: Ex Commands, Prev: Commands in Insert Mode, Up: Top, Next: Ex Command Reference
                   1365: 
                   1366: Ex Commands
                   1367: ***********
                   1368: 
                   1369: 
                   1370: In vi mode, you can execute an Ex command EX-COMMAND by typing:
                   1371:      `: EX-COMMAND RET'
                   1372: Every Ex command follows the following pattern:
                   1373:      ADDRESS COMMAND `!' PARAMETERS COUNT FLAGS
                   1374: where all parts are optional.  For the syntax of "address", the reader
                   1375: is referred to the reference manual of Ex.
                   1376: 
                   1377: 
                   1378: In the current version of VIP, searching by Ex commands is always
                   1379: "magic".  That is, search patterns are always treated as "regular
                   1380: expressions".  For example, a typical forward search would be invoked by
                   1381: `:/PAT/'.  If you wish to include `/' as part of
                   1382: PAT you must preceded it by `\'.  VIP strips off these `\''s
                   1383: before `/' and the resulting PAT becomes the actual search
                   1384: pattern.  Emacs provides a different and richer class or regular
                   1385: expressions than Vi/Ex, and VIP uses Emacs' regular expressions.  See GNU
                   1386: Emacs Manual for details of regular expressions.
                   1387: 
                   1388: Several Ex commands can be entered in a line by separating them by a pipe
                   1389: character `|'.
                   1390: 
                   1391: * Menu:
                   1392: 
                   1393: * Ex Command Reference::       Explain all the Ex commands available in VIP.
                   1394: 
                   1395: File: vip  Node: Ex Command Reference, Prev: Ex Commands, Up: Ex Commands, Next: Customization
                   1396: 
                   1397: Ex Command Reference
                   1398: ====================
                   1399: In this section we briefly explain all the Ex commands supported by VIP.
                   1400: Most Ex commands expect ADDRESS as their argument, and they use
                   1401: default addresses if they are not explicitly given.  In the following, such
                   1402: default addresses will be shown in parentheses.
                   1403: 
                   1404: Most command names can and preferably be given in abbreviated forms.  In
                   1405: the following, optional parts of command names will be enclosed in
                   1406: brackets.  For example, `co[py]' will mean that copy command can be
                   1407: give as `co' or `cop' or `copy'.
                   1408: 
                   1409: If COMMAND is empty, point will move to the beginning of the line
                   1410: specified by the ADDRESS.  If ADDRESS is also empty, point will
                   1411: move to the beginning of the current line.
                   1412: 
                   1413: 
                   1414: Some commands accept "flags" which are one of `p', `l' and
                   1415: `#'.  If FLAGS are given, the text affected by the commands will
                   1416: be displayed on a temporary window, and you will be asked to hit return to
                   1417: continue.  In this way, you can see the text affected by the commands
                   1418: before the commands will be executed.  If you hit `C-g' instead of
                   1419: RET then the commands will be aborted.  Note that the meaning of
                   1420: FLAGS is different in VIP from that in Vi/Ex.
                   1421: 
                   1422: `(.,.) co[py] ADDR FLAGS'     
                   1423: `(.,.) t ADDR FLAGS'     
                   1424:      Place a copy of specified lines after ADDR.  If ADDR is
                   1425:      `0', it will be placed before the first line.
                   1426: `(.,.) d[elete] REGISTER COUNT FLAGS'     
                   1427:      Delete specified lines.  Text will be saved in a named REGISTER if a
                   1428:      lower case letter is given, and appended to a register if a capital letter is
                   1429:      given. 
                   1430: `e[dit] ! +ADDR FILE'     
                   1431: `e[x] ! +ADDR FILE'     
                   1432: `vi[sual] ! +ADDR FILE'     
                   1433:      Edit a new file FILE in the current window.  The command will abort
                   1434:      if current buffer is modified, which you can override by giving `!'.
                   1435:      If `+'ADDR is given, ADDR becomes the current line.
                   1436: `file'     
                   1437:      Give information about the current file.
                   1438: `(1,$) g[lobal] ! /PAT/ CMDS'     
                   1439: `(1,$) v /PAT/ CMDS'     
                   1440:      Among specified lines first mark each line which matches the regular
                   1441:      expression PAT, and then execute CMDS on each marked line.
                   1442:      If `!' is given, CMDS will be executed on each line not matching
                   1443:      PAT.  `v' is same as `g!'.
                   1444: `(.,.+1) j[oin] ! COUNT FLAGS'     
                   1445:      Join specified lines into a line.  Without `!', a space character will
                   1446:      be inserted at each junction.
                   1447: `(.) k CH'     
                   1448: `(.) mar[k] CH'     
                   1449:      Mark specified line by a lower case character CH.  Then the
                   1450:      addressing form `''CH will refer to this line.  No white space is
                   1451:      required between `k' and CH.  A white space is necessary between
                   1452:      `mark' and CH, however.
                   1453: `map CH RHS'     
                   1454:      Define a macro for vi mode.  After this command, the character CH
                   1455:      will be expanded to RHS in vi mode.
                   1456: `(.,.) m[ove] ADDR'     
                   1457:      Move specified lines after ADDR.
                   1458: `(.) pu[t] REGISTER'     
                   1459:      Put back previously deleted or yanked text.  If REGISTER is given,
                   1460:      the text saved in the register will be put back; otherwise, last deleted or
                   1461:      yanked text will be put back.
                   1462: `q[uit] !'     
                   1463:      Quit from Emacs.  If modified buffers with associated files exist, you will
                   1464:      be asked whether you wish to save each of them.  At this point, you may
                   1465:      choose not to quit, by hitting `C-g'.  If `!' is given, exit from
                   1466:      Emacs without saving modified buffers.
                   1467: `(.) r[ead] FILE'     
                   1468:      Read in the content of the file FILE after the specified line.
                   1469: `(.) r[ead] ! COMMAND'     
                   1470:      Read in the output of the shell command COMMAND after the specified
                   1471:      line.
                   1472: `se[t]'     
                   1473:      Set a variable's value.  *Note Customizing Constants::, for the list of variables
                   1474:      you can set.
                   1475: `sh[ell]'     
                   1476:      Run a subshell in a window.
                   1477: `(.,.) s[ubstitute] /PAT/REPL/ OPTIONS COUNT FLAGS'     
                   1478: `(.,.) & OPTIONS COUNT FLAGS'     
                   1479:      On each specified line, the first occurrence of string matching regular
                   1480:      expression PAT is replaced by replacement pattern REPL.  Option
                   1481:      characters are `g' and `c'.  If global option character `g'
                   1482:      appears as part of OPTIONS, all occurrences are substituted.  If
                   1483:      confirm option character `c' appears, you will be asked to give
                   1484:      confirmation before each substitution.  If `/PAT/REPL/' is
                   1485:      missing, the last substitution is repeated.
                   1486: `st[op]'     
                   1487:      Suspend Emacs.
                   1488: `ta[g] TAG'     
                   1489:      Find first definition of TAG.  If no TAG is given, previously
                   1490:      given TAG is used and next alternate definition is find.  By default,
                   1491:      the file `TAGS' in the current directory becomes the "selected tag
                   1492:      table".  You can select another tag table by `set' command.
                   1493:      *Note Customizing Constants::, for details.
                   1494: `und[o]'     
                   1495:      Undo the last change.
                   1496: `unm[ap] CH'     
                   1497:      The macro expansion associated with CH is removed.
                   1498: `ve[rsion]'     
                   1499:      Tell the version number of VIP.
                   1500: `(1,$) w[rite] ! FILE'     
                   1501:      Write out specified lines into file FILE.  If no FILE is given,
                   1502:      text will be written to the file associated to the current buffer.  Unless
                   1503:      `!' is given, if FILE is different from the file associated to
                   1504:      the current buffer and if the file FILE exists, the command will not
                   1505:      be executed.  Unlike Ex, FILE becomes the file associated to the
                   1506:      current buffer.
                   1507: `(1,$) w[rite]>> FILE'     
                   1508:      Write out specified lines at the end of file FILE.  FILE
                   1509:      becomes the file associated to the current buffer.
                   1510: `(1,$) wq ! FILE'     
                   1511:      Same as `write' and then `quit'.  If `!' is given, same as
                   1512:      `write !' then `quit'.
                   1513: `(.,.) y[ank] REGISTER COUNT'     
                   1514:      Save specified lines into register REGISTER.  If no register is
                   1515:      specified, text will be saved in an anonymous register.
                   1516: `ADDR ! COMMAND'     
                   1517:      Execute shell command COMMAND.  The output will be shown in a new
                   1518:      window.  If ADDR is given, specified lines will be used as standard
                   1519:      input to COMMAND.
                   1520: `($) ='     
                   1521:      Print the line number of the addressed line.
                   1522: `(.,.) > COUNT FLAGS'     
                   1523:      Shift specified lines to the right.  The variable `vip-shift-width'
                   1524:      (default value is 8) determines the amount of shift.
                   1525: `(.,.) < COUNT FLAGS'     
                   1526:      Shift specified lines to the left.  The variable `vip-shift-width'
                   1527:      (default value is 8) determines the amount of shift.
                   1528: `(.,.) ~ OPTIONS COUNT FLAGS'     
                   1529:      Repeat the previous `substitute' command using previous search pattern
                   1530:      as PAT for matching.
                   1531: 
                   1532: The following Ex commands are available in Vi, but not implemented in VIP.
                   1533:      `abbreviate', `list', `next', `print', `preserve', `recover', `rewind', `source',
                   1534:      `unabbreviate', `xit', `z'
                   1535: 
                   1536: 
                   1537: File: vip  Node: Customization, Prev: Ex Command Reference, Up: Top, Next: Customizing Constants
                   1538: 
                   1539: Customization
                   1540: *************
                   1541: 
                   1542: If you have a file called `.vip' in your home directory, then it
                   1543: will also be loaded when VIP is loaded.  This file is thus useful for
                   1544: customizing VIP.
                   1545: 
                   1546: * Menu:
                   1547: 
                   1548: * Customizing Constants::      How to change values of constants.
                   1549: * Customizing Key Bindings::   How to change key bindings.
                   1550: * Adding Lisp Code::           Most powerful way of customization.
                   1551: 
                   1552: File: vip  Node: Customizing Constants, Prev: Customization, Up: Customization, Next: Customizing Key Bindings
                   1553: 
                   1554: Customizing Constants
                   1555: =====================
                   1556: An easy way to customize VIP is to change the values of constants used
                   1557: in VIP.  Here is the list of the constants used in VIP and their default
                   1558: values.
                   1559: 
                   1560: `vip-shift-width 8'     
                   1561:      The number of columns shifted by `>' and `<' command.
                   1562: `vip-re-replace nil'     
                   1563:      If `t' then do regexp replace, if `nil' then do string replace.
                   1564: `vip-search-wrap-around t'     
                   1565:      If `t', search wraps around the buffer.
                   1566: `vip-re-search nil'     
                   1567:      If `t' then search is reg-exp search, if `nil' then vanilla
                   1568:      search.
                   1569: `vip-case-fold-search nil'     
                   1570:      If `t' search ignores cases.
                   1571: `vip-re-query-replace nil'     
                   1572:      If `t' then do reg-exp replace in query replace.
                   1573: `vip-open-with-indent nil'     
                   1574:      If `t' then indent to the previous current line when open a new line
                   1575:      by `o' or `O' command.
                   1576: `vip-tags-file-name "TAGS"'     
                   1577:      The name of the file used as the tag table.
                   1578: `vip-help-in-insert-mode nil'     
                   1579:      If `t' then C-h is bound to `help-command' in insert mode,
                   1580:      if `nil' then it sis bound to `delete-backward-char'.
                   1581: You can reset these constants in VIP by the Ex command `set'.  Or you
                   1582: can include a line like this in your `.vip' file:
                   1583:      (setq vip-case-fold-search t)
                   1584: 
                   1585: 
                   1586: File: vip  Node: Customizing Key Bindings, Prev: Customizing Constants, Up: Customization
                   1587: 
                   1588: Customizing Key Bindings
                   1589: ========================
                   1590: 
                   1591: 
                   1592: VIP uses `vip-command-mode-map' as the "local keymap" for vi mode.
                   1593: For example, in vi mode, SPC is bound to the function
                   1594: `vip-scroll'.  But, if you wish to make SPC and some other keys
                   1595:  behave like Vi, you can include the following lines in your `.vip'
                   1596: file.
                   1597: 
                   1598:      (define-key vip-command-mode-map "\C-g" 'vip-info-on-file)
                   1599:      (define-key vip-command-mode-map "\C-h" 'vip-backward-char)
                   1600:      (define-key vip-command-mode-map "\C-m" 'vip-next-line-at-bol)
                   1601:      (define-key vip-command-mode-map " " 'vip-forward-char)
                   1602:      (define-key vip-command-mode-map "g" 'vip-keyboard-quit)
                   1603:      (define-key vip-command-mode-map "s" 'vip-substitute)
                   1604:      (define-key vip-command-mode-map "C" 'vip-change-to-eol)
                   1605:      (define-key vip-command-mode-map "R" 'vip-change-to-eol)
                   1606:      (define-key vip-command-mode-map "S" 'vip-substitute-line)
                   1607:      (define-key vip-command-mode-map "X" 'vip-delete-backward-char)
                   1608: 
                   1609: 
                   1610: Key Index
                   1611: *********
                   1612: 
                   1613: 
                   1614: * Menu:
                   1615: 
                   1616: * 000 @kbd{C-@@} (@code{set-mark-command}): Other Vi Commands.
                   1617: * 001 @kbd{C-a} (@code{vip-beginning-of-line}): New Commands.
                   1618: * 002 @kbd{C-b} (@code{vip-scroll-back}): Viewing the Buffer.
                   1619: * 003 @kbd{C-c} (@code{vip-ctl-c}): Important Keys.
                   1620: * 003 @kbd{C-c} (@code{vip-ctl-c}): New Commands.
                   1621: * 004 @kbd{C-d} (@code{vip-scroll-up}): Viewing the Buffer.
                   1622: * 005 @kbd{C-e} (@code{vip-scroll-up-one}): Viewing the Buffer.
                   1623: * 006 @kbd{C-f} (@code{vip-scroll-back}): Viewing the Buffer.
                   1624: * 007 @kbd{C-g} (@code{vip-keyboard-quit}): Changing.
                   1625: * 007 @kbd{C-g} (@code{vip-keyboard-quit}): Important Keys.
                   1626: * 007 @kbd{C-g} (@code{vip-keyboard-quit}): New Bindings.
                   1627: * 010 @kbd{C-h} (@code{delete-backward-char}) (insert mode): Commands in Insert Mode.
                   1628: * 010 @kbd{C-h} (@code{vip-delete-backward-char}) (insert mode): Insert Mode.
                   1629: * 011 @kbd{TAB} (@code{indent-for-tab-command}): Other Vi Commands.
                   1630: * 012 @kbd{LFD} (@code{newline-and-indent}): Other Vi Commands.
                   1631: * 013 @kbd{C-k} (@code{kill-line}): Other Vi Commands.
                   1632: * 014 @kbd{C-l} (@code{recenter}): Important Keys.
                   1633: * 014 @kbd{C-l} (@code{recenter}): Other Vi Commands.
                   1634: * 015 @kbd{RET} (@code{vip-scroll-back}): New Bindings.
                   1635: * 015 @kbd{RET} (@code{vip-scroll-back}): Viewing the Buffer.
                   1636: * 016 @kbd{C-n} (@code{vip-next-window}): Buffers and Windows.
                   1637: * 016 @kbd{C-n} (@code{vip-next-window}): New Commands.
                   1638: * 016 @kbd{C-n} (@code{vip-next-window}): Window Commands.
                   1639: * 017 @kbd{C-o} (@code{vip-open-line-at-point}): Commands in Insert Mode.
                   1640: * 017 @kbd{C-o} (@code{vip-open-line-at-point}): New Commands.
                   1641: * 020 @kbd{C-p} (@code{previous-line}): Other Vi Commands.
                   1642: * 021 @kbd{C-q} (@code{quoted-insert}): Other Vi Commands.
                   1643: * 022 @kbd{C-r} (@code{isearch-backward}): New Commands.
                   1644: * 022 @kbd{C-r} (@code{isearch-backward}): Other Vi Commands.
                   1645: * 022 @kbd{C-r} (@code{isearch-backward}): Searching and Replacing.
                   1646: * 023 @kbd{C-s} (@code{isearch-forward}): New Commands.
                   1647: * 023 @kbd{C-s} (@code{isearch-forward}): Other Vi Commands.
                   1648: * 023 @kbd{C-s} (@code{isearch-forward}): Searching and Replacing.
                   1649: * 024 @kbd{C-t} (@code{transpose-chars}): Other Vi Commands.
                   1650: * 025 @kbd{C-u} (@code{vip-scroll-down}): Viewing the Buffer.
                   1651: * 026 @kbd{C-v} (@code{scroll-up}): Other Vi Commands.
                   1652: * 027 @kbd{C-w} (@code{kill-region}): Other Vi Commands.
                   1653: * 027 @kbd{C-w} (@code{vip-delete-backward-word}) (insert mode): Commands in Insert Mode.
                   1654: * 027 @kbd{C-w} (@code{vip-delete-backward-word}) (insert mode): Insert Mode.
                   1655: * 0300 @kbd{C-x} (@code{vip-ctl-x}): Important Keys.
                   1656: * 0300 @kbd{C-x} (@code{vip-ctl-x}): New Commands.
                   1657: * 0301 @kbd{C-x C-z} (@code{suspend-emacs}): Modes in VIP.
                   1658: * 031 @kbd{C-y} (@code{vip-scroll-down-one}): Viewing the Buffer.
                   1659: * 032 @kbd{C-z} (@code{vip-change-mode-to-vi}): Emacs Mode.
                   1660: * 032 @kbd{C-z} (@code{vip-change-mode-to-vi}): Modes in VIP.
                   1661: * 032 @kbd{C-z} (@code{vip-ESC}) (insert mode): Commands in Insert Mode.
                   1662: * 032 @kbd{C-z} (@code{vip-ESC}) (insert mode): Insert Mode.
                   1663: * 033 @kbd{ESC} (@code{vip-change-mode-to-vi}) (insert mode): Commands in Insert Mode.
                   1664: * 033 @kbd{ESC} (@code{vip-change-mode-to-vi}) (insert mode): Insert Mode.
                   1665: * 033 @kbd{ESC} (@code{vip-ESC}): Important Keys.
                   1666: * 033 @kbd{ESC} (@code{vip-ESC}): New Commands.
                   1667: * 040 @kbd{SPC} (@code{vip-scroll}): New Bindings.
                   1668: * 040 @kbd{SPC} (@code{vip-scroll}): Viewing the Buffer.
                   1669: * 041 @kbd{!} (@code{vip-command-argument}): Other Vi Commands.
                   1670: * 042 @kbd{"} (@code{vip-command-argument}): Delete Commands.
                   1671: * 0430 @kbd{#} (@code{vip-command-argument}): New Commands.
                   1672: * 0431 @kbd{# C} (@code{upcase-region}): New Commands.
                   1673: * 0432 @kbd{# c} (@code{downcase-region}): New Commands.
                   1674: * 0432 @kbd{# g} (@code{vip-global-execute}): New Commands.
                   1675: * 0432 @kbd{# q} (@code{vip-quote-region}): New Commands.
                   1676: * 0432 @kbd{# s} (@code{spell-region}): New Commands.
                   1677: * 044 @kbd{$} (@code{vip-goto-eol}): Motion Commands.
                   1678: * 045 @kbd{%} (@code{vip-paren-match}): Motion Commands.
                   1679: * 046 @kbd{&} (@code{vip-nil}): Other Vi Commands.
                   1680: * 047 @kbd{'} (@code{vip-goto-mark-and-skip-white}): Motion Commands.
                   1681: * 050 @kbd{(} (@code{vip-backward-sentence}): Motion Commands.
                   1682: * 051 @kbd{)} (@code{vip-forward-sentence}): Motion Commands.
                   1683: * 052 @kbd{*} (@code{vip-call-last-kbd-macro}): Misc Commands.
                   1684: * 052 @kbd{*} (@code{vip-call-last-kbd-macro}): New Commands.
                   1685: * 052 @kbd{*} (@code{vip-call-last-kbd-macro}): Other Vi Commands.
                   1686: * 053 @kbd{+} (@code{vip-next-line-at-bol}): Motion Commands.
                   1687: * 054 @kbd{,} (@code{vip-repeat-find-opposite}): Motion Commands.
                   1688: * 055 @kbd{-} (@code{vip-previous-line-at-bol}): Motion Commands.
                   1689: * 056 @kbd{.} (@code{vip-repeat}): Repeating and Undoing Modifications.
                   1690: * 056 @kbd{.} (@code{vip-repeat}): Undoing.
                   1691: * 057 @kbd{/} (@code{vip-search-forward}): Counts.
                   1692: * 057 @kbd{/} (@code{vip-search-forward}): Searching.
                   1693: * 057 @kbd{/} (@code{vip-search-forward}): Searching and Replacing.
                   1694: * 060 @kbd{0} (@code{vip-beginning-of-line}): Motion Commands.
                   1695: * 061 @kbd{1} (numeric argument): Numeric Arguments.
                   1696: * 062 @kbd{2} (numeric argument): Numeric Arguments.
                   1697: * 063 @kbd{3} (numeric argument): Numeric Arguments.
                   1698: * 064 @kbd{4} (numeric argument): Numeric Arguments.
                   1699: * 065 @kbd{5} (numeric argument): Numeric Arguments.
                   1700: * 066 @kbd{6} (numeric argument): Numeric Arguments.
                   1701: * 067 @kbd{7} (numeric argument): Numeric Arguments.
                   1702: * 068 @kbd{8} (numeric argument): Numeric Arguments.
                   1703: * 069 @kbd{9} (numeric argument): Numeric Arguments.
                   1704: * 072 @kbd{:} (@code{vip-ex}): Ex Commands.
                   1705: * 073 @kbd{;} (@code{vip-repeat-find}): Motion Commands.
                   1706: * 074 @kbd{<} (@code{vip-command-argument}): Other Vi Commands.
                   1707: * 075 @kbd{=} (@code{vip-command-argument}): Other Vi Commands.
                   1708: * 076 @kbd{>} (@code{vip-command-argument}): Other Vi Commands.
                   1709: * 077 @kbd{?} (@code{vip-search-backward}): Counts.
                   1710: * 077 @kbd{?} (@code{vip-search-backward}): Searching.
                   1711: * 077 @kbd{?} (@code{vip-search-backward}): Searching and Replacing.
                   1712: * 100 @kbd{@@} (@code{vip-nil}): Other Vi Commands.
                   1713: * 101 @kbd{A} (@code{vip-Append}): Commands in Insert Mode.
                   1714: * 102 @kbd{B} (@code{vip-backward-Word}): Motion Commands.
                   1715: * 103 @kbd{C} (@code{vip-ctl-c-equivalent}): Important Keys.
                   1716: * 103 @kbd{C} (@code{vip-ctl-c-equivalent}): New Bindings.
                   1717: * 104 @kbd{D} (@code{vip-kill-line}): Delete Commands.
                   1718: * 105 @kbd{E} (@code{vip-end-of-Word}): Motion Commands.
                   1719: * 106 @kbd{F} (@code{vip-find-char-backward}): Motion Commands.
                   1720: * 107 @kbd{G} (@code{vip-goto-line}): Motion Commands.
                   1721: * 110 @kbd{H} (@code{vip-window-top}): Motion Commands.
                   1722: * 111 @kbd{I} (@code{vip-Insert}): Commands in Insert Mode.
                   1723: * 112 @kbd{J} (@code{vip-join-lines}): Other Vi Commands.
                   1724: * 113 @kbd{K} (@code{vip-kill-buffer}): Buffer Commands.
                   1725: * 113 @kbd{K} (@code{vip-kill-buffer}): Buffers and Windows.
                   1726: * 113 @kbd{K} (@code{vip-kill-buffer}): New Commands.
                   1727: * 114 @kbd{L} (@code{vip-window-bottom}): Motion Commands.
                   1728: * 115 @kbd{M} (@code{vip-window-middle}): Motion Commands.
                   1729: * 116 @kbd{N} (@code{vip-search-Next}): Searching and Replacing.
                   1730: * 117 @kbd{O} (@code{vip-Open-line}): Commands in Insert Mode.
                   1731: * 117 @kbd{O} (@code{vip-Open-line}): Counts.
                   1732: * 120 @kbd{P} (@code{vip-Put-back}): Counts.
                   1733: * 120 @kbd{P} (@code{vip-Put-back}): Put Back Commands.
                   1734: * 121 @kbd{Q} (@code{vip-query-replace}): New Commands.
                   1735: * 121 @kbd{Q} (@code{vip-query-replace}): Searching and Replacing.
                   1736: * 122 @kbd{R} (@code{vip-replace-string}): New Commands.
                   1737: * 122 @kbd{R} (@code{vip-replace-string}): Searching and Replacing.
                   1738: * 123 @kbd{S} (@code{vip-switch-to-buffer-other-window}): Buffer Commands.
                   1739: * 123 @kbd{S} (@code{vip-switch-to-buffer-other-window}): Buffers and Windows.
                   1740: * 123 @kbd{S} (@code{vip-switch-to-buffer-other-window}): New Bindings.
                   1741: * 124 @kbd{T} (@code{vip-goto-char-backward}): Motion Commands.
                   1742: * 125 @kbd{U} (@code{vip-nil}): Other Vi Commands.
                   1743: * 126 @kbd{V} (@code{vip-find-file-other-window}): File Commands.
                   1744: * 126 @kbd{V} (@code{vip-find-file-other-window}): Files.
                   1745: * 126 @kbd{V} (@code{vip-find-file-other-window}): New Commands.
                   1746: * 127 @kbd{W} (@code{vip-forward-Word}): Motion Commands.
                   1747: * 1300 @kbd{X} (@code{vip-ctl-x-equivalent}): Important Keys.
                   1748: * 1300 @kbd{X} (@code{vip-ctl-x-equivalent}): New Bindings.
                   1749: * 1301 @kbd{X )} (@code{end-kbd-macro}): Misc Commands.
                   1750: * 1301 @kbd{X (} (@code{start-kbd-macro}): Misc Commands.
                   1751: * 1301 @kbd{X 1} (@code{delete-other-windows}): Buffers and Windows.
                   1752: * 1301 @kbd{X 1} (@code{delete-other-windows}): Window Commands.
                   1753: * 1301 @kbd{X 2} (@code{split-window-vertically}): Buffers and Windows.
                   1754: * 1301 @kbd{X 2} (@code{split-window-vertically}): Window Commands.
                   1755: * 1301 @kbd{X 3} (@code{vip-buffer-in-two-windows}): Buffers and Windows.
                   1756: * 1301 @kbd{X 3} (@code{vip-buffer-in-two-windows}): New Bindings.
                   1757: * 1301 @kbd{X 3} (@code{vip-buffer-in-two-windows}): Window Commands.
                   1758: * 1302 @kbd{X B} (@code{list-buffers}): Buffers and Windows.
                   1759: * 1302 @kbd{X I} (@code{insert-file}): File Commands.
                   1760: * 1302 @kbd{X I} (@code{insert-file}): Files.
                   1761: * 1302 @kbd{X S} (@code{save-buffer}): Buffer Commands.
                   1762: * 1302 @kbd{X S} (@code{save-buffer}): Files.
                   1763: * 1302 @kbd{X W} (@code{write-file}): File Commands.
                   1764: * 1302 @kbd{X W} (@code{write-file}): Files.
                   1765: * 1302 @kbd{X Z} (@code{suspend-emacs}): Misc Commands.
                   1766: * 131 @kbd{Y} (@code{vip-yank-line}): Yank Commands.
                   1767: * 132 @kbd{Z Z} (@code{save-buffers-kill-emacs}): Other Vi Commands.
                   1768: * 133 @kbd{[} (@code{vip-nil}): Other Vi Commands.
                   1769: * 134 @kbd{\} (@code{vip-escape-to-emacs}): Important Keys.
                   1770: * 134 @kbd{\} (@code{vip-escape-to-emacs}): New Commands.
                   1771: * 135 @kbd{]} (@code{vip-nil}): Other Vi Commands.
                   1772: * 136 @kbd{^} (@code{vip-bol-and-skip-white}): Motion Commands.
                   1773: * 137 @kbd{_} (@code{vip-nil}): Other Vi Commands.
                   1774: * 140 @kbd{`} (@code{vip-goto-mark}): Motion Commands.
                   1775: * 141 @kbd{a} (@code{vip-append}): Commands in Insert Mode.
                   1776: * 142 @kbd{b} (@code{vip-backward-word}): Motion Commands.
                   1777: * 1430 @kbd{c} (@code{vip-command-argument}): Change Commands.
                   1778: * 1431 @kbd{c R}: Change Commands.
                   1779: * 1432 @kbd{c c}: Change Commands.
                   1780: * 1432 @kbd{c r}: Change Commands.
                   1781: * 1440 @kbd{d} (@code{vip-command-argument}): Delete Commands.
                   1782: * 1441 @kbd{d R}: Delete Commands.
                   1783: * 1442 @kbd{d d}: Delete Commands.
                   1784: * 1442 @kbd{d r}: Delete Commands.
                   1785: * 145 @kbd{e} (@code{vip-end-of-word}): Motion Commands.
                   1786: * 146 @kbd{f} (@code{vip-find-char-forward}): Motion Commands.
                   1787: * 147 @kbd{g} (@code{vip-info-on-file}): Files.
                   1788: * 147 @kbd{g} (@code{vip-info-on-file}): New Bindings.
                   1789: * 150 @kbd{h} (@code{vip-backward-char}): Motion Commands.
                   1790: * 151 @kbd{i} (@code{vip-insert}): Commands in Insert Mode.
                   1791: * 152 @kbd{j} (@code{vip-next-line}): Motion Commands.
                   1792: * 153 @kbd{k} (@code{vip-previous-line}): Motion Commands.
                   1793: * 154 @kbd{l} (@code{vip-forward-char}): Motion Commands.
                   1794: * 155 @kbd{m} (@code{vip-mark-point}): Mark Commands.
                   1795: * 155 @kbd{m} (@code{vip-mark-point}): Marking.
                   1796: * 156 @kbd{n} (@code{vip-search-next}): Searching and Replacing.
                   1797: * 157 @kbd{o} (@code{vip-open-line}): Commands in Insert Mode.
                   1798: * 157 @kbd{o} (@code{vip-open-line}): Counts.
                   1799: * 160 @kbd{p} (@code{vip-put-back}): Counts.
                   1800: * 160 @kbd{p} (@code{vip-put-back}): Put Back Commands.
                   1801: * 161 @kbd{q} (@code{vip-nil}): Other Vi Commands.
                   1802: * 162 @kbd{r} (@code{vip-replace-char}): Searching and Replacing.
                   1803: * 163 @kbd{s} (@code{vip-switch-to-buffer}): Buffer Commands.
                   1804: * 163 @kbd{s} (@code{vip-switch-to-buffer}): Buffers and Windows.
                   1805: * 163 @kbd{s} (@code{vip-switch-to-buffer}): New Bindings.
                   1806: * 164 @kbd{t} (@code{vip-goto-char-forward}): Motion Commands.
                   1807: * 165 @kbd{u} (@code{vip-undo}): Repeating and Undoing Modifications.
                   1808: * 165 @kbd{u} (@code{vip-undo}): Undoing.
                   1809: * 166 @kbd{v} (@code{vip-find-file}): File Commands.
                   1810: * 166 @kbd{v} (@code{vip-find-file}): Files.
                   1811: * 166 @kbd{v} (@code{vip-find-file}): New Commands.
                   1812: * 167 @kbd{w} (@code{vip-forward-word}): Motion Commands.
                   1813: * 170 @kbd{x} (@code{vip-delete-char}): Delete Commands.
                   1814: * 1710 @kbd{y} (@code{vip-command-argument}): Yank Commands.
                   1815: * 1711 @kbd{y R}: Yank Commands.
                   1816: * 1712 @kbd{y r}: Yank Commands.
                   1817: * 1712 @kbd{y y} (@code{vip-yank-line}): Yank Commands.
                   1818: * 1721 @kbd{z RET} (@code{vip-line-to-top}): Viewing the Buffer.
                   1819: * 1721 @kbd{z RET} (@code{vip-line-to-top}): z Command.
                   1820: * 1722 @kbd{z -} (@code{vip-line-to-bottom}): Viewing the Buffer.
                   1821: * 1722 @kbd{z -} (@code{vip-line-to-bottom}): z Command.
                   1822: * 1722 @kbd{z .} (@code{vip-line-to-middle}): Viewing the Buffer.
                   1823: * 1722 @kbd{z .} (@code{vip-line-to-middle}): z Command.
                   1824: * 1723 @kbd{z H} (@code{vip-line-to-top}): Viewing the Buffer.
                   1825: * 1723 @kbd{z H} (@code{vip-line-to-top}): z Command.
                   1826: * 1723 @kbd{z L} (@code{vip-line-to-bottom}): Viewing the Buffer.
                   1827: * 1723 @kbd{z L} (@code{vip-line-to-bottom}): z Command.
                   1828: * 1723 @kbd{z M} (@code{vip-line-to-middle}): Viewing the Buffer.
                   1829: * 1723 @kbd{z M} (@code{vip-line-to-middle}): z Command.
                   1830: * 173 @kbd{@{} (@code{vip-backward-paragraph}): Motion Commands.
                   1831: * 174 @kbd{|} (@code{vip-goto-col}): Motion Commands.
                   1832: * 175 @kbd{@}} (@code{vip-forward-paragraph}): Motion Commands.
                   1833: * 176 @kbd{~} (@code{vip-nil}): Other Vi Commands.
                   1834: * 177 @kbd{DEL} (@code{vip-delete-backward-char}): Delete Commands.
                   1835: 
                   1836: 
                   1837: Concept Index
                   1838: *************
                   1839: 
                   1840: * Menu:
                   1841: 
                   1842: * address: Ex Commands.
                   1843: * buffer: Basic Concepts.
                   1844: * buffer: Buffers and Windows.
                   1845: * buffer name completion: Buffers and Windows.
                   1846: * count: Numeric Arguments.
                   1847: * current buffer: Buffers and Windows.
                   1848: * default directory: Files.
                   1849: * emacs mode: Modes in VIP.
                   1850: * end (of buffer): Basic Concepts.
                   1851: * expanding (region): Modifying Commands.
                   1852: * file name completion: Files.
                   1853: * flag: Ex Command Reference.
                   1854: * global keymap: Basic Concepts.
                   1855: * insert mode: Modes in VIP.
                   1856: * keymap: Basic Concepts.
                   1857: * line commands: Modifying Commands.
                   1858: * local keymap: Basic Concepts.
                   1859: * local keymap: Customizing Key Bindings.
                   1860: * looking at: Basic Concepts.
                   1861: * magic: Ex Commands.
                   1862: * mark: Basic Concepts.
                   1863: * mark ring: Mark Commands.
                   1864: * mode: Basic Concepts.
                   1865: * mode line: Modes in VIP.
                   1866: * modified (buffer): Buffers and Windows.
                   1867: * number register: Put Back Commands.
                   1868: * numeric arguments: Numeric Arguments.
                   1869: * point: Basic Concepts.
                   1870: * point commands: Modifying Commands.
                   1871: * region: Basic Concepts.
                   1872: * region: Region Commands.
                   1873: * regular expression: Ex Commands.
                   1874: * regular expression (replacement): Searching and Replacing.
                   1875: * regular expression (search): Searching and Replacing.
                   1876: * selected buffer: Buffers and Windows.
                   1877: * selected tag table: Ex Command Reference.
                   1878: * syntax table: Motion Commands.
                   1879: * tag: Ex Command Reference.
                   1880: * text: Basic Concepts.
                   1881: * vanilla (replacement): Searching and Replacing.
                   1882: * vi mode: Modes in VIP.
                   1883: * visiting (a file): Files.
                   1884: * window: Basic Concepts.
                   1885: * window: Buffers and Windows.
                   1886: * word: Motion Commands.
                   1887: * yank: Yank Commands.
                   1888: 
                   1889: 
                   1890: Tag table:
                   1891: Node: Top712
                   1892: Node: Survey1690
                   1893: Node: Basic Concepts2168
                   1894: Node: Loading VIP3780
                   1895: Node: Modes in VIP4500
                   1896: Node: Emacs Mode7026
                   1897: Node: Vi Mode7374
                   1898: Node: Insert Mode7675
                   1899: Node: Differences from Vi8304
                   1900: Node: Undoing9291
                   1901: Node: Changing9641
                   1902: Node: Searching10244
                   1903: Node: z Command10952
                   1904: Node: Counts11277
                   1905: Node: Marking11805
                   1906: Node: Region Commands12316
                   1907: Node: New Commands12979
                   1908: Node: New Bindings15804
                   1909: Node: Window Commands17995
                   1910: Node: Buffer Commands18485
                   1911: Node: File Commands18983
                   1912: Node: Misc Commands19374
                   1913: Node: Vi Commands19825
                   1914: Node: Numeric Arguments20581
                   1915: Node: Important Keys21064
                   1916: Node: Buffers and Windows22817
                   1917: Node: Files25047
                   1918: Node: Viewing the Buffer28277
                   1919: Node: Mark Commands30212
                   1920: Node: Motion Commands31078
                   1921: Node: Searching and Replacing36717
                   1922: Node: Modifying Commands39009
                   1923: Node: Delete Commands40427
                   1924: Node: Yank Commands42142
                   1925: Node: Put Back Commands43034
                   1926: Node: Change Commands44472
                   1927: Node: Repeating and Undoing Modifications45498
                   1928: Node: Other Vi Commands46315
                   1929: Node: Commands in Insert Mode50024
                   1930: Node: Ex Commands52115
                   1931: Node: Ex Command Reference53274
                   1932: Node: Customization59890
                   1933: Node: Customizing Constants60357
                   1934: Node: Customizing Key Bindings61709
                   1935: 
                   1936: End tag table

unix.superglobalmegacorp.com

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