home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / editors / vi60a1.arj / VIMANUAL.DOC < prev    next >
Text File  |  1992-01-04  |  135KB  |  3,895 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                         OAK HILL VI (TM) SHAREWARE MANUAL
  7.                       _______
  8.                  ____|__     |               (R)
  9.               --|       |    |-------------------
  10.                 |   ____|__  |  Association of
  11.                 |  |       |_|  Shareware
  12.                 |__|   o   |    Professionals
  13.               -----|   |   |---------------------
  14.                    |___|___|    MEMBER
  15.         
  16.         PLEASE READ THIS LICENSE AGREEMENT AND DISCLAIMER BEFORE USING
  17.         OAK HILL VI SHAREWARE.  USING THE PROGRAM CONSTITUTES YOUR
  18.         ACCEPTANCE OF THE TERMS OF THIS AGREEMENT AND THE ACCOMPANYING
  19.         DISCLAIMER.
  20.                              LICENSE AGREEMENT
  21.     
  22.     1. SHAREWARE:  This is shareware.  You may try this software and
  23.     manual free of charge for thirty days.  If you continue to use the
  24.     software beyond thirty days, you must register with Oak Hill
  25.     software.  The registration fee is $60.  In return for this fee you
  26.     will receive the latest version of the software on disk, a type-set-
  27.     quality printed manual, a registration number, and support by mail.
  28.     
  29.     2. COPYING:  Whether you decide to keep the software or not, you
  30.     may copy the shareware archive file "VI60A1" containing the
  31.     programs, manual, and other files and pass it along to others
  32.     subject to the following restriction: THE ENTIRE SHAREWARE ARCHIVE
  33.     FILE MUST BE COPIED WITHOUT MODIFICATION INCLUDING ALL CONTAINED
  34.     FILES, COPYRIGHT, LICENSE, AND LEGAL NOTATIONS.  The VI60A1 file
  35.     may appear with extension ".ZIP" or ".EXE" or some other extension
  36.     depending on the archiving method, which may differ depending on
  37.     vendor or BBS sysop preferences.
  38.     
  39.     3. CHARGING FEES:  No one other than Oak Hill Software may charge
  40.     any fee for the distribution of Oak Hill Vi (TM) without first
  41.     obtaining authorization from Oak Hill Software Inc at 73 Hillyer
  42.     Circle, Middletown, NJ, 07748, 908-671-8544.  This authorization is
  43.     automatically granted to distributors recognized by the (ASP) as
  44.     adhering to its guidelines for shareware distributors, and such
  45.     distributors may begin offering Oak Hill Vi immediately.
  46.     
  47.     4. COMMERCIAL USERS:  Commercial users of Oak Hill Vi must register
  48.     and pay for their copies of Oak Hill Vi within 30 days of first use
  49.     or their license is withdrawn.  Site-License arrangements may be
  50.     made by contacting Oak Hill Software.
  51.       
  52.                                   DISCLAIMER
  53.     
  54.     THIS SOFTWARE AND ITS ACCOMPANYING REFERENCE MATERIAL ARE
  55.     DISTRIBUTED "AS IS", WITHOUT WARRANTY AS TO THEIR PERFORMANCE,
  56.     MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE.  THE ENTIRE
  57.     RISK AS TO THE RESULTS AND PERFORMANCE OF THE PROGRAM IS ASSUMED BY
  58.     THE USER.
  59.     
  60.     NEITHER OAK HILL SOFTWARE, NOR ANYONE WHO SUPPLIES COPIES OF THE
  61.     OAK HILL VI SOFTWARE OR MANUAL, SHALL BE LIABLE FOR INDIRECT,
  62.     SPECIAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OF THE
  63.     PROGRAM OR MANUAL.
  64.  
  65.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  66.  
  67.  
  68.  
  69.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 2
  70.  
  71.  
  72.     
  73.                OAK HILL VI SHAREWARE REGISTRATION FORM
  74.     
  75.     REMINDER:  THIS IS SHAREWARE.  IT IS NOT FREE.  If you continue to
  76.     use the software beyond your 30-day free-trial period, you must
  77.     register.  If you register you will receive the latest version of
  78.     the program on disk, a type-set-quality printed manual, and a
  79.     registration number that allows you to receive support-by-mail.
  80.     
  81.     To register, please fill out this form and mail it with check or
  82.     money order for $60 (US) to Oak Hill Software at the address below.
  83.     Please do not send cash.
  84.     
  85.     NAME:__________________________________________________________
  86.     
  87.     COMPANY:_______________________________________________________
  88.     
  89.     ADDRESS:_______________________________________________________
  90.     
  91.     CITY, STATE, ZIP:______________________________________________
  92.     
  93.     PROGRAM OBTAINED FROM:_________________________________________
  94.     
  95.     COMPUTER BRAND & MODEL:________________________________________
  96.     
  97.     DISK SIZE PREFERRED (5-1/4 or 3-1/2):___________________________
  98.     
  99.     WHERE YOU HEARD ABOUT OAK HILL VI:_____________________________
  100.     
  101.     TODAY'S DATE: _________________________________________________ 
  102.     
  103.     
  104.     (6.0A CBIP 92-01-01)               Oak Hill Software
  105.                                       73 Hillyer Circle
  106.                                     Middletown, NJ 07748
  107.                                     908-671-8544
  108.     
  109.     COMMENTS OR QUESTIONS:_____________________________________________
  110.     
  111.     ___________________________________________________________________
  112.     
  113.     ___________________________________________________________________
  114.     
  115.     ___________________________________________________________________
  116.     
  117.     ___________________________________________________________________
  118.     
  119.     ___________________________________________________________________
  120.     
  121.     ___________________________________________________________________
  122.     
  123.     ___________________________________________________________________
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  132.  
  133.  
  134.  
  135.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 3
  136.  
  137.  
  138.     
  139.                               CONTENTS
  140.     
  141.     ====================================================================
  142.     
  143.      1.0 INTRODUCTION ..............................................  4
  144.          1.1 GETTING STARTED .......................................  6
  145.          1.2 STANDARD AND COMPACT MODELS OF OAK HILL VI.............  6
  146.          1.3 FILE NAMING AND EDITING MULTIPLE FILES ................  8
  147.          1.4 SPECIAL FEATURES FOR LAPTOP PORTABLES .................  8
  148.          1.5 ACKNOWLEDGMENTS .......................................  9
  149.          1.6 REVISIONS, BUGS, AND NEW FEATURES .....................  9
  150.     
  151.      2.0 COMMAND SUMMARY ........................................... 11
  152.          2.1 MOVING AROUND IN YOUR FILE ............................ 11
  153.          2.2 FINDING TEXT PATTERNS ................................. 15
  154.          2.3 INSERTING AND APPENDING TEXT .......................... 17
  155.          2.4 DELETING TEXT ......................................... 17
  156.          2.5 CHANGING TEXT ......................................... 18
  157.          2.6 YANKING (COPYING) TEXT INTO YANK/DELETE BUFFER ........ 21
  158.          2.7 OTHER TEXT MODIFICATION COMMANDS ...................... 22
  159.          2.8 WRITING, READING AND EXITING COMMANDS ................. 27
  160.          2.9 OPTION-SETTING AND OTHER COMMANDS ..................... 31
  161.          2.10 IBM EDIT KEYS ........................................ 39
  162.  
  163.      3.0 LINE RANGE SPECIFICATION .................................. 41
  164.  
  165.      4.0 TEXT FILL AND CENTERING FEATURES .......................... 42
  166.          4.1 TEXT FILL FEATURE ..................................... 42
  167.          4.2 TEXT CENTERING FEATURE................................. 44
  168.  
  169.      5.0 SETUP FILE "EXRC" AND THE "EXINIT" ENVIRONMENT VARIABLE ... 45
  170.  
  171.      6.0 MEMORY AND FILE SIZE CONSIDERATIONS ....................... 47
  172.  
  173.       7.0 "SLICE" UTILITY PROGRAM ................................... 49
  174.  
  175.      8.0 "PAGE" TEXT PROCESSING PROGRAM ............................ 51
  176.  
  177.      9.0 OAK HILL Vi (TM) AND UNIX (TM ) Vi ........................ 53
  178.     
  179.      10.0 MISCELLANEOUS INFORMATION ................................ 53
  180.     
  181.      11.0 COMMAND INDEX AND QUICK REFERENCE ........................ 57
  182.     
  183.     ====================================================================
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  198.  
  199.  
  200.  
  201.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 4
  202.  
  203.  
  204.                 
  205.     1.0 INTRODUCTION
  206.     ======================================================================
  207.         Thank you for trying Oak Hill Vi (TM). This reference document
  208.         introduces the program and lists the commands available on the
  209.         current version.
  210.  
  211.         Oak Hill Vi is designed to work on the IBM PC/XT/AT, IBM PS/2,
  212.         and virtually all IBM Compatibles.  (See following section for some
  213.         possible exceptions.)
  214.  
  215.         Oak Hill Vi provides a large subset of the the standard UNIX
  216.         (UNIX is a trademark of AT&T) vi editor capabilities, and within
  217.         that subset attempts to mimic the command syntax and operation of
  218.         the UNIX vi editor as closely as possible.  It also provides
  219.         paragraph formatting, line centering, and case conversion features
  220.         not found in standard UNIX vi.
  221.  
  222.         If you do not already know how to use a vi editor, a good way to
  223.         learn is to work through the commands on a practice file.  Don't be
  224.         intimidated by the long list of commands -- no one uses all of
  225.         them, and many are just synonyms for other commands.  If you are
  226.         uncertain which commands to learn first, we recommend that you
  227.         start with those that marked with an arrow "->" in the margin.
  228.         While editing preferences vary from person to person, these are
  229.         among the most commonly used vi commands.  Whether you are a
  230.         beginner or an advanced user, you should find the Command Index
  231.     and Quick Reference in Section 11 to be useful.
  232.         
  233.         Beginners who would like a formal tutorial should consult standard
  234.         UNIX literature and primers on vi.  One good source is "Editing
  235.         in a UNIX Environment -- The vi/ex Editor", by Mohammed el Lozy,
  236.         Prentice Hall, 1985.
  237.     
  238.     
  239.     REMINDER:  THIS IS SHAREWARE.  IT IS NOT FREE.  If you continue to
  240.     use the software beyond your 30-day free-trial period, you must
  241.     register.  If you register you will receive the latest version of
  242.     the program on disk (with no shareware reminder notices or pauses),
  243.     a type-set-quality printed manual, and a registration number that
  244.     allows you to receive support-by-mail.  See the registration form
  245.     above.
  246.     
  247.     Whether or not you continue to use the software (and therefore
  248.     register), you are free to pass along the shareware archive file
  249.     VI60A1.XXX to others or to upload it to any bulletin board system
  250.     (BBS).  Note that the ".XXX" extension may be ".ZIP" or ".EXE" or
  251.     some other extension depending on the archiving method preferences
  252.     of vendors or BBS sysops.  Note also that you may pass along ONLY
  253.     the original unmodified VI60A1 file.  If you do not have that file,
  254.     you may download it from the CompuServe IBMAPP Forum, Text Editor
  255.     section.  It is the intention of Oak Hill Software to keep an
  256.     updated shareware "ZIP" file in that location.
  257.     
  258.     A Commercial shrink-wrap version of Oak Hill Vi, called
  259.     "Personal Vi" is available in a standard shrink-wrap software
  260.     binder from Advantage Software, 1-800-333-3141, Master Card &
  261.     Visa accepted.  Corporate purchasers may call Voyager/Corsoft
  262.  
  263.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  264.  
  265.  
  266.  
  267.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 5
  268.  
  269.  
  270.     at 908-389-1700.  Or you may call Oak Hill Software directly
  271.     at 908-671-8544.
  272.     
  273.     NOTICE: Oak Hill Software, Inc. is a member of the Association of
  274.     Shareware Professionals (ASP).  ASP wants to make sure that the
  275.     shareware principle works for you.  If you are unable to resolve a
  276.     shareware-related problem with an ASP member by contacting the
  277.     member directly, ASP may be able to help.  The ASP Ombudsman can
  278.     help you resolve a dispute or problem with an ASP member, but does
  279.     not provide technical support for members' products.  Please write
  280.     to the ASP Ombudsman at 545 Grover Road, Muskegon MI 49442-9427or
  281.     send a CompuServe message via easyplex to ASP Ombudsman 70007,3536
  282.                     
  283.                     Oak Hill Software, Inc.
  284.                     73 Hillyer Circle
  285.                     Middletown, NJ 07748
  286.                     908-671-8544
  287.     
  288.                               _______
  289.                          ____|__     |               (R)
  290.                       --|       |    |-------------------
  291.                         |   ____|__  |  Association of
  292.                         |  |       |_|  Shareware
  293.                         |__|   o   |    Professionals
  294.                       -----|   |   |---------------------
  295.                            |___|___|    MEMBER
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  330.  
  331.  
  332.  
  333.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 6
  334.  
  335.  
  336.     1.1 GETTING STARTED
  337.     -------------------------------------------------------------- 
  338.     To get started, simply copy the shareware file VI60A1.ZIP to a
  339.     convenient directory and use an unzipping program (such as PKUNZIP)
  340.     to extract the files listed in the table below.  If you have the
  341.     self-extracting shareware file VI60A1.EXE, you need only execute
  342.     this file to extract the files listed below.  If VI60A1 appears
  343.     with some other extension, follow the instructions of the BBS sysop
  344.     or vendor from whom you obtained the file.
  345.  
  346.     FILE           PURPOSE
  347.     -----------------------------------------------------------
  348.     VIMANUAL.DOC   This manual text file
  349.  
  350.     VI_STD.EXE     Oak Hill Vi Standard Model (Video-RAM version)
  351.     VI_CMP.EXE     Oak Hill Vi Compact Model (ANSI.SYS version)
  352.     
  353.     EXRC.SMP       Sample IBM/Compatible Setup File 
  354.     VIHELP.TXT     Text File Needed For On-Line Help
  355.  
  356.     SLICE.EXE      A utility program to help view and "slice up" 
  357.                       large files (Section 6)
  358.     PAGE.EXE       A utility program to produce "paged" 
  359.                       output for simple word processing (Section 7)
  360.     CR_CRLF.EXE    A utility program to convert non-standard
  361.                           text files to standard DOS ASCII files
  362.     TRANS.PVI      Sample character translation table for use
  363.                        with PAGE.EXE
  364.     EXTASCII.TBL   File containing table of extended ASCII characters
  365.                       128 through 255 (decimal)
  366.     EXTASCII.MP!   Sample "map!" keyboard macros for non-English 
  367.                       character support
  368.  
  369.     VIREADME.DOC   File containing latest Oak Hill Vi information
  370.     VENDOR.DOC     File with information for software distributors
  371.     SYSOPBBS.DOC   File with information for BBS Sysops
  372.     PACKING.LST    File with list of files included in VI60A1
  373.  
  374.         REGISTER.DOC   File with form and information on registering
  375.     
  376.         For IBM and most compatible computers, simply copy VI_STD.EXE into
  377.         your working directory or "BIN" directory and give it a convenient
  378.         name such as VI.EXE.  We recommend that you also copy the sample
  379.         EXRC file provided, although it is not required.
  380.  
  381.         For example, for an IBM PC/XT/AT, PS/2 or compatible, assuming
  382.         the expanded files are on a disk in drive A and your hard disk
  383.         is drive C, the commands would be
  384.  
  385.         COPY  A:VI_STD.EXE C:\BIN\VI.EXE
  386.         COPY  A:EXRC.SMP C:\BIN\EXRC
  387.         COPY  A:VIHELP.TXT C:\BIN\VIHELP.TXT
  388.  
  389.         To edit a file called "foo", simply issue the command "VI FOO".
  390.  
  391.         If you have difficulty making VI_STD.EXE work, it could be
  392.         that your computer is a (now-rare) machine that is not
  393.         video-RAM compatible with the IBM.  In that case, first try
  394.  
  395.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  396.  
  397.  
  398.  
  399.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 7
  400.  
  401.  
  402.         putting the command ":set vid=bios" in your EXRC file.  This
  403.         will used BIOS commands instead of video-RAM commands.  If
  404.         that fails, try the VI_CMP.EXE version as outlined below.
  405.         This version uses the ANSI.SYS driver and should work with any
  406.         machine ever advertised as "IBM Compatible".  If you have
  407.         continued difficulty, please contact Oak Hill Software.
  408.         
  409.     
  410.     1.2 STANDARD AND COMPACT MODELS OF OAK HILL VI
  411.     ---------------------------------------------------------------------
  412.     In most cases you should use the Standard Model of Oak Hill Vi,
  413.     VI_STD.EXE.  The Standard Model produces fast screen updates
  414.     and allows you to edit large files (up to 250,000 characters).
  415.     However, in some situations, you may prefer the Compact Model, as
  416.     described below.
  417.  
  418.     The Compact Model, VI_CMP.EXE, contains all the commands and
  419.     features of the Standard Model (except 43/50 line display
  420.     capability), while occupying 35% to 40% less disk space.  This can
  421.     be an advantage if disk space is at a premium, as it is in some
  422.     laptop computers with RAM disks.  The Compact Model may also be the
  423.     appropriate choice if you plan to use Oak Hill Vi in conjunction
  424.     with Terminate-and-Stay-Resident programs (see Section 6.0).
  425.     Furthermore, the Compact Model should work with any computer that
  426.     is advertised as "IBM-Compatible", including older machines that
  427.     may not be 100% compatible with the IBM video RAM.  
  428.  
  429.     The disadvantages of the Compact Model are that (1) it cannot edit
  430.     files as large as those for the Standard Model, (2) it produces
  431.     slower screen updates than the Standard Model, and (3) it takes
  432.     longer to load and execute than the Standard Model.
  433.  
  434.     To use the Compact Model, you MUST have the line
  435.  
  436.         DEVICE=ANSI.SYS
  437.  
  438.     in a CONFIG.SYS file in the root directory of the MS-DOS disk you
  439.     use to boot your system. Likewise, the driver ANSI.SYS, supplied
  440.     with your DOS disk, must be in that same directory.
  441.  
  442.     A simple way to add the required line to CONFIG.SYS is to enter the
  443.     root directory on the disk that you use to boot your system and
  444.     enter the following:
  445.  
  446.         type con >> config.sys
  447.         device=ansi.sys
  448.         ctl-z
  449.  
  450.     (The last line is a single "control-Z" character). This will append
  451.     the necessary line to an existing CONFIG.SYS file (or create a
  452.     CONFIG.SYS file if one does not exist).
  453.  
  454.     Oak Hill Vi does all editing on buffers stored in a core
  455.     memory "heap".  Except when reading and writing files, accessing
  456.     the "help" capability, or when using external filters via the '!'
  457.     command, the program does not access disk storage.  This has the
  458.     advantage of making the program very fast, as well as reducing the
  459.     power consumption and noise level in battery-powered lap-top
  460.  
  461.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  462.  
  463.  
  464.  
  465.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 8
  466.  
  467.  
  468.     portable computers with floppy disk drives.  It has the
  469.     disadvantage of limiting the maximum-size file you can edit.
  470.  
  471.     The maximum file sizes that can be edited with the two models are 
  472.     as follows --
  473.  
  474.                    Approximate        Available
  475.             Max File Size        Machine Memory
  476.     ---------------------------------------------------------
  477.     Standard Model    250,000 characters    640K bytes
  478.     Compact Model     35,000 characters    140K bytes
  479.  
  480.     The two Models are identical except for the maximum amount of
  481.     memory "heap" that each program can manage for buffer storage of
  482.     the file you are editing. Because the Compact Model addresses
  483.     memory with 16-bit pointers, it can address no more than 64K of
  484.     heap. This makes the program more compact to store than on the
  485.     Standard Model. The Standard Model uses 32-bit pointers to address
  486.     memory, making it larger to store.  The Compact Model saves still
  487.     more space by using a special encoding algorithm to reduce the size
  488.     of the .EXE file.  It takes slightly longer to load because it must
  489.     first "expand" itself to a normal .EXE file.
  490.  
  491.     The Standard Model requests memory from DOS only as it is needed to
  492.     accommodate your file. You do not need 640K to run the Standard Model
  493.     unless you are editing very large files! The Compact Model requests
  494.     64K of memory as soon as it is loaded.
  495.  
  496.     For extended editing on a very large file, it is good practice with
  497.     any editor to cut the file into smaller segments. Public-domain
  498.     "SPLIT" utilities or the "SLICE" utility provided with Oak Hill Vi
  499.     helps you do that. See Section 7.
  500.         
  501.     
  502.     1.3 FILE NAMING AND EDITING MULTIPLE FILES
  503.     ---------------------------------------------------------------------
  504.         When you issue the command "VI FILENAME", you may list more than
  505.         one FILENAME (separated by spaces) and you may use DOS file name
  506.         conventions, including the use of "wildcard" characters like '*'
  507.         and '?'.  If more than one file is implied, as it might be in "VI
  508.         *.C" for example, you may edit each of these in turn using the
  509.         ":n<cr>" command.  
  510.         
  511.         You may see the list of files in the queue with the ":args<cr>"
  512.         command -- the current file name will be listed with square
  513.         brackets around it.  You may return to the first file in the queue
  514.         with the ":rew<cr>" command, and you may edit any file without
  515.         disturbing the queue with the ":e filename<cr>" command.  Any
  516.         number of files can be placed in the editing queue.
  517.         
  518.         If you enter the command ":n FILENAME<cr>", you will establish
  519.         a file name queue, and the first file in the FILENAME list will 
  520.         be loaded and ready for editing.
  521.  
  522.  
  523.         1.4 SPECIAL FEATURES FOR LAPTOP PORTABLES
  524.     ---------------------------------------------------------------------
  525.         If you are using Oak Hill Vi on a laptop portable, you should
  526.  
  527.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  528.  
  529.  
  530.  
  531.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 9
  532.  
  533.  
  534.         make special note of two user-requested features that have proven
  535.         very popular.
  536.  
  537.         First, the ":set nobeep" option allows you to replace the usual vi
  538.         audible beep tone with a highlighted "BEEP!" flag at the bottom of
  539.         your screen.  This makes it easier to use your laptop on an
  540.         airplane where the beep may be difficult to hear, or in a meeting
  541.         room where an audible beep would disturb others in the room.
  542.  
  543.         Second, on some laptops that use non-backlit LCD displays (like the
  544.         original Toshiba 1000), it can be difficult to find the flashing
  545.         underscore cursor on the screen, especially when the ambient
  546.         lighting is poor.  The ":set cursor = box" option allows you to
  547.         substitute a flashing box cursor for the underscore -- this is much
  548.         easier to find.  The default cursor is an underscore in command mode
  549.         and a box cursor in input mode.
  550.  
  551.         If you find yourself making frequent use of these or other options,
  552.         don't forget to install the commands in a EXRC file so that they
  553.         will be automatically invoked every time you start Oak Hill Vi.
  554.         See Section 5.0.
  555.         
  556.     1.5 ACKNOWLEDGMENTS
  557.     ---------------------------------------------------------------------
  558.     
  559.     Oak Hill Vi uses a modified version of Henry Spencer's public-domain 
  560.     regular expression matching routines. All other code in Oak Hill Vi 
  561.     is original.
  562.     
  563.     Oak Hill Vi would never have been completed had it not been
  564.     for an enthusiastic group of users and "beta-testers".  In
  565.     particular, Rich Baseil, Rich Ditch, Wayne Felts, Bill Mayer,
  566.     Ron McConnell, Bob Lawrence, Nick Leverton, Mike Slomin, and
  567.     Mitch Wyle provided valuable comments.
  568.         
  569.     
  570.     1.6 REVISIONS, BUGS, AND NEW FEATURES
  571.     ---------------------------------------------------------------------
  572.     Based on requests fro users, version 6.0 of Oak Hill Vi
  573.     contains many revisions and new features since the last
  574.     release of Oak Hill Vi (Versions 5.6 and 5.7).  Among these
  575.     are:
  576.     
  577.     . 43/50-line capability for EGA/VGA machines
  578.     . On-line help
  579.     . Improved macro capabilities, including full map, map!, and abbrev
  580.     . Extended and faster regular expression matching
  581.     . Additional :ex commands, including :e #
  582.     . Tags capability
  583.     . Redefinable cursor-control keys
  584.     . Support for full 8-bit ASCII character set (includes international
  585.          characters, line-drawing set, etc.)
  586.     . Register commands @x and @@
  587.     . Video control via direct Video-RAM or BIOS routines
  588.     . Improved cursor appearance (clean underscore or box on all machines)
  589.     . U, ctrl-^, [[, ]], and other vi commands added
  590.     
  591.         If you find a bug in the program or you would like to see a feature
  592.  
  593.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  594.  
  595.  
  596.  
  597.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 10
  598.  
  599.  
  600.         added to the program, please let us know by mail.  Please supply as
  601.         much information about bugs as you can.  (It cannot be investigated
  602.         here if we can't recreate it!)  If you are among the first three
  603.         users to find a bug that is corrected in a later version, or among
  604.         the first three to make a suggestion that is incorporated in a
  605.         later version, you will receive a free copy of the revised version.
  606.  
  607.                         Oak Hill Software
  608.                         73 Hillyer Circle
  609.                         Middletown, NJ 07748
  610.                         908-671-8544
  611.                 
  612.                               _______
  613.                          ____|__     |               (R)
  614.                       --|       |    |-------------------
  615.                         |   ____|__  |  Association of
  616.                         |  |       |_|  Shareware
  617.                         |__|   o   |    Professionals
  618.                       -----|   |   |---------------------
  619.                            |___|___|    MEMBER
  620.                 
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  660.  
  661.  
  662.  
  663.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 11
  664.  
  665.  
  666.     2.0 COMMAND SUMMARY
  667.     ======================================================================
  668.         In the list below, many of the commands may be preceded by an
  669.         optional repetition number.  To do so is the equivalent of entering
  670.         the command n times.  For example, the command "4h" will move the
  671.         cursor left four characters instead of just one.  The syntax
  672.         of these commands is illustrated in each case with the example
  673.         of n=4.
  674.     
  675.         <ctl-X> indicates that the control key is to be held down at the
  676.     ^X      same time the indicated character X is depressed.  An
  677.         alternative way of showing this is with the notation ^X. 
  678.                 
  679.         <cr> denotes a carriage return.  
  680.         
  681.         <sp> denotes a space
  682.         
  683.         <esc> denotes an escape character
  684.         
  685.         Items enclosed in [] brackets are optional.
  686.  
  687.     A "white" or "white space" character is a space or tab character.
  688.         
  689.      -> Commands that are marked with an arrow "->" in the left margin are
  690.         the most commonly used vi commands.  If you are a beginner, we
  691.         recommend that you practice these commands first.
  692.  
  693.     2.1 MOVING AROUND IN YOUR FILE
  694.     ----------------------------------------------------------------------
  695.      -> h  4h           Move cursor left 1 or 4 characters on current line
  696.      -> l  4l           Move cursor right 1 or 4 characters on current line
  697.      -> k  4k           Move cursor up 1 or 4 lines in current column
  698.      -> j  4j           Move cursor down 1 or 4 lines in current column
  699.     
  700.      -> 0        Move cursor to first character in current line
  701.      -> $        Move cursor to last character in current line
  702.      
  703.         |  4|           Move cursor to char closest to 1st or 4th column
  704.     
  705.                  Note: In the commands below: a "word" is a
  706.                  string of characters separated by white space
  707.                  or by punctuation marks.  A "WORD" is a string
  708.                  of characters separated by white space.
  709.                  
  710.      -> w  4w        Move ahead 1 or 4 words 
  711.      -> W  4W        Move ahead 1 or 4 WORDS
  712.     
  713.      -> b  4b        Move back 1 or 4 words 
  714.      -> B  4B        Move back 1 or 4 WORDS
  715.     
  716.      -> e  4e        Move ahead to 1st or 4th end-of-word character
  717.      -> E  4E        Move to end of 1st or 4th end-of-WORD character
  718.     
  719.      -> <ctl-D> 8<ctl-D>
  720.                   Scroll down lines
  721.      -> <ctl-U> 8<ctl-U>
  722.                   Scroll up lines
  723.                 The default number of lines scrolled is
  724.  
  725.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  726.  
  727.  
  728.  
  729.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 12
  730.  
  731.  
  732.                 half the screen size in lines (e.g, 12
  733.                 lines for a 25-line screen).  If an
  734.                 integer, for example 8, precedes the
  735.                 command, the number of lines scrolled will
  736.                 be 8 and the default thereafter will be 8.
  737.                 If the screen size is changed (with the
  738.                 ":set lines" command), the number will be
  739.                 reset to the default.  In the current
  740.                 version, the integer can be no larger than
  741.                 larger than half the screen size in lines.
  742.                 If a larger value of n is specified, it
  743.                 will be reduced to half the screen size.
  744.     
  745.      -> <ctl-F>    4<ctl-F>    
  746.                  Jump ahead 1 or 4 screenfulls (when jumping 1 
  747.                      screenfull, retain 2 lines for continuity)
  748.      -> <ctl-B> 4<ctl-B>        
  749.                  Jump back 1 or 4 screenfulls (when jumping 1
  750.                      screenfull, retain 2 lines for continuity)
  751.     
  752.      -> G        Jump ahead to end of file
  753.     nG        Jump directly to line number n
  754.     
  755.      -> 'x        Jump to start of line marked "x" (see "m" command)
  756.     `x        Like 'x but also jumps to marked cursor location
  757.     
  758.         ''        Jump to start of line that cursor was on before last 
  759.                 "big move" (more than a screenfull away)
  760.     ``        Like '' but also jumps to marked cursor location
  761.                 within the line
  762.     
  763.     -  4-        Move up 1 or 4 lines to 1st non-white char in line
  764.     +  4+        Move down 1 or 4 lines to first non-white character
  765.  
  766.     ^        Move to first non-white character in current line
  767.     
  768.     <cr>  4<cr>    Move down 1 or 4 lines to 1st non-white char in line
  769.  
  770.     <sp>  4<sp>    Move right 1 or 4 chars on current line (same as "4l")
  771.     
  772.             Note: In the commands below: 
  773.                           A "word" is a string of letters separated by 
  774.                             white space or by punctuation marks.
  775.                   A "WORD" is a string of letters separated by
  776.                     white space.
  777.                     
  778.     )  4)        Move ahead 1 or 4 sentences
  779.     (  4(        Move back 1 or 4 sentences
  780.     
  781.                   Note: A '.' followed by two spaces or a
  782.                   '.' as the last non-white character on a
  783.                   line is interpreted as the end of a
  784.                   sentence.  This search command does not
  785.                   wrap around the beginning or end of the
  786.                   file.
  787.             
  788.     }  4}        Move ahead 1 or 4 paragraphs
  789.     {  4{        Move back 1 or 4 paragraphs
  790.  
  791.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  792.  
  793.  
  794.  
  795.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 13
  796.  
  797.  
  798.     
  799.                 Note: A paragraph is a section of text 
  800.                 delimited by blank lines, the start or 
  801.                 end of a file, lines that begin with a 
  802.                 space or any of the characters: .-_=*
  803.                 or a <ctl-X>.
  804.                 
  805.     ]] 4]]        Move ahead 1 or 4 sections
  806.     [[ 4[[        Move back 1 or 4 sections
  807.     
  808.                 Note: A "section" begins on a line that has
  809.                 a '{' character in the first position.  A
  810.                 section also begins on any line that has a
  811.                 '.' character in the first position and is
  812.                 followed by a pair of characters from the
  813.                 "sections" string.  By default this string
  814.                 is "SHNHH HU".  Thus a section would begin
  815.                 a line that starts with ".SH", or ".HU", or
  816.                 ".H".  You may change the default with the
  817.                 ":set sections" command.
  818.     
  819.                 
  820.     
  821.     <ctl-E> 4<ctl-E>
  822.             Scroll down 1 or 4 lines, keeping current 
  823.                 cursor position if possible
  824.     <ctl-Y> 4<ctl-Y>
  825.             Scroll up 1 or 4 lines, keeping current cursor 
  826.                 position if possible
  827.     
  828.     H        Jump to first line on screen
  829.     M        Jump to middle line on screen
  830.     L        Jump to last line on screen
  831.     
  832.     z<cr>           Redraw screen with current line at top of screen.
  833.     z+        Same as above.
  834.     z.                Redraw screen with current line at middle of screen.    
  835.     z-                Redraw screen with current line at bottom of screen.
  836.                 If an integer, for example 6, precedes any
  837.                 of the three 'z' commands above, any of 
  838.                 the three commands above, the screen will 
  839.                 be drawn about line <n> rather than 
  840.                 the current line.
  841.                 '?', the search direction will be reversed.
  842.     
  843.     %        Starting from either a ( or { character, jump 
  844.                 forward to the matching ) or }.  Starting 
  845.                 from ) or } jump back to the matching ( or {.
  846.                 Any of the characters (){} that are within 
  847.                 quotation marks are ignored.
  848.     
  849.     :[range]p<cr>        Print command.  Prints all lines in 
  850.                     specified range.
  851.     
  852.                 EXAMPLES:
  853.                 :g/string/p<cr>    prints all lines that 
  854.                             contain "string"
  855.                 :.,$p<cr>    prints all lines from cursor 
  856.  
  857.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  858.  
  859.  
  860.  
  861.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 14
  862.  
  863.  
  864.                             to end of file
  865.                   
  866.     :spec1<cr>    Cursor moves to line number "spec1".  See "LINE RANGE"
  867.                 (Section 3) below for a description of what
  868.                 "spec1" may be.  
  869.                 
  870.                 EXAMPLES:
  871.                     :35<cr>        jump to line 35
  872.                     :$-44<cr>    jump to 44th line 
  873.                                 above last line
  874.                 
  875.                 Note: This is one of a series of "ex" commands
  876.                 that are available in UNIX vi through the
  877.                 colon ":" commands.  This particular command
  878.                 has limited usefulness. The first example above 
  879.                 is equivalent to the vi command "35G", which
  880.                 is quicker to type.  The second command does
  881.                 have some value since it is slightly simpler 
  882.                 than the vi equivalent "G44k".
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  924.  
  925.  
  926.  
  927.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 15
  928.  
  929.  
  930.     2.2 FINDING TEXT PATTERNS
  931.     ----------------------------------------------------------------------
  932.      -> /pattern/<cr>   Jump to next occurrence of string "pattern"
  933.      -> ?pattern?<cr>   Jump to previous occurrence of string "pattern"
  934.                 (If, before you hit the <cr>, your wish 
  935.                 to cancel the pattern search, you can 
  936.                 backspace over the '?' or '/' character 
  937.                 and the cursor will return to the text. 
  938.                 The trailing '/' or '?' after 'pattern' 
  939.                 is optional.)
  940.      -> /<cr>        Jump to next occurrence of last requested "pattern"
  941.      -> ?<cr>        Jump to previous occurrence of last requested "pattern"
  942.                 
  943.             In "pattern" allowable meta characters are:
  944.             
  945.             . matches any character
  946.             ^ matches the beginning of a line
  947.             $ matches the end of line
  948.               
  949.             x* matches zero or more consecutive characters 'x'
  950.             .* matches zero or more occurrences of any character
  951.             
  952.             x\+ matches one or more consecutive characters 'x'
  953.             x\? matches zero or one occurrences of character 'x'
  954.               
  955.             [xyz] matches any single char in the string 'xyz'
  956.             [^xyz] matches any single char except those in 
  957.                 the string 'xyz'
  958.             [a-z] matches any char between 'a' and 'z' inclusive,
  959.             [^a-z] matches any char but those between 'a' and 'z'
  960.               
  961.             \ preceding a meta char removes its meta meaning.
  962.             
  963.             \( \) used to delimit subexpressions; see string
  964.                   substitutions, Section 2.7
  965.                   
  966.             | used to separate "branches"; for example
  967.             
  968.                     /pattern1|pattern2|pattern3/ 
  969.                 
  970.                 will match pattern1, or pattern2, or pattern3.
  971.                 see also Section 2.7
  972.                 
  973.     /pattern/z<cr>    Redraw screen with next occurrence of string "pattern"
  974.     /pattern/z.<cr>     at the top, middle, or bottom of the screen (as
  975.     /pattern/z-<cr>        above).  If the '/' delimiters are replaced by
  976.               
  977.      -> n        Repeat last pattern search
  978.      -> N        Repeat last pattern search but reverse search direction
  979.     
  980.      -> fx  4fx        Move ahead to 1st or 4th occurrence of character 'x' 
  981.                 on current line
  982.      -> Fx  4Fx        Move back to 1st or 4th previous occurrence of 
  983.                 character 'x' on current line
  984.                 
  985.      -> ;  4;        Repeat last fx or Fx command 1 or 4 times
  986.      -> ,  4,          Repeat last fx or Fx command 1 or 4 times, 
  987.      
  988.  
  989.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  990.  
  991.  
  992.  
  993.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 16
  994.  
  995.  
  996.                 but reverse search direction
  997.     tx  4tx        Move ahead to 1st or 4th char preceding next 
  998.                 occurrence of char 'x' on current line
  999.     Tx  4Tx        Move back to 1st or 4th character following previous
  1000.                 occurrence of char 'x' on current line
  1001.     
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1056.  
  1057.  
  1058.  
  1059.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 17
  1060.  
  1061.  
  1062.     2.3 INSERTING AND APPENDING TEXT
  1063.     -----------------------------------------------------------------------
  1064.     
  1065.      -> <esc>        End text modification and return to command mode
  1066.             (See also the ":set esc2<cr>" command)
  1067.  
  1068.      -> u        Undo the last text modification change
  1069.      
  1070.          U        Undo all text modification changes on current line
  1071.                      only.  For example "xxx" will delete three
  1072.                      successive characters.  "U" will undo all
  1073.                      three changes.  This will not work once you
  1074.                      have moved off the line.
  1075.  
  1076.      -> .        Repeat the last text modification change
  1077.  
  1078.      -> a        Append text until <esc>
  1079.      -> A        Append text at end of line until <esc>
  1080.  
  1081.      -> i        Insert text until <esc>
  1082.      -> I        Insert text at beginning of line until <esc>
  1083.  
  1084.      -> o        Open file below current line and insert text until <esc>
  1085.      -> O        Open file above current line and insert text until <esc>
  1086.  
  1087.      -> <ctl-H>        Backspace (and erase) one character 
  1088.                 Some keyboards have an explicit "backspace"
  1089.                 key which you may also use.  On some
  1090.                 keyboards you may also use the "delete"
  1091.                 key.  This varies from machine to machine.
  1092.             
  1093.      -> <ctl-W>        Backspace (and erase) one word
  1094.                 to protect text entered from previous text 
  1095.                 modification commands, neither of these 
  1096.                 commands will backspace beyond the point 
  1097.                 where the currently active text insertion 
  1098.                 code was issued.  Attempting to backspace 
  1099.                 any further causes a "beep".
  1100.  
  1101.     <ctl-V>        Accept next character literally; ignore special meaning
  1102.                 (allows entry of <ctl-H>, <ctl-W>, or 
  1103.                 <esc> char)
  1104.     
  1105.     2.4 DELETING TEXT
  1106.     -----------------------------------------------------------------------
  1107.  
  1108.      -> D        Delete remaining text in current line
  1109.     d$        Delete remaining text in current line
  1110.     
  1111.      -> dd  4dd        Delete 1 or 4 lines
  1112.     
  1113.      -> dG        Delete current line through last line in file
  1114.     
  1115.      -> dw  4dw        Delete ahead 1 or 4 words 
  1116.      -> dW  4dW        Delete ahead 1 or 4 WORDS
  1117.     
  1118.      -> de  4de        Delete 1 or 4 words up to the last char
  1119.      -> dE  4dE        Delete 1 or 4 WORDS up to the last char
  1120.  
  1121.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1122.  
  1123.  
  1124.  
  1125.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 18
  1126.  
  1127.  
  1128.     
  1129.     db  4db        Delete back 1 or 4 words
  1130.     dB  4dB        Delete back 1 or 4 WORDS
  1131.     
  1132.     dl  4dl         Delete 1 or 4 characters
  1133.     
  1134.     dfx 4dfx    Delete characters from cursor position to 1st or 4th
  1135.                 next occurrence of char 'x'
  1136.     dFx 4dFx    Delete characters from cursor position to 1st or 4th
  1137.                 previous occurrence of char 'x'
  1138.                 
  1139.     dtx 4dtx    Delete characters from cursor position up to character 
  1140.                 preceding 1st or 4th next occurrence of char 'x'
  1141.     dTx 4dTx    Delete characters from cursor position to character 
  1142.                 following 1st or 4th previous char 'x'
  1143.     
  1144.     d)  4d)        Delete from cursor position forward to end of 1st
  1145.                 or 4th sentence
  1146.     d(  4d(        Delete from cursor position backward to start 
  1147.                 of 1st or 4th previous sentence
  1148.     d}  4d}        Delete from cursor position forward to end of 
  1149.                 1st or 4th paragraph
  1150.     d{  4d{        (This command is not implemented in current version
  1151.                 of Oak Hill Vi)
  1152.     
  1153.     dj  4dj        Delete current line, or delete current line plus
  1154.                 4 lines below current line
  1155.     dk  4dk        Delete current line, or delete current line plus
  1156.                 4 lines above current line
  1157.     dl  4dl        Delete character at current cursor position (equiv
  1158.                 to command "x"), or delete 4 characters 
  1159.     dh  4dh        Delete character to left of cursor, or delete 4
  1160.                 characters to left of cursor
  1161.                 
  1162.             Note: If you prefer an alternative syntax, you 
  1163.             may invert the integer multiplier and the "d"
  1164.             operator in the above commands.  For example,
  1165.             "d4j" is equivalent to "4dj".
  1166.             
  1167.     d0        Delete from beginning of line through cursor position
  1168.     
  1169.      -> d'x        Delete text delimited by current line and 
  1170.                 line 'x (see "mx" command, Section 2.7)
  1171.     d`x        Delete text delimited by cursor position and 
  1172.                 position `x 
  1173.     
  1174.     d4G        Delete line number 4 through the current line
  1175.     
  1176.     [range]d    Delete lines specified in "range" -- see 
  1177.                 "LINE RANGE" below (Section 3) 
  1178.     
  1179.     2.5 CHANGING TEXT
  1180.     -----------------------------------------------------------------------
  1181.  
  1182.             Note: "Changing" text is like "deleting"
  1183.             text except that as soon as you've deleted
  1184.             the text, the program is in the input mode,
  1185.             waiting for you to type in the replacement text.
  1186.  
  1187.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1188.  
  1189.  
  1190.  
  1191.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 19
  1192.  
  1193.  
  1194.  
  1195.      -> C        Change remaining text in current line
  1196.     c$        Change remaining text in current line
  1197.     
  1198.      -> cc  4cc        Change 1 or 4 lines
  1199.     
  1200.      -> cG        Change current line through last line in file
  1201.     
  1202.      -> cw  4cw        Change 1 or 4 words forward in file 
  1203.      -> cW  4cW        Change 1 or 4 WORDS forward in file
  1204.     
  1205.      -> ce  4ce        Change 1 or 4 words up to the last char
  1206.      -> cE  4cE        Change 1 or 4 WORDS up to the last char
  1207.     
  1208.     cb  4cb        Change 1 or 4 words backward in file
  1209.     cB  4cB        Change 1 or 4 WORDS backward in file
  1210.     
  1211.     cl  4cl         Change 1 or 4 characters
  1212.     
  1213.     cfx  4cfx    Change characters from cursor position to 1st or 4th
  1214.                 next occurrence of char 'x'
  1215.     cFx  4cFx    Change characters from cursor position to 1st or 4th
  1216.                 previous occurrence of char 'x'
  1217.                 
  1218.     ctx  4ctx    Change characters from cursor position up to character 
  1219.                 preceding 1st or 4th next occurrence of char 'x'
  1220.     cTx  4dTx    Change characters from cursor position to character 
  1221.                 following 1st or 4th previous char 'x'
  1222.     
  1223.     c)  4c)        Change from cursor position forward to end of 1st
  1224.                 or 4th sentence
  1225.     c(  4c(        Change from cursor position backward to start 
  1226.                 of 1st or 4th previous sentence
  1227.     c}  4c}        Change from cursor position forward to end of 
  1228.                 1st or 4th paragraph
  1229.     c{  4c{        (This command is not implemented in current version
  1230.                 of Oak Hill Vi)
  1231.     
  1232.     cj  4cj        Change current line, or change current line plus
  1233.                 4 lines below current line
  1234.     ck  4ck        Change current line, or change current line plus
  1235.                 4 lines above current line
  1236.     cl  4cl        Change character at current cursor position (equiv
  1237.                 to command "x"), or change 4 characters 
  1238.     ch  4ch        Change character to left of cursor, or change 4
  1239.                 characters to left of cursor
  1240.                 
  1241.             Note: If you prefer an alternative syntax, you 
  1242.             may invert the integer multiplier and the "c"
  1243.             operator in the above commands.  For example,
  1244.             "c4j" is equivalent to "4cj".
  1245.             
  1246.     c0        Change from beginning of line through cursor position
  1247.     
  1248.      -> c'x        Change text delimited by current line and 
  1249.                 line 'x (see "mx" command, Section 2.7)
  1250.     c`x        Change text delimited by cursor position and 
  1251.                 position `x (see "mx" command, Section 2.7)
  1252.  
  1253.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1254.  
  1255.  
  1256.  
  1257.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 20
  1258.  
  1259.  
  1260.     
  1261.     c4G        Change line number 4 through the current line
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1320.  
  1321.  
  1322.  
  1323.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 21
  1324.  
  1325.  
  1326.     2.6 YANKING (COPYING) TEXT INTO YANK/DELETE BUFFER 
  1327.     -----------------------------------------------------------------------
  1328.     
  1329.                         Note: When you "yank" or "delete" text, you
  1330.                         copy it into a temporary buffer.  You may then
  1331.                         "put" or "paste" (see "p" and "P" commands
  1332.                         below) this text at some other point in the
  1333.                         file.  
  1334.  
  1335.     Y   4Y        Yank remaining text in current line
  1336.      -> yy  4yy        Yank 1 or 4 lines
  1337.     
  1338.      -> y$        Yank remaining text in current line
  1339.     
  1340.      -> yG        Yank current line through last line in file
  1341.     
  1342.      -> yw  4yw        Yank ahead 1 or 4 words 
  1343.      -> yW  4yW        Yank ahead 1 or 4 WORDS
  1344.     
  1345.     ye  4ye        Yank 1 or 4 words up to the last char
  1346.     yE  4yE        Yank 1 or 4 WORDS up to the last char
  1347.     
  1348.     yb  4yb        Yank back 1 or 4 words
  1349.     yB  4yB        Yank back 1 or 4 WORDS
  1350.     
  1351.     yl  4yl         Yank 1 or 4 characters
  1352.     
  1353.     yfx  4yfx    Yank characters from cursor position to 1st or 4th
  1354.                 next occurrence of char 'x'
  1355.     yFx  4yFx    Yank characters from cursor position to 1st or 4th
  1356.                 previous occurrence of char 'x'
  1357.                 
  1358.     ytx  4ytx    Yank characters from cursor position up to character 
  1359.                 preceding 1st or 4th next occurrence of char 'x'
  1360.     yTx  4yTx    Yank characters from cursor position to character 
  1361.                 following 1st or 4th previous char 'x'
  1362.     
  1363.     y)  4y)        Yank from cursor position forward to end of 1st
  1364.                 or 4th sentence
  1365.     y(  4y(        Yank from cursor position backward to start 
  1366.                 of 1st or 4th previous sentence
  1367.     y}  4y}        Yank from cursor position forward to end of 
  1368.                 1st or 4th paragraph
  1369.     y{  4y{        (This command is not implemented in current version
  1370.                 of Oak Hill Vi)
  1371.     
  1372.     yj  4yj        Yank current line, or yank current line plus
  1373.                 4 lines below current line
  1374.     yk  4yk        Yank current line, or yank current line plus
  1375.                 4 lines above current line
  1376.     yl  4yl        Yank character at current cursor position (equiv
  1377.                 to command "x"), or yank 4 characters 
  1378.     yh  4yh        Yank character to left of cursor, or yank 4
  1379.                 characters to left of cursor
  1380.                 
  1381.             Note: If you prefer an alternative syntax, you 
  1382.             may invert the integer multiplier any the "y"
  1383.             operator in the above commands.  For example,
  1384.  
  1385.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1386.  
  1387.  
  1388.  
  1389.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 22
  1390.  
  1391.  
  1392.             "y4j" is equivalent to "4yj".
  1393.             
  1394.     y0        Yank from beginning of line through cursor position
  1395.     
  1396.     y'x        Yank text delimited by curr line and 
  1397.                 line 'x (see "mx" command, Section 2.7)
  1398.     y`x        Yank text delimited by cursor position and 
  1399.                 position `x 
  1400.     
  1401.     y4G        Yank line number 4 through the current line
  1402.     
  1403.     
  1404.     
  1405.     2.7 OTHER TEXT MODIFICATION COMMANDS 
  1406.     -----------------------------------------------------------------------
  1407.     
  1408.      -> r        Replace single character and return to command mode
  1409.  
  1410.      -> R        Replace text on current line ("overstrike") until <esc>
  1411.     
  1412.      -> s  4s        Substitute new characters for current character 
  1413.                 until <esc>
  1414.    
  1415.      -> S  4S           Substitute new characters for current line until <esc>
  1416.     
  1417.      -> x  4x        Delete 1 or 4 characters
  1418.     X  4X        Delete 1 or 4 character before the cursor
  1419.     
  1420.      -> p        Put last deleted/yanked lines below current line
  1421.      -> p        Put last deleted/yanked text after current 
  1422.                 cursor position
  1423.                 
  1424.      -> P        Put last deleted/yanked lines above current line
  1425.      -> P        Put last deleted/yanked text before current 
  1426.                 cursor position 
  1427.                 
  1428.             Note: Whether "text" or "lines" apply in the 
  1429.                 "put" commands above depends on whether
  1430.                 a text string or text lines were yanked,
  1431.                 deleted, or stored into the yank/delete
  1432.                 buffer.
  1433.  
  1434.      -> J        Join the current and following line into a single line
  1435.  
  1436.     ~        Change case of character at cursor location and 
  1437.                 advance to next character. (Undo doesn't 
  1438.                 work for this command; this command is 
  1439.                 its own undo.)
  1440.                 
  1441.     >> 4>>        Shift 1 or 4 lines one tab-shift to the right
  1442.     << 4<<        Shift 1 or 4 lines one tab-shift to the left
  1443.     
  1444.     >adr        Shift from current line through "adr" one tab-shift
  1445.                 to the right
  1446.     <adr        Shift from current line through "adr" one tab-shift
  1447.                 to the left
  1448.                 
  1449.                 EXAMPLES:
  1450.  
  1451.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1452.  
  1453.  
  1454.  
  1455.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 23
  1456.  
  1457.  
  1458.                 
  1459.                 >'a
  1460.                 </howdy/
  1461.                 <73<cr>
  1462.                 
  1463.                 The first example will right-shift each line
  1464.                 of text from the current line through the 
  1465.                 one marked "a" (see the "mark" command).
  1466.                 
  1467.                 The second example will left-shift each 
  1468.                 line of text from the current line through
  1469.                 the one where the string "howdy" appears.
  1470.                 
  1471.                 The third example will left-shift each
  1472.                 line of text from the current line through
  1473.                 line number 73.
  1474.  
  1475.     :abbr [_label] lhs rhs<cr>
  1476.     :unabbr lhs<cr>
  1477.     :abbr<cr>    
  1478.                         Abbreviate 'rhs' with 'lhs' while in input mode.
  1479.                         Every time the string 'lhs' is entered by itself
  1480.                         (surrounded by spaces, tabs, carriage returns, or
  1481.                         punctuation marks like .,!? etc), it will be
  1482.                         replaced by 'rhs', just as if you had typed 'rhs'
  1483.                         instead of 'lhs'.
  1484.         
  1485.             EXAMPLE: If you type --
  1486.         
  1487.                 :abbr rr requirements<cr>
  1488.             
  1489.             then thereafter, while in the input mode, you type
  1490.         
  1491.                 we wrote new rr for the client
  1492.             
  1493.             as soon as the space after 'rr' is typed, the 'rr'
  1494.             will be replaced by 'requirements', leaving you with
  1495.         
  1496.                 we wrote new requirements for the client
  1497.             
  1498.             This capability is good for frequently typed, lengthy
  1499.             words.
  1500.         
  1501.             The :unabbr command cancels the :abbr command with
  1502.             the specified 'lhs'.
  1503.             
  1504.             There is no limit to the number of abbreviations
  1505.             you may have active at any time.  'rhs' and 'lhs'
  1506.             are limited to 127 characters.  You may see the
  1507.             abbreviations you have active by entering
  1508.             ":abbr<cr>" (or simply ":ab<cr>" with no arguments.
  1509.             Finally, ":abbr" may itself be abbreviated to ":ab".
  1510.             
  1511.  
  1512.      -> :[range]s/string1/string2/[g][p]<cr>
  1513.       
  1514.                         String substitution command.  For the range of
  1515.                         lines indicated (see "Line Ranges", Section 3),
  1516.  
  1517.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1518.  
  1519.  
  1520.  
  1521.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 24
  1522.  
  1523.  
  1524.                         substitute first occurrence of string1 with
  1525.                         string2.  If the optional 'g' appears after the '/'
  1526.                         that follows string2, every occurrence of string1
  1527.                         (not just the first) will be replaced by string2.
  1528.             
  1529.             If the 'p' option appears, each altered line
  1530.             will be printed at the bottom of the screen.
  1531.             
  1532.             If no range of lines is indicated, substitutions 
  1533.             will take place on the current line only.  
  1534.  
  1535.             The '/' delimiter character may be any character 
  1536.             that does not appear in string1 or string2.  
  1537.             (The only exception is that if no line specification
  1538.             is supplied, the string delimiter character must 
  1539.             be a '/' to avoid ambiguity).
  1540.             
  1541.             String1 may contain meta characters.  
  1542.             
  1543.             The trailing '/' delimiter after string2 is optional.  
  1544.             
  1545.             A '&' in string2 will be replaced by all of string1.  
  1546.             Use '\&' if you want to insert a literal '&' character. 
  1547.             
  1548.             The "undo" command will "undo" the substitutions
  1549.             made by this command only if there is sufficient
  1550.             room in memory to store the range of lines selected.
  1551.             If there is not sufficient room, the substitutions
  1552.             can still be made, but a warning message will be
  1553.             printed first.
  1554.             
  1555.             EXAMPLES:
  1556.             
  1557.             :s/sam/bill<cr>
  1558.             :%s/bcr/Bell Communications Research/g<cr>
  1559.             :.,$s/^/     /<cr>
  1560.             :'a,'bs/ *$//<cr>
  1561.             :g/howdy/s//doody/gp<cr>
  1562.             
  1563.             The first example will substitute "bill" for 
  1564.             the first occurrence of "sam" on the current line
  1565.             
  1566.             The second example will substitute "Bell Communications
  1567.             Research" for "bcr" for every line in the file.
  1568.             
  1569.             The third example will put five spaces at the 
  1570.             front end of the current line through the last
  1571.             line of the file.
  1572.             
  1573.             The fourth example will remove (by substituting
  1574.             nothing for) all trailing spaces from the end
  1575.             of lines marked 'a' through 'b'.
  1576.             
  1577.             The fifth example will replace all occurrences
  1578.             of "howdy" by "doody" and will print each line
  1579.             altered at the bottom of the screen.
  1580.             
  1581.             If portions of string1 are bracketed by the quoted
  1582.  
  1583.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1584.  
  1585.  
  1586.  
  1587.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 25
  1588.  
  1589.  
  1590.             parenthesis pairs as in
  1591.             
  1592.                 anythinga\(seg1\)anythingb\(seg2\)
  1593.                 
  1594.             then a \1 and \2 in string2 would be replaced by
  1595.             seg1 and seg2 respecitively.  Up to 9 such strings
  1596.             could appear.
  1597.             
  1598.             For example, if the first two lines of text were:
  1599.             
  1600.                 red are roses
  1601.                 blue are violets
  1602.                 
  1603.             Then the command
  1604.             
  1605.                 :1,2s/\(.*\) are \(.*\)/\2 are \1/
  1606.                 
  1607.             would convert the text to:S
  1608.             
  1609.                 roses are red
  1610.                 violets are blue
  1611.                 
  1612.     
  1613.     &        Repeat the last :[range]s command for the current
  1614.             line only.
  1615.  
  1616.     :[range]d<cr>    Deletion command.  Will delete lines in specified
  1617.             range.  
  1618.             
  1619.             EXAMPLES:
  1620.             
  1621.             :/string/d<cr>    deletes next line in which "string"
  1622.                     appears
  1623.             :g/string/d<cr> deletes all lines in which "string"
  1624.                     appears
  1625.             :g/^$/d<cr>    deletes all blank lines
  1626.  
  1627.     :[range]t[spec]<cr>
  1628.  
  1629.             Transfer command.  Copies lines in specified
  1630.             [range] and inserts the copied lines just below
  1631.             the line named in [spec].  This is a UNIX "ed"
  1632.             or "ex" command.  Note you can do the same
  1633.             thing with "yank" and "put" commands.
  1634.             
  1635.             EXAMPLES:
  1636.             
  1637.             :15,20t35<cr>    Copies lines 15 through 20 and
  1638.                     inserts them just below line 35.
  1639.                     
  1640.             :/Sam/,/Bill/t/Dave/<cr>
  1641.                     Copies lines from the one
  1642.                     containing "Sam" through the
  1643.                     one containing "Bill" and
  1644.                     inserts them just below the
  1645.                     line containing "Dave".
  1646.             
  1647.     :[range]m[spec]<cr>     
  1648.  
  1649.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1650.  
  1651.  
  1652.  
  1653.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 26
  1654.  
  1655.  
  1656.  
  1657.             Move command.  Deletes lines in specified
  1658.             [range] and inserts the deleted lines just below
  1659.             the line named in [spec].  This is a UNIX "ed"
  1660.             or "ex" command.  Note you can do the same
  1661.             thing with "delete" and "put" commands.
  1662.             
  1663.             EXAMPLES:
  1664.             
  1665.             :1,.m$<cr>    Deletes lines 1 through the
  1666.                     current line and moves them
  1667.                     to the bottom of the file.
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1716.  
  1717.  
  1718.  
  1719.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 27
  1720.  
  1721.  
  1722.     2.8 WRITING, READING, AND EXITING
  1723.     -----------------------------------------------------------------------
  1724.      -> ZZ        Write out (save) current buffer & quit editor.
  1725.  
  1726.         :x filename    Same as ZZ command, but write buffer to "filename"
  1727.         :x! filename    and quit.  If :x! is used then overwrite "filename"
  1728.                 if it exists.  If "filename" is missing, current
  1729.                 file name is assumed.
  1730.         
  1731.      -> :w<cr>        Write buffer out (save) to default file name.
  1732.     :wq<cr>        Write buffer out (save) to default file name
  1733.                 and quit editor.
  1734.     
  1735.      -> :w filename<cr>    Write buffer out to "filename".  This command will
  1736.                 not overwrite an existing already file 
  1737.                 with the same name. 
  1738.      -> :w! filename<cr>
  1739.             Write buffer out to "filename" unconditionally.  This
  1740.                 command will overwrite an already existing 
  1741.                 file with the same name.
  1742.               
  1743.      -> :q<cr>        Quit editor and return to MS-DOS.  For safety, 
  1744.                 the editor will not quit unless you have 
  1745.                 written out the buffer since the last 
  1746.                 change was made.
  1747.                 
  1748.      -> :q!<cr>        Quit editor unconditionally and return to MS-DOS.
  1749.                 Any editing changes since your last "write"
  1750.                 will be lost.
  1751.  
  1752.      -> :r filename<cr>    Read "filename" into buffer following the current line.
  1753.                      You may use wildcard characters in "filename",
  1754.                      but only the first matching file will be read.
  1755.  
  1756.     :e filename<cr>    Dump current file buffer and edit "filename".  
  1757.                                 No "filename" will cause current filename
  1758.                                 to be used.  For safety, command is
  1759.                                 rejected if the buffer has been altered
  1760.                                 since the last write to disk.  This
  1761.                                 command, as well as "e!"  and "we" will
  1762.                                 clear the (unnamed) yank/delete buffer and
  1763.                                 the buffer used to store the
  1764.                                 repeat-last-command command (".").  You may
  1765.                                 use wildcard characters in "filename", but
  1766.                                 only the first matching file will be
  1767.                                 honored.
  1768.                      
  1769.     :e! filename<cr>
  1770.             Dump current file buffer and edit "filename" 
  1771.                 (unconditionally).
  1772.     :we filename<cr>
  1773.             (NON-UNIX) Write out current buffer to disk, 
  1774.                 dump buffer, and begin editing "filename"
  1775.  
  1776.     :e #<cr>    In any of the :e, :e!, or :we commands, the
  1777.     :e %<cr>        character % is a synonym for the current
  1778.     <ctl>^            file, and # is a synonmym for the previous
  1779.                 file, where the previous file is the file
  1780.  
  1781.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1782.  
  1783.  
  1784.  
  1785.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 28
  1786.  
  1787.  
  1788.                 edited (if any) before the current file.
  1789.                 Note that the command :e # (or equivalently
  1790.                 <ctl>^) will allow you to flip back and
  1791.                 forth between two files of interest. Cursor
  1792.                 positions in each file are preserved.
  1793.                 (Note that on most IBM-type keyboards, the
  1794.                 <ctl>^ is executed by holding down both
  1795.                 the ctl and shift keys and pressing the
  1796.                 '6' key.
  1797.                 
  1798.     :[range]w[>>] filename<cr>    
  1799.             Write [and append] command with optional line range 
  1800.                 specification (see Line Range discussion) -- 
  1801.                 if the '>>' follows the 'w', buffer contents
  1802.                 will be appended to filename.  
  1803.  
  1804.                 EXAMPLES: 
  1805.  
  1806.                     :'a,$w>> george<cr>
  1807.                     :1,.w albert<cr>
  1808.  
  1809.                 The first example will append to file "george" 
  1810.                 the text delimited by line 'a and the 
  1811.                 last line (inclusive).  The second example
  1812.                 will write out the first line through the 
  1813.                 current line to file "albert".
  1814.  
  1815.     vi +[command] file[s]    (Executed from MS-DOS prompt)
  1816.     :e +[command] file[s]     You can invoke Oak Hill Vi with an 
  1817.                 initial command that will be executed 
  1818.                 as soon as your file has been read. 
  1819.             
  1820.                 EXAMPLES:
  1821.             
  1822.                 vi + file    Edit "file" starting at last
  1823.                         line.
  1824.                     
  1825.                 vi +3        Edit "file" starting at line 3
  1826.             
  1827.                 vi +/string file
  1828.                         Edit "file" starting at the 
  1829.                         first line were "string" 
  1830.                         appears
  1831.             
  1832.                 vi +"command" file
  1833.                         Edit "file" and execute 
  1834.                         "command" immediately 
  1835.                         after the file has
  1836.                         been read
  1837.  
  1838.                                 Note that if "string" or "command" contains
  1839.                                 spaces, they should be enclosed in
  1840.                                 quotation marks or Oak Hill Vi will
  1841.                                 confuse the arguments with file names.
  1842.             
  1843.                 EXAMPLE:
  1844.             
  1845.                 vi "+/Now is the time" file
  1846.  
  1847.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1848.  
  1849.  
  1850.  
  1851.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 29
  1852.  
  1853.  
  1854.             
  1855.                         is the correct way to start
  1856.                         editing "file" at the line that
  1857.                         contains the string "Now is 
  1858.                         the time"
  1859.  
  1860.                 All of the above features also work if you
  1861.                 use the :e command from inside the editor.
  1862.                 For example,
  1863.  
  1864.                 :e +3j file<cr>
  1865.  
  1866.                                 will edit "file" starting at line 3.  In
  1867.                                 the current version of Oak Hill Vi,
  1868.                                 however, embedded blanks in the command
  1869.                                 string are not allowed and will cause parts
  1870.                                 of the command string to be interpreted as
  1871.                                 file names.
  1872.             
  1873.     :r <n1> <n2> filename<cr> 
  1874.             (NON-UNIX) Read lines n1 through n2 from filename 
  1875.                 into buffer below current cursor position.
  1876.                 Requires that (1 <= n1 <= n2 <= 32000).  If
  1877.                 n2 is larger than the last line, read will
  1878.                 proceed to end of file.  "$" may be used in
  1879.                 place of n2 to represent 32000.  This
  1880.                 command, combined with write (:w) commands,
  1881.                 is useful for splitting large files into
  1882.                 smaller pieces that Oak Hill Vi can
  1883.                 handle.  (See also the discussion of the
  1884.                 "slice" utility program below.)
  1885.  
  1886.                 EXAMPLE:
  1887.  
  1888.                     :r 100 200 george<cr>
  1889.  
  1890.                 will read lines 100 through 200 of file george
  1891.                 into the buffer.
  1892.                 
  1893.                      You may use wildcard characters in "filename",
  1894.                      but only the first matching file will be read.
  1895.                 
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1914.  
  1915.  
  1916.  
  1917.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 30
  1918.  
  1919.  
  1920.     2.9 OPTION-SETTING AND OTHER COMMANDS
  1921.     -----------------------------------------------------------------------
  1922.             
  1923.     *** OPTION SETTING COMMANDS ***
  1924.     
  1925.     :set all<cr>    Display current setting of all settable options.
  1926.     :set <cr>           Also show the full directory path in which the
  1927.                         EXRC file (if any) was found.
  1928.  
  1929.     :set ai<cr>    Turn on autoindent
  1930.                 While inserting text, automatically copy the
  1931.                 indentation (white space characters) used on
  1932.                 the previous line.  You can backspace over
  1933.                 the indentation characters with <ctl-D>.
  1934.     :set noai<cr>    Turn off autoindent (default)
  1935.  
  1936.     :set aw<cr>    Turn on autowrite (default)
  1937.                 Before escaping to DOS (with :! command) write
  1938.                 the buffer out to disk if it has been altered
  1939.                 since the last save.
  1940.     :set noaw<cr>    Turn off autowrite
  1941.  
  1942.     :set beep<cr>    Have computer speaker sound a "beep" on user errors
  1943.                 (default).
  1944.     :set nobeep<cr> Keep computer speaker silent on errors -- instead 
  1945.                                 flash a "BEEP!" message briefly at the
  1946.                                 bottom of the screen.  This option is
  1947.                                 useful if (for example) you are using a
  1948.                                 laptop machine in a conference room and
  1949.                                 wish to avoid annoying those around you
  1950.                                 with a beeping computer.
  1951.             
  1952.     :set ctr=n<cr>  (NON-UNIX) Set column about which lines will be 
  1953.                 centered when using the ":center" command.  
  1954.                 Default n=40.
  1955.             
  1956.     :set cursor=underscore<cr>
  1957.     :set cursor=box<cr>
  1958.     :set cursor=inbox<cr>
  1959.             (NON-UNIX) Set cursor type.  On some machines, 
  1960.                                 particularly those with LCD displays,
  1961.                                 a simple underscore for the cursor is
  1962.                                 hard to see, so Oak Hill Vi uses a
  1963.                                 "flashing box" cursor as the default.
  1964.                                 On a CRT, the traditional flashing
  1965.                                 underscore is preferred by some users.
  1966.                                 The "inbox" option uses an underscore
  1967.                                 in command mode and a box in input
  1968.                                 mode.  This set command allows the
  1969.                                 user to set to cursor type to match
  1970.                                 his/her preference.  The default is
  1971.                                 the "inbox" option.
  1972.             
  1973.     :set esc2=x<cr>    (NON-UNIX) On some keyboards the escape key is clumsy 
  1974.                                 to reach.  This command allows the
  1975.                                 character 'x' to serve the same purpose,
  1976.                                 where 'x' can be any character.  Reasonable
  1977.                                 choices are <ctl-O> or <ctl-J>.  Caution:
  1978.  
  1979.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  1980.  
  1981.  
  1982.  
  1983.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 31
  1984.  
  1985.  
  1986.                                 If you choose a character that is already
  1987.                                 serving another purpose, for example 'a',
  1988.                                 you will disable that function!  Note that
  1989.                                 <ctl-[> is equivalent to hitting an escape
  1990.                                 key.
  1991.             
  1992.     :set colors=[bright] foreground [on] background<cr>
  1993.  
  1994.             (NON-UNIX) Set foreground and background colors. 
  1995.                 The color names must be chosen as shown 
  1996.                 below.
  1997.         
  1998.                 Available Colors
  1999.                 ------------------
  2000.                 black
  2001.                 red
  2002.                 green
  2003.                 yellow
  2004.                 blue
  2005.                 magenta
  2006.                 cyan
  2007.                 white
  2008.             
  2009.                 To get bold foreground characters, include the
  2010.                 word "bright" before the foreground color name.
  2011.             
  2012.                 Only the first 3 letters of each color name
  2013.                 need or key word need be used, and the "on"
  2014.                 key word is optional.
  2015.             
  2016.                 Valid EXAMPLES:
  2017.             
  2018.                 :set colors = white on blue<cr>
  2019.                 :set colors = bright yellow on red<cr>
  2020.                 :set col bri whi red<cr>
  2021.             
  2022.                                 If colors are not explicitly set, Oak Hill
  2023.                                 Vi will default to the colors being used
  2024.                                 when the program was called.  If the colors
  2025.                                 are explicitly set, Oak Hill Vi (TM) will
  2026.                                 return to the starting colors when the
  2027.                                 program exits.
  2028.  
  2029.     :set ic<cr>    Ignore case (upper/lower) when doing string searches
  2030.     :set noic<cr>   Do not ignore case when doing string searches (default)
  2031.  
  2032.     :set lines=n<cr>
  2033.             (NON-UNIX, LARGE-FILE MODEL ONLY) Resets number of 
  2034.                 lines (n) screen can display.  This number
  2035.                 is not arbitrary; you should choose from
  2036.                 the table below:
  2037.                 
  2038.                 CGA monitors:  25 lines only
  2039.                 EGA monitors:  25 or 43 lines only
  2040.                 VGA monitors:  25 or 50 lines only
  2041.                 
  2042.                 To allow for some trial-and-error testing
  2043.                 on the many monitor types available, Oak
  2044.  
  2045.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2046.  
  2047.  
  2048.  
  2049.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 32
  2050.  
  2051.  
  2052.                 Hill Vi will allow you to specify 25, 43,
  2053.                 or 50 lines on any monitor.  However, your
  2054.                 display may not function properly if you
  2055.                 choose a value other than those indicated
  2056.                 above.  The 25-line mode should work
  2057.                 properly on all monitor types.
  2058.                 
  2059.                 (Note that the Small-File Model supports only
  2060.                 the 25-line mode.)
  2061.             
  2062.     :set magic    Recognize meta characters when doing pattern searches.
  2063.     :set nomagic    Do not recognize meta characters when doing pattern
  2064.                 searches.  Interpret each character literally.
  2065.                 See Section 2.4.
  2066.  
  2067.     :set nu<cr>    Turn on line number option
  2068.     :set nonu<cr>    Turn off line number option (default)
  2069.     
  2070.     :set press<cr>    Require a carriage-return after program greeting
  2071.             screen (default)
  2072.     :set nopress<cr>Do not require carriage-return after greeting screen
  2073.     
  2074.     :set sections=<string><cr>
  2075.             Change the section delimiter string ("SHNHH HU") to
  2076.             "string".  Note that to have a space in the string
  2077.             it must be quoted with a backslash.  For example,
  2078.             ":set sec=SHH\ bpHU<cr>" will set the delimiter
  2079.             string to "SHH bpHU", and a start-of-section will
  2080.             be detected on lines that begin with .SH .H .bp
  2081.             or .HU.
  2082.     
  2083.     :set showmode<cr>    
  2084.             Print "Input Mode" identification tag in lower right
  2085.                                 corner of screen after "i", "a", "o", "O",
  2086.                                 "cc", "r", "s", or other commands that
  2087.                                 expect input text from the keyboard.
  2088.                                 (default)
  2089.     :set noshowmode<cr>    
  2090.             Do not print the "Input Mode" identification tag.
  2091.  
  2092.     :set ts=n<cr>   Set tab stops every n spaces --
  2093.                                 n can be any number from 1 to 40.
  2094.  
  2095.     :set wm=n<cr>   Set wrap margin to n spaces -- automatically generates
  2096.                                 carriage returns when n or fewer spaces
  2097.                                 remain on the line.  ":set wm=0" (the
  2098.                                 default) will disable the function.  This
  2099.                                 command is useful for high-speed typing --
  2100.                                 carriage-returns are supplied by the
  2101.                                 program.
  2102.  
  2103.     :set ws        Wrap around end of file on searches (default)
  2104.     :set nows    Do not wrap around end of file on searches
  2105.  
  2106.     :set rmar=n<cr>    (NON-UNIX) Set right margin for text filling (see below)
  2107.                 Default value is rmar=70.
  2108.     
  2109.             
  2110.  
  2111.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2112.  
  2113.  
  2114.  
  2115.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 33
  2116.  
  2117.  
  2118.  
  2119.     *** OTHER COMMANDS ***
  2120.  
  2121.     :help<cr>    (NON-UNIX) Get on-line help.  In order for this 
  2122.                 command to work, the file VIHELP.TXT,
  2123.                 supplied with Oak Hill Vi, must have been
  2124.                 copied into the working directory, the
  2125.                 directory where vi.exe is stored (typically
  2126.                 "\BIN"), or elsewhere in the DOS "PATH".
  2127.                 If Oak Hill Vi can find the file, it will
  2128.                 display its contents with a simple file
  2129.                 viewer that allows you to page and scroll
  2130.                 through syntax examples for the most common
  2131.                 vi commands.  You may also skip directly to
  2132.                 a topic of interest by using the section
  2133.                 code letter given in the table that appears
  2134.                 when the :help command is first entered.
  2135.     
  2136.     :heap<cr>    (NON-UNIX) Print the number of free bytes still
  2137.                 available in the memory heap.  The
  2138.                 indicated space is not completely
  2139.                 available for text because each line
  2140.                 of text requires at least 10 bytes of
  2141.                 overhead.
  2142.  
  2143.     :clear<cr>    (NON-UNIX) Clear the yank, last-command, and 
  2144.                 named buffers, and show the number of free 
  2145.                 bytes still available in the memory heap.
  2146.  
  2147.     :[range]fill <cr>    
  2148.             (NON-UNIX) In the range specified, fill text with 
  2149.                 left margin copied from current line and
  2150.                 right margin 'rmar' spaces.  See detailed
  2151.                 "FILL" description below.
  2152.                 
  2153.     :[range]rfill <cr>    
  2154.             (NON-UNIX) Same as :fill except that new sentences will
  2155.                 begin on a new line.  This is useful for making
  2156.                 already-filled text easier to edit.
  2157.             
  2158.      -> :fillp<cr>    (NON-UNIX) Fill paragraph.  Like :fill except that
  2159.                                 the entire paragraph in which the cursor
  2160.                                 sits is filled (no need to mark any text).
  2161.                                 A paragraph is a section of text delimited
  2162.                                 by blank lines, the start or end of a file,
  2163.                                 lines that begin with a space or any of the
  2164.                                 characters in the string ".-_=*", or a
  2165.                                 <ctl-X>.
  2166.                 
  2167.     :rfillp<cr>    (NON-UNIX) Reverse fill paragraph.  Like "fillp" except
  2168.                 that new sentences will begin on a new line.
  2169.  
  2170.     :[range]upcase    (NON-UNIX) Convert to upper case the range of 
  2171.                 lines indicated.
  2172.     :[range]lowcase    (NON-UNIX) Convert to lower case the range of 
  2173.                 lines indicated.
  2174.             
  2175.     :[range]center  (NON-UNIX) Center on the page the range of 
  2176.  
  2177.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2178.  
  2179.  
  2180.  
  2181.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 34
  2182.  
  2183.  
  2184.                                 lines indicated.  Control characters, tabs,
  2185.                                 and leading or trailing spaces will be
  2186.                                 ignored when this command computes where to
  2187.                                 place the line.  Lines greater than 80
  2188.                                 characters will not be altered.  Lines will
  2189.                                 be centered about the current value of
  2190.                                 "ctr".  By default ctr=40.  It may be
  2191.                                 altered with the ":set ctr=n" command.
  2192.     
  2193.     :n<cr> [file(s)]    Edit next file name in the queue.  If "file(s)"
  2194.                 are present, establish a new queue.  See
  2195.                 Section 1.3
  2196.     :args<cr>        List file names in queue.
  2197.     :rew<cr>        Rewind the names in the queue and start over
  2198.                 with the first name in the queue.
  2199.     
  2200.     :tag label<cr>        If the current directory contains a file named
  2201.     :tag! label<cr>        "tags" which contains lines in the format
  2202.                 
  2203.                     label filename /string   
  2204.                     
  2205.                 then the program will clear the current
  2206.                 file buffer, read file "filename" into the
  2207.                 editor, and position the cursor at the
  2208.                 beginning of the line that contains
  2209.                 "string".  This is useful (for example) if
  2210.                 you come across a a subroutine named
  2211.                 "label" in a C program and you want to jump
  2212.                 quickly to the file where the subroutine is
  2213.                 defined.  After looking it over you can
  2214.                 jump right back to your original file with
  2215.                 the command <ctl>^ (control-shift-6 on
  2216.                 most keyboards).
  2217.                 
  2218.                 You may create the file "tags" manually
  2219.                 or you may use a "ctags" program to create
  2220.                 it automatically.  As of the date of this
  2221.                 writing, one such program is available on
  2222.                 CompuServe, IBMAPP/Text Editors library,
  2223.                 under the name CTAGS3.ARC.
  2224.                 
  2225.                 Instead of the '/' in the tag-file entries
  2226.                 you may also use '?'.  The cursor will then
  2227.                 move to the last occurrence of "string"
  2228.                 rather than the first.
  2229.                 
  2230.                 When you enter the ":tag" command, the
  2231.                 current buffer will first be saved if the
  2232.                 "aw" option is set and the file has been
  2233.                 modified since the last save.  If "noaw"
  2234.                 is set and the file has been modified,
  2235.                 ":tag" will be rejected -- you may override
  2236.                 this protection feature by using ":tag!".
  2237.         
  2238.     <ctl>]            This is a fast way to execute a ":tag label"
  2239.                 command.  By positioning the cursor at the
  2240.                 start of a word and hitting <ctl>], the
  2241.                 program will execute ":tag label" with 
  2242.  
  2243.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2244.  
  2245.  
  2246.  
  2247.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 35
  2248.  
  2249.  
  2250.                 that word taken to be "label".
  2251.     v        Print greeting message and Oak Hill Vi version 
  2252.                 number on screen.
  2253.  
  2254.      -> <ctl-L>        Redraw the screen -- useful if display becomes 
  2255.                 corrupted.
  2256.  
  2257.      -> mx        Mark the current line and cursor position with 
  2258.                                 an identifying character from [a-z]  (see
  2259.                                 'x command, up to 10 lines may be marked;
  2260.                                 erasure and re-use of the 10 is automatic)
  2261.  
  2262.      -> <ctl-G>        Same as ":f<cr>" as described below
  2263.      -> :f<cr>        Print on the status line the name of the current file, 
  2264.                                 the line number, the total number of lines,
  2265.                                 total characters to end of current line,
  2266.                                 and total number of characters in file.  If
  2267.                                 the file has been modified and has not been
  2268.                                 written out to disk, the indicator
  2269.                                 "[modified]" will appear next to file name.
  2270.  
  2271.      -> :!<cr>        Escape to MS-DOS.
  2272.      -> :shell<cr>    Either of these commands escapes to MS-DOS and 
  2273.                                 allows you to enter DOS commands without
  2274.                                 exiting the Oak Hill Vi editor. A copy
  2275.                                 of the MS-DOS program COMMAND.COM must be
  2276.                                 accessible via the current MS-DOS PATH on
  2277.                                 the current disk.  Enough unused memory
  2278.                                 must be available to run COMMAND.COM and
  2279.                                 the DOS command you choose.  Otherwise an
  2280.                                 error message will be generated.
  2281.             
  2282.     :!cmd<cr>    Same as above except that the DOS command "cmd" 
  2283.                 will be executed immediately.
  2284.  
  2285.     <ctl-C>        Abort program.  This is an MS-DOS command to 
  2286.                                 be used in case the program seems "hung".
  2287.                                 When the program is operating normally,
  2288.                                 this command will not generate an abort.
  2289.  
  2290.     "x<n><yank>    Named buffer yank/delete: on next yank or delete
  2291.     "x<n><delete>        command, save yanked or deleted text in
  2292.                                 buffer x where x is a character from [a-z]
  2293.                                 as well as saving it in the usual default
  2294.                                 buffer.
  2295.  
  2296.                 EXAMPLES:   "a6yy 
  2297.                         "x4dw
  2298.             
  2299.                 The first example will yank six lines 
  2300.                 and store them in buffer 'a'.
  2301.                 
  2302.                 The second example will delete four words 
  2303.                 and store them in buffer 'x'.
  2304.  
  2305.     "xp        Named buffer put: do a put (p or P) command using
  2306.     "xP        the contents of named buffer x rather than the
  2307.             contents of the default buffer.
  2308.  
  2309.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2310.  
  2311.  
  2312.  
  2313.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 36
  2314.  
  2315.  
  2316.  
  2317.                 EXAMPLE: "ap will put the contents of marked
  2318.                     buffer 'a' after the current line or
  2319.                     cursor position.
  2320.     
  2321.     !adr cmd<cr>    This command will delete a group of lines from the
  2322.             current line to the line at address adr, pass
  2323.             those lines through an external filter 'cmd',
  2324.             and load the results into the location
  2325.             originally occupied by the unfilterd lines.
  2326.             
  2327.             Note: This command is not preceded by a colon.
  2328.             
  2329.             Examples:
  2330.             
  2331.             !3jsort<cr>
  2332.             !'asort<cr>
  2333.             !21Gsort<cr>
  2334.             !Gsort<cr>
  2335.             !!dir<r>
  2336.             
  2337.             The first example will pass the current line and
  2338.             the next three lines through the DOS 'sort' filter
  2339.             and replace the original lines with a sorted
  2340.             version.
  2341.             
  2342.             The second example will do the same for the current
  2343.             line through the line marked 'a'.
  2344.             
  2345.             The third example will do the same for the current
  2346.             line through the 21st line.
  2347.             
  2348.             The fourth example will do the same for the current
  2349.             line through the last line.
  2350.             
  2351.             The fifth example will replace the current line
  2352.             with output of the DOS 'dir' command (useful for
  2353.             looking at the contents of directories without
  2354.             leaving the editor).
  2355.             
  2356.             This command can be undone with the 'u' (undo)
  2357.             command.
  2358.             
  2359.             Note: This command must write temporary "scratch"
  2360.             files to your current default directory.  There
  2361.             must be enough space for these files or the command
  2362.             will fail.
  2363.             
  2364.     :map [_label] lhs rhs<cr>
  2365.     :unmap lhs<cr>  
  2366.     :map<cr>        While in the command mode, make left-hand string
  2367.             "lhs" stand for the commands in the right-hand
  2368.             string "rhs".  "rhs" may contain spaces, but
  2369.             "label" and "lhs" must not contain any spaces.  If
  2370.             lhs and rhs are separated by more than one space,
  2371.             the extra spaces will be included at the front end
  2372.             of rhs.  Use <ctl-V> to preface any special
  2373.             characters like carriage return or backspace.  Any
  2374.  
  2375.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2376.  
  2377.  
  2378.  
  2379.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 37
  2380.  
  2381.  
  2382.             number of mappings may be stored.  Rhs may contain
  2383.             up to 127 characters.  If you attempt to store two
  2384.             mappings with the same lhs, the later one will
  2385.             replace the earlier one.  ":unmap" will remove a
  2386.             mapping.  
  2387.             
  2388.             ":map" with no arguments will print a list of
  2389.             active mappings.  If the optional "label"
  2390.             string is present, it will be listed along with
  2391.             "lhs" and "rhs" when you enter the ":map" with
  2392.             no arguments.  The label may serve as a reminder
  2393.             of what the "lhs"-to-"rhs" mapping is for.  It
  2394.             may also be a reminder of which special key
  2395.             may be pressed (e.g., "F1") to generate the
  2396.             string lhs.  To be recognized as a label,
  2397.             "label" must be preceded by the underscore
  2398.             character '_'.  
  2399.             
  2400.             The cursor movement keys (up, down, home, end,
  2401.             etc.) are premapped and labeled when you load
  2402.             Oak Hill Vi.  You may change these mappings if
  2403.             you wish.  See the Section in Chapter 2 on
  2404.             "edit keys" for your computer.
  2405.             
  2406.             We recommend that you choose a character that you
  2407.             seldom press (for example ';') to be the first
  2408.             character of all your mappings.  This will avoid
  2409.             surprises when you're typing your text.  If you
  2410.             choose to use ';', you may wish to map ";;" into
  2411.             ";" so that you do not loose the function provided
  2412.             by the ";" command.
  2413.  
  2414.                 EXAMPLES: 
  2415.                 
  2416.                 :map ;g /George^V<cr>cwBill^V<esc><cr>
  2417.                 :map ^_mark ;> :1,$s/^/>/<cr>
  2418.  
  2419.             The first example will make the command string ";g"
  2420.             search for the next occurrence of the pattern
  2421.             "George" and convert it to "Bill".  The second
  2422.             example will make the command string ";>" put a '>'
  2423.             character in front of every line.  The label
  2424.             "mark" will appear with this mapping when you
  2425.             enter the ":map" command.
  2426.             
  2427.             Note: You may also wish to map your "function keys"
  2428.             or "alt-char" keys into special commands.  On the
  2429.             US IBM PC standard, these keys produce a
  2430.             two-character sequence -- a "nul" character (ASCII
  2431.             value 0) followed by some other character.  Because
  2432.             the nul character is used internally by Oak Hill
  2433.             Vi, any nul character arriving from the keyboard is
  2434.             immediately mapped into the '#' character.  This
  2435.             explains why, for example, pressing the 'F1' key in
  2436.             input mode will produce "#;" and pressing alt-X
  2437.             will produce "#-".
  2438.                 
  2439.             Note: This comand differs from the one below
  2440.  
  2441.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2442.  
  2443.  
  2444.  
  2445.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 38
  2446.  
  2447.  
  2448.             (:map!) which operates in the input mode.
  2449.             
  2450.     :map! [_label] lhs rhs<cr>
  2451.     :unmap! lhs<cr>  
  2452.     :map!<cr>       While in the input mode, make left-hand string
  2453.             "lhs" stand for the commands in the right-hand
  2454.             string "rhs".  "rhs" may contain spaces, but
  2455.             "label" and "lhs" must not contain any spaces.  If
  2456.             "lhs" and "rhs" are separated by more than one
  2457.             space, the extra spaces will be included at the
  2458.             front end of "rhs".  Any number of mappings may be
  2459.             stored.  Rhs may contain up to 127 characters.  If
  2460.             you attempt to store two mappings with the same
  2461.             lhs, the later one will replace the earlier one.
  2462.             ":unmap!" will remove a mapping.  ":map!"  with no
  2463.             arguments will print a list of active mappings.  
  2464.             
  2465.             You may label your mappings as in the ":map"
  2466.             command above.  See also the discussion above
  2467.             regarding function keys and alt-char keys.
  2468.  
  2469.                 EXAMPLE: 
  2470.                 
  2471.                 :map! ;rd requirements documents<cr>
  2472.  
  2473.             With this mapping active, if you type ";rd" while
  2474.             entering text in the input mode, the ";rd" will be
  2475.             immediately replaced by the string "requirements
  2476.             documents".
  2477.                 
  2478.             Note that this command differs from the one above
  2479.             (:map) which operates in the command mode.  Note
  2480.             also that this command is very similar to the
  2481.             ":abbr" command -- the difference is that in the
  2482.             ":abbr" command, the macro must stand alone,
  2483.             separated from adjoining text by spaces, tabs, or
  2484.             punctuation.  In the ":map!" command the macro
  2485.             string is replaced no matter where it appears.
  2486.             
  2487.     @x        Where 'x' is any character from 'a' through 'z'.
  2488.     @@        This will cause the contents of the 'x' save buffer
  2489.             to be interpreted as a set of commands entered from
  2490.             the keyboard.  This is similar in function to the
  2491.             ":map" command except that it allows you to edit
  2492.             the command sequence as if it were a line of text.
  2493.             For complex sequences this is more convenient than
  2494.             trial-and-error retyping of ":map" sequences.  Once
  2495.             the command sequence works as you wish it to, it
  2496.             can always be transferred to a ":map" command or
  2497.             placed in an EXRC file.  "@@" is simply a fast way
  2498.             of entering the most-recently-entered "@x" command.
  2499.             If the save buffer contains more than one line,
  2500.             the commands on the lines will be concatenated,
  2501.             up to a limit of 125 characters.
  2502.             
  2503.             EXAMPLE:
  2504.             
  2505.             Suppose a line of text in your file consists of:
  2506.  
  2507.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2508.  
  2509.  
  2510.  
  2511.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 39
  2512.  
  2513.  
  2514.             
  2515.                 :s/Sam/Bill<cr>
  2516.                 
  2517.             If you place a cursor on that line and type the
  2518.             command 
  2519.                 
  2520.                 "ayy
  2521.                 
  2522.             the line will be saved (as usual) in named buffer
  2523.             'a'.  Thereafter if you type
  2524.             
  2525.                 @a
  2526.                 
  2527.             the contents of the register will be executed
  2528.             as if it were a command string entered from the
  2529.             keyboard, and the first occurrence of "Sam" will
  2530.             be replaced by "Bill".  
  2531.             
  2532.  
  2533.     2.10 IBM EDIT KEYS AND CUSTOMIZED FUNCTION-KEY MAPPING
  2534.     ----------------------------------------------------------------------
  2535.     
  2536.     One of the strengths of the vi editor is that all commands and
  2537.     input are entered directly from the QWERTY keyboard.  For
  2538.     touch-typists, the vi editor simply becomes an extension of their
  2539.     touch-typing skills.  In particular, touch-typists do not have to
  2540.     take their eyes off the screen to search for the Edit Keys
  2541.     (Up-Arrow, Down-Arrow, Insert, Home, etc.)
  2542.     
  2543.     Nonetheless, many users still like to use the Edit Keys.  These
  2544.     have been "pre-mapped" as shown in the table below.
  2545.     
  2546.     IBM EDIT AND DISPLAY CONTROL KEYS
  2547.     -----------------------------------------------------------------------
  2548.     Up-Arrow    Cursor up 1 or 4 lines (same as 'k 4k')
  2549.     Down-Arrow    Cursor down 1 or 4 lines (same as 'j 4j')
  2550.     Left-Arrow    Cursor left 1 or 4 characters (same as 'h 4h')
  2551.     Right-Arrow    Cursor right 1 or 4 characters (same as 'l 4l')
  2552.  
  2553.     Pg Dn        Jump ahead one screenfull (same as <ctl-F>)
  2554.     Pg Up        Jump back one screenfull (same as <ctl-B>)
  2555.     Home         Jump to first line (same as '1G')
  2556.     End        Jump to last line (same as 'G')
  2557.  
  2558.     Del         Delete 1 character (same as 'x 4x')
  2559.     Insert         Insert text (same as 'i')
  2560.     -----------------------------------------------------------------------
  2561.     
  2562.     If you enter the command ":map<cr>" when you first load 
  2563.     Oak Hill Vi, you will see entries like:
  2564.     
  2565.     <Up>      #H      k
  2566.     <Down>    #M      j
  2567.     <Home>      #K      1G
  2568.     
  2569.     This shows how the Edit Keys are pre-mapped.  (See also the section
  2570.     above on the ":map" command.)  The first line shows that the
  2571.     sequence "#H" is mapped into the command 'k', which causes the
  2572.  
  2573.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2574.  
  2575.  
  2576.  
  2577.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 40
  2578.  
  2579.  
  2580.     cursor to move up one line.  The entry "<Up>" is simply a reminder
  2581.     label of what key generates the sequence "#H".
  2582.     
  2583.     The pre-mapped Edit keys are "soft" and may be remapped to do
  2584.     other commands by simply remapping them from inside the editor
  2585.     or in an EXRC file.
  2586.     
  2587.     If you have complex command sequences that you find yourself
  2588.     typing repeatedly, you may use the ":map" command as described
  2589.     above, or you may map the function keys to perform these
  2590.     commands with a single keystroke.
  2591.     
  2592.     For example, suppose you like to save your editing work in both the
  2593.     hard disk directory you're working on AND a floppy disk in drive
  2594.     B:.  You could create your own command ";s" to do this by entering
  2595.     
  2596.         :map ;s :w^V^M:w! b:^V^M<cr>
  2597.     
  2598.     Thereafter, every time you enter ";s" in the command mode,
  2599.     your work would be saved on both the hard disk and the floppy.
  2600.     (Note that control-V is used to quote the carriage return
  2601.     control-M and make it part of the command sequence.)
  2602.     
  2603.     Alternatively you could type
  2604.     
  2605.         :map ^_F3.doublesave <F3> :w^V^M:w! b:^V^M<cr>
  2606.     
  2607.     where "<F3>" means you press the F3 function key.  The F3 key
  2608.     will produce the sequence <NULL>D, appearing on your screen as
  2609.     "#D" and will be mapped as shown.  Thereafter if you simply
  2610.     press the F3 key, your work will be saved on both the floppy
  2611.     and hard disk.  And if you enter ":map<cr>" one of the entries
  2612.     you will see is
  2613.     
  2614.         F3.doublesave  #D  :w^M:w! b:^M
  2615.     
  2616.     reflecting your customized mapping and reminding you of what it
  2617.     does.  Remember that these mappings may be specified in the EXRC
  2618.     file so that they will be available every time you load Oak Hill
  2619.     Vi.
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2640.  
  2641.  
  2642.  
  2643.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 41
  2644.  
  2645.  
  2646.     3.0  LINE RANGE SPECIFICATION
  2647.     =======================================================================
  2648.         Line ranges are specified in the form
  2649.        
  2650.         [spec1,[spec2]]
  2651.        
  2652.         If both spec1 and spec2 are missing, the implied range is simply
  2653.         the current line.  
  2654.        
  2655.         If spec2 is missing, the implied range is spec1.
  2656.        
  2657.         Spec2 must be greater than or equal to spec1 or an error message
  2658.         will be generated.
  2659.        
  2660.         The spec values may be an integer line number, "." to represent the
  2661.         current line, "$" to represent the last line, "'a" to represent the
  2662.         line named "a" (see mx command, Section 2.7), "%" as a shorthand to
  2663.         indicate all lines, or a pattern search "/string/".  Any of these
  2664.         spec values except % may be followed by a "+n" or "-n" to indicate
  2665.         a count of lines above or below the spec.  Alternatively, "+++" is
  2666.         equivalent to "+3" for example.
  2667.        
  2668.         Spec EXAMPLES:
  2669.         
  2670.         4,30        Line numbers 4 through 30.
  2671.         
  2672.         .,$        Current line through last line.
  2673.         
  2674.         'a,'b        Lines named (see mx command, Section 2.7) 'a through 'b.
  2675.         
  2676.         'a,.        Line 'a through the current line.
  2677.         
  2678.         %        Lines 1 through last line (synonymous with 1,$).
  2679.         
  2680.         (nothing)    Current line only
  2681.         
  2682.         /Dorothy/    Next line on which the string "Dorothy" appears
  2683.         
  2684.         .,.+4        Current line through next four lines
  2685.         
  2686.         .,.++        Current line through next two lines
  2687.         
  2688.         ---        Third line above current line ("." is default)
  2689.         
  2690.         /Sam/++        Second line below line where "Sam" occurs
  2691.         
  2692.         $-1        One line above last line
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2706.  
  2707.  
  2708.  
  2709.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 42
  2710.  
  2711.  
  2712.     4.0 TEXT FILL AND CENTERING FEATURES
  2713.     =======================================================================
  2714.     With the ":fill" and ":center" commands, you can do elementary
  2715.     word processing within Oak Hill Vi.   
  2716.  
  2717.     4.1 TEXT FILL FEATURE 
  2718.     --------------------------------------------------------------------
  2719.         The "fill" feature allows you to clean up "ragged" lines of varying
  2720.         length will a single command.  This function is sometimes called
  2721.         "formatting."  The range of text to be filled may be specified with
  2722.         a line range specification, or you can use the ":fillp" command to
  2723.         fill text as you edit.
  2724.         
  2725.         For example, suppose you have entered and edited text in the
  2726.         following "ragged" form --
  2727.         
  2728.             Man is a singular creature.  He has a set of gifts
  2729.             which make him unique among the animals: so that 
  2730.             unlike them, he
  2731.             is not a figure in the landscape -- he is a shaper
  2732.             of the landscape.  
  2733.             In body
  2734.             and in mind he is the explorer of nature, the 
  2735.             ubiquitous animal, who
  2736.             did not
  2737.             find but has made his home in every continent.
  2738.         
  2739.         By issuing a single command, Oak Hill Vi will replace this
  2740.         paragraph with the following neatly filled text --
  2741.  
  2742.                 Man is a singular creature.  He has a set of gifts
  2743.                 which make him unique among the animals: so that unlike
  2744.                 them, he is not a figure in the landscape -- he is a
  2745.                 shaper of the landscape.  In body and in mind he is the
  2746.                 explorer of nature, the ubiquitous animal, who did not
  2747.                 find but has made his home in every continent.
  2748.             
  2749.     EXAMPLES:
  2750.  
  2751.     :fillp<cr>    will fill the paragraph where the cursor is located
  2752.     :fill<cr>    will fill the current line only
  2753.     :'a,.fill<cr>    will fill the line marked "a" to the current line
  2754.     :%fill<cr>    will fill the entire file
  2755.  
  2756.              If the last (non-white-space) character on a line is an
  2757.              end-of-sentence character ('.', '?', or '!'), that line will
  2758.              be followed by two spaces in the filled text.  
  2759.  
  2760.              When filling text: 
  2761.  
  2762.              Blank lines are not affected, so paragraphing will be
  2763.              preserved.
  2764.  
  2765.              Lines whose first non-white space character is a '.'(period)
  2766.              will not be affected, so any UNIX nroff/troff command lines
  2767.              (like .P, .sp etc.) will not be altered.  
  2768.     
  2769.              Lines whose first non-white space character is a ^M or ^L will
  2770.  
  2771.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2772.  
  2773.  
  2774.  
  2775.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 43
  2776.  
  2777.  
  2778.              not be altered.
  2779.      
  2780.              Lines that begin with a <ctl-X> will not be altered.  This
  2781.              feature lets you explicitly "protect" lines from the fill
  2782.              function with a character that can be removed later by a
  2783.              global substitution.
  2784.  
  2785.              Any control characters present in the text are "not counted"
  2786.              in performing the fill operation.  For example the strings 
  2787.  
  2788.                   ^Uhello^T
  2789.         
  2790.              and
  2791.          
  2792.                   hello
  2793.     
  2794.              are both counted as occupying five columns.  This lets you
  2795.              imbed printer control characters in the text without affecting
  2796.              the "fill" of the final text.  These control characters can be
  2797.              expanded to longer control sequences (if required) by a global
  2798.              substitution or with the "page" program described below.
  2799.  
  2800.         The text fill operation is reversible with the "u" (undo) command.
  2801.  
  2802.         Note: It is good practice to fill modest-sized blocks of text at a
  2803.         time.  Because the undo function must "remember" the text block the
  2804.         way it was before filling, the program must find enough heap memory
  2805.         to hold the "old" version.  The program will not abort if you
  2806.         attempt to fill too much text at once; it will simply generate a
  2807.         warning message asking you if you wish to proceed even though the
  2808.         fill will not be reversible.  Of course if you wish to fill a large
  2809.         file all at once you can always put a safety copy of the file on
  2810.         disk with the ":w filename<cr>" command.
  2811.  
  2812.         The fill operation will observe a right margin set by rmar.  The
  2813.         left margin will be "copied" from the current line.  The left
  2814.         margin may be any number of consecutive spaces or tab characters.
  2815.         
  2816.         Example: if rmar=70 and the current line has two tab characters at
  2817.         the front of the line, the text will be filled with a right margin
  2818.         at the 70th column, and the left margin will be 16 columns (two tab
  2819.         characters) for every line in the fill range.  The value for rmar
  2820.         may be set to any number from 20 to 160, but the fill operation
  2821.         will be rejected if rmar is less than 20 characters from the left
  2822.         margin.  
  2823.        
  2824.         Note: for a given selection of margin settings the results of fill
  2825.         operations will be the same whether the line number option, ":set
  2826.         nu<cr>" has been activated or not.  If the option is "on", the text
  2827.         will appear on the screen to be right-shifted by 8 columns to leave
  2828.         room for the line number, but the margins and line lengths in the
  2829.         actual text will be the same as if the line number option were
  2830.         turned off.
  2831.  
  2832.         Text is generally easier to edit if each new sentence begins on a
  2833.         new line.  Once text has been filled, it becomes harder to edit
  2834.         because a new sentence may begin anywhere.  To make it easier, use
  2835.         the "rfill" command (mnemonic - "reverse fill" or "roff fill").
  2836.  
  2837.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2838.  
  2839.  
  2840.  
  2841.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 44
  2842.  
  2843.  
  2844.         This command works like "fill" except that (1) every new sentence
  2845.         (defined below) is forced to begin on a new line, and (2) the left
  2846.         margin is forced to zero.  "rfillp" is like "rfill" except that
  2847.         only a single paragraph (the one in which the cursor is located)
  2848.         will be affected.
  2849.  
  2850.     EXAMPLES:
  2851.  
  2852.     :'a,'brfill<cr>        will "reverse fill" text from lines "a" to "b"
  2853.     :rfillp<cr>        will "reverse fill" the current paragraph
  2854.  
  2855.         Oak Hill Vi assumes a new sentence has begun if it finds an
  2856.         end-of-sentence character followed by two spaces, or an
  2857.         end-of-sentence character that is the last non-white-space
  2858.         character on the line.  
  2859.  
  2860.         If you use the "fillp" and "rfillp" operations frequently, don't
  2861.         forget the convenience of the "map" command to simplify your
  2862.         typing.  We recommend commands like
  2863.  
  2864.         :map _F9 #C :fillp^M<cr>
  2865.         :map _F10 #D :rfillp^M<cr>
  2866.  
  2867.         for your EXRC file (see the "SETUP FILE" section).  Then when you
  2868.         wish to fill the text in a paragraph, all you have to do is hit
  2869.         Function Key F9 or F10.
  2870.  
  2871.     4.2 TEXT CENTERING FEATURE 
  2872.     --------------------------------------------------------------------
  2873.         The "center" command allows you to center one or more lines of
  2874.         text.  As in the "fill" command, control characters are ignored in
  2875.         calculating where to start the line.  This allows you to place
  2876.         printer control characters in-line with the text without affecting
  2877.         centering.
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2904.  
  2905.  
  2906.  
  2907.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 45
  2908.  
  2909.  
  2910.     5.0 SETUP FILE "EXRC" AND THE "EXINIT" ENVIRONMENT VARIABLE
  2911.     =======================================================================
  2912.         If you have a standard set of options or commands you would like
  2913.         exercised automatically every time the program loads, they may be
  2914.         entered into a special file for that purpose called EXRC.
  2915.  
  2916.         Every time Oak Hill Vi is loaded, it looks for EXRC first in
  2917.         the current directory.  If it is not found there, the MS-DOS PATH
  2918.         environment variable is fetched, and each directory in the path is
  2919.         searched in turn until the file is found.  If the file is not
  2920.         found, all default variables are used.  Therefore, a good place to
  2921.         store your "basic" EXRC file is wherever you have stored the Oak
  2922.         Hill Vi executable file.  
  2923.  
  2924.         If you'd like to have editing features that are customized for
  2925.         particular text files, just store a customized EXRC in the same
  2926.         directory as the text file, and make that directory your default
  2927.         directory as you edit.
  2928.  
  2929.         If you want to check the directory in which Oak Hill Vi found
  2930.         your EXRC file, use the ":set<cr>" command.  The first line of the
  2931.         output from this command will show where the EXRC file, if any, was
  2932.         found.
  2933.  
  2934.         An example of a setup file that (a) automatically invokes line
  2935.         numbering, (b) sets a margin wrap at 10 spaces, (c) maps the
  2936.         command ">" into a fill-paragraph command, (d) maps "<" into
  2937.         fill-paragraph with-each-sentence-on-a-new-line command, and (e)
  2938.         sets the right margin for text fills at column 75, is given by the
  2939.         five-line setup file --
  2940.  
  2941.         :set nu
  2942.         :set wm=10
  2943.         :map > :fillp^M
  2944.         :map < :rfillp^M
  2945.         :set rmar=75
  2946.  
  2947.         Each command must appear on a separate line.  Only :set, :map,
  2948.         :map!, and :abbrev commands may be used.  Others will be ignored.
  2949.  
  2950.         Note that if a carriage return is required as part of the command
  2951.         itself (as in the "map" commands), it must appear explicitly -- the
  2952.         carriage return at the end of each line in EXRC doesn't count!  (If
  2953.         you are using Oak Hill Vi to create EXRC, just "quote" the
  2954.         carriage return by preceding it with a <ctl-V>.)  It will appear as
  2955.         "^M".
  2956.  
  2957.     Unix allows the user to set an environment variable called EXINIT
  2958.     that can contain a set of initialization commands.  DOS has a "set"
  2959.     command that in principal could allow this, but it is clumsy to use
  2960.     for vi because some of the characters that are needed ('|' and
  2961.     '=') have special meaning to DOS, and the DOS default "environment
  2962.     space" is limited.  Nonetheless Oak Hill Vi will recognize the
  2963.     DOS environment variable EXINIT and will execute a single colon
  2964.     command represented by the EXINIT string.  For example, if
  2965.     you include the line
  2966.     
  2967.     set EXINIT=:set aw ai rmar 40 color white on blue
  2968.  
  2969.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  2970.  
  2971.  
  2972.  
  2973.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 46
  2974.  
  2975.  
  2976.     
  2977.     in your AUTOEXEC.BAT file, these options will be set when Oak
  2978.     Hill Vi loads.  Note that only one command may be issued and
  2979.     the '=' characters used in setting options must not appear.
  2980.     
  2981.     If you set an option in both an EXINIT variable and in an EXRC
  2982.     file, the EXRC file instructions will override those in the EXINIT
  2983.     file.  In either an EXRC file or EXINIT string, unrecognized
  2984.     options are ignored.
  2985.     
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3036.  
  3037.  
  3038.  
  3039.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 47
  3040.  
  3041.  
  3042.     6.0 MEMORY AND FILE SIZE CONSIDERATIONS
  3043.     =======================================================================
  3044.         The current version of Oak Hill Vi does all editing on buffers
  3045.         stored in a core memory "heap".  Except when reading and writing
  3046.         files, the program does not access disk storage.  This has the
  3047.         advantage of making the program very fast, as well as reducing the
  3048.         power consumption and noise level in battery-powered lap-top
  3049.         portable computers with disk drives.  It has the disadvantage of
  3050.         limiting the maximum-sized file you can edit.
  3051.  
  3052.     Maximum file sizes for the two program models are:
  3053.  
  3054.                   Approximate           Available
  3055.                   Max File Size         Machine Memory
  3056.         -----------------------------------------------------
  3057.         Standard Model  250,000 characters    640K bytes 
  3058.         Compact Model    35,000 characters    140K bytes
  3059.  
  3060.         Oak Hill Vi makes its own internal checks on the memory heap
  3061.         as you use it.  You will receive warning messages as you approach
  3062.         the end of the available heap.  When such a message appears and you
  3063.         are editing a large file, it is best to save your work, exit the
  3064.         program, and "slice" the file into smaller sub-files using the
  3065.         special read routine described below or the separate "SLICE"
  3066.         utility program described in the next section.
  3067.  
  3068.         Heap warning messages may also appear after very long editing
  3069.         sessions on files that are below the maximum sizes shown above.
  3070.         This is because the overhead of memory management is not entirely
  3071.         recoverable after every editing change, and eventually the heap
  3072.         becomes exhausted.  In this case, the best thing to do is simply to
  3073.         write out the buffer and quit ("ZZ" or ":wq"), and restart the
  3074.         program.  
  3075.  
  3076.         If warning messages are ignored and the heap becomes corrupted, the
  3077.         program will terminate abruptly, and all editing done since the
  3078.         last save will be lost.  The abort is necessary since any attempt
  3079.         to write out a corrupted heap would destroy an already-saved file.
  3080.  
  3081.         If you wish, you can monitor the status of the memory heap with the
  3082.         command ":heap<cr>".  This will show the size of the heap that Oak
  3083.         Hill Vi still has available.  Chunks of memory under 500 bytes
  3084.         are not counted.  The ":clear<cr>" works like ":heap<cr>" except
  3085.         that it will first free any memory held by the yank/delete buffers
  3086.         and all the named buffers.
  3087.  
  3088.         Another way to monitor remaining available memory is to use the
  3089.         shell escape command, ":!<cr>", and run the DOS chkdsk command.
  3090.  
  3091.         If you use core-resident programs (like Borland's "Sidekick"), it
  3092.         is best to have these programs loaded before you run Oak Hill Vi.
  3093.         Do not start core-resident programs from the Standard Model Oak
  3094.         Hill Vi shell escape.  If you do, you will "box in" Oak Hill Vi and
  3095.         the heap will exhaust almost immediately!  
  3096.  
  3097.         "Boxing in" is not a problem with the Compact Model because that
  3098.         model requests its full allotment of 64K as soon as the program
  3099.         loads.  If you wish to use Oak Hill Vi as one of several
  3100.  
  3101.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3102.  
  3103.  
  3104.  
  3105.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 48
  3106.  
  3107.  
  3108.         core-resident programs you should use the Compact Model.  Note
  3109.         that other than the shell escape feature, no explicit support is
  3110.         provided to do make Oak Hill Vi "core-resident".
  3111.  
  3112.         If you wish to edit a file that is larger than (or even close to)
  3113.         the maximum sizes shown, we recommend that you first break the file
  3114.         into "chapters" or major sections of about half the maximum sizes
  3115.         shown, using the "slice" utility and/or the ":r n1 n2 filename"
  3116.         command described below.
  3117.  
  3118.         Example:  Suppose the ASCII file "george" contains 400,000
  3119.         characters.  Assuming an average of 50 characters per line, george
  3120.         contains about 8000 lines.  Therefore to break george into four
  3121.         files, the following sequence of Oak Hill Vi commands may be
  3122.         used.
  3123.  
  3124.         vi temp
  3125.         :r 1 2000 george
  3126.         :w chap1
  3127.         dG
  3128.         :r 2001 4000 george
  3129.         :w chap2
  3130.         dG
  3131.         :r 4001 6000 george
  3132.         :w chap3
  3133.         dG
  3134.         :r 6001 8000 george
  3135.         :w chap4
  3136.         :q!
  3137.  
  3138.         These commands will break george into four files called chap1,
  3139.         chap2, chap3, and chap4.  These may be edited separately and later
  3140.         recombined with the MS-DOS command --
  3141.  
  3142.     copy chap1+chap2+chap3+chap4 george    or      copy chap* george
  3143.  
  3144.         See the discussion of the "slice" program below for another
  3145.         approach to examining and breaking apart large files.
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3168.  
  3169.  
  3170.  
  3171.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 49
  3172.  
  3173.  
  3174.     7.0 "SLICE" UTILITY PROGRAM
  3175.     ========================================================================
  3176.         The "slice" utility program may be used to (A) count the lines,
  3177.         words, and characters in a file (B) list a designated range of
  3178.         lines (C) cut a file into smaller, easier-to-edit sub-files (D)
  3179.         find good "cutpoints" for a large file by searching for specified
  3180.         character strings in the file.
  3181.            
  3182.     -----------------------------------------------------------------
  3183.     (A) Counting lines, words, and characters
  3184.  
  3185.     Usage:        slice filename1 [filename2 ...]
  3186.  
  3187.     This usage will produce a one-line message telling how many total
  3188.     lines, words (character strings separated by white space), and
  3189.     characters a given file has.
  3190.     
  3191.     EXAMPLE:    slice george sam bill
  3192.     
  3193.     This would produce three messages like the following --
  3194.     
  3195.             "george" has 122 lines, 916 words, 4562 characters
  3196.             "sam" has 14 lines, 102 words, 706 characters
  3197.             "bill" has 2034 lines, 11301 words, 58931 characters
  3198.             
  3199.     -----------------------------------------------------------------
  3200.     (B),(C) Listing and cutting a designated range of lines.
  3201.     
  3202.     Usage:        slice n1 [n2] [^]filename1 [> filename2]
  3203.  
  3204.         To help you decide where to break a file, you can list selected
  3205.         lines of a file with this command.  If n1 and n2 are specified,
  3206.         lines n1 through n2 will be sent to the screen.  If only n1 is
  3207.         specified, all lines from n1 to the end of the file will will be
  3208.         sent to the screen.  If the filename is preceded by a carot (^), a
  3209.         line number will precede the listing of each line.  
  3210.  
  3211.         If the output is redirected with the ">" character, the designated
  3212.         file segment will be written into filename2.  This is how the file
  3213.         can be split.
  3214.  
  3215.     EXAMPLE:
  3216.     
  3217.     Suppose you use 
  3218.     
  3219.         slice 200 400 ^george
  3220.         
  3221.         to determine that a good breakpoint in george comes at line 263,
  3222.         where a major text heading begins.
  3223.     
  3224.     You may then use
  3225.     
  3226.         slice 1 262 george > george1
  3227.         slice 263 george > george2
  3228.         
  3229.     to create the two smaller sub-files george1 and george2.
  3230.  
  3231.     -----------------------------------------------------------------
  3232.  
  3233.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3234.  
  3235.  
  3236.  
  3237.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 50
  3238.  
  3239.  
  3240.     (D) Finding cutpoints with a string search
  3241.  
  3242.     Usage:        slice // filename1 [filename2 ...]
  3243.             slice %% filename1 [filename2 ...]
  3244.         
  3245.         These commands will accept the list of filenames and then ask you
  3246.         for a search string on a separate input line.  The program will
  3247.         then supply a line number and list every line where it finds the
  3248.         specified string.  The first ("//") version requires an exact match
  3249.         to the search string.  The second ("%%") version allows the use of
  3250.         meta characters (see the string search discussion in the "TEXT
  3251.         SEARCH" section above).
  3252.  
  3253.         It can be tedious to list hundreds of lines looking for a good
  3254.         cutpoint.  If you already know some of the text on the line where
  3255.         you would like to make a cut (for example the title of a major
  3256.         heading), you can use these commands to locate the cutpoint more
  3257.         quickly.
  3258.  
  3259.     EXAMPLE:        slice // george
  3260.     
  3261.     will produce the query    
  3262.                 Enter search string:
  3263.                 
  3264.         Suppose you supply a string from heading that you know starts a
  3265.         major section of your file.
  3266.     
  3267.                 MARKET ANALYSIS
  3268.                 
  3269.     The program would then scan the entire file george and produce an
  3270.     output like this --
  3271.     
  3272.     george:
  3273.        388  PRELIMINARY MARKET ANALYSIS RESULTS
  3274.        
  3275.     You would then know to cut the file at line 388.
  3276.     
  3277.     Entering the slice command with no arguments will print a summary of
  3278.     the command syntax.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3300.  
  3301.  
  3302.  
  3303.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 51
  3304.  
  3305.  
  3306.     8.0 "PAGE" TEXT PROCESSING PROGRAM
  3307.     =======================================================================
  3308.         The "page" program is a simple utility to add top-of-page and
  3309.         bottom-of-page processing (including page numbers, headers, and
  3310.         footers) needed before sending a file to a printer.  "Page" will
  3311.         also translate user-settable characters into special strings to
  3312.         control printer underlining, bold, or other special functions.
  3313.  
  3314.         With the "fill" function of Oak Hill Vi and the "page"
  3315.         program, Oak Hill Vi makes a fast, simple, word processor as well
  3316.         as a text editor.
  3317.  
  3318.     Usage:    
  3319.         page [-Tn] [-Bn] [-Ln] [-Nn] [-Sn] [-Cn] filename1 [> temp]
  3320.     
  3321.     The "n" values are the following integer constants.
  3322.     
  3323.     -Tn number of blank lines at the top of the page (default=5).
  3324.     -Bn number of blank lines at the bottom of the page (default=3).
  3325.     -Ln length of page in lines (default=66).
  3326.     -Nn sets page on which first header appears (default=2).
  3327.     -Sn sets page number value in first-appearing header (default=2).
  3328.     -Cn sets center column for headers and footers (default=30).
  3329.  
  3330.         The processed files will be printed to the screen with page
  3331.         spacing, page headers, and numbers inserted.  (No page numbers will
  3332.         be inserted if there are less than 3 blank lines at the top of the
  3333.         page.)  If the "> temp" is appended, the output will be placed in
  3334.         file "temp" where it can be sent to a hard copy printer.
  3335.  
  3336.     EXAMPLE:
  3337.  
  3338.         page -L88 george > ggg
  3339.     
  3340.         will put a ready-to-print version of file "george" into the file
  3341.         "ggg".  The file "ggg" will be set up for an 88-lines-to-the-page
  3342.         printing.
  3343.  
  3344.     8.1 PAGE HEADERS AND FOOTERS
  3345.     --------------------------------------------------------------------
  3346.         Page "headers" and "footers" can be added to the printed output by
  3347.         imbedding the strings in the text with the syntax:
  3348.  
  3349.         .HEADER=headerstring
  3350.         .FOOTER=footerstring
  3351.  
  3352.         Everything past the equal sign "=" will appear in a header or
  3353.         footer string.
  3354.  
  3355.     EXAMPLE:
  3356.  
  3357.         If the file "george" has the lines (with the '.' in column 1)
  3358.  
  3359.     .HEADER=This Is A Header
  3360.     .FOOTER=This Is A Footer
  3361.  
  3362.         page -C25 -S15 george > ggg
  3363.     
  3364.  
  3365.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3366.  
  3367.  
  3368.  
  3369.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 52
  3370.  
  3371.  
  3372.         will put a ready-to-print version of file "george" into file "ggg"
  3373.         with headers and footers centered about column 25.  Page numbering
  3374.         will begin with a "This is a Header -- Page 15" at the top of the
  3375.         first page of output.
  3376.  
  3377.     8.2 CHARACTER TRANSLATION
  3378.     -----------------------------------------------------------------------
  3379.         As it processes a file, "page" will optionally translate
  3380.         user-designated characters into user-designated character strings.
  3381.         By imbedding control characters in the text (which are not
  3382.         "counted" when filling text -- see Section 4), print control such
  3383.         as bold or underlining can be imbedded with the test.
  3384.  
  3385.         The translation table is contained in a separate file called
  3386.         "TRANS.PVI".  Page will search for this file first in the current
  3387.         directory, then in the directory "\BIN", then "\LIB", and finally
  3388.         the root directory "\".  If it cannot find the file, no
  3389.         translations will take place.
  3390.  
  3391.         The following is an example of a legitimate "TRANS.PVI" file
  3392.         format:
  3393.  
  3394.         ; File Start
  3395.         ; Hewlett Packard Thinkjet Translation Codes
  3396.         
  3397.         ^A ^O        ; Bold Off
  3398.         ^B ^N        ; Bold On
  3399.         
  3400.         ^T ^[&d@    ; Underline Off
  3401.         ^U ^[&dD    ; Underline On
  3402.         
  3403.         ^R ^[&k0S    ; Normal Print Pitch
  3404.         ^S ^[&k1S    ; Expanded Print Pitch
  3405.         ^Y ^[&k2S    ; Compressed Print Pitch
  3406.         ^Q ^[&k3S    ; Expanded-Compressed Print Pitch
  3407.         ; File End
  3408.  
  3409.         In this file (as in the Oak Hill Vi screen display), control
  3410.         characters are indicated by a leading '^' character.  
  3411.  
  3412.         The indicated TRANS.PVI file (supplied on the program disk) will
  3413.         translate every ^U character into the sequence ^[&dD and every ^B
  3414.         character into the sequence ^N.  The following are syntax rules for
  3415.         TRANS.PVI:
  3416.  
  3417.         1. Blank lines are ignored.
  3418.         2. Any text to the right of a ';' character is ignored.
  3419.         3. Any single character except ';' and '^Z' may be translated.
  3420.     
  3421.     EXAMPLE:
  3422.  
  3423.     During editing you enter:
  3424.  
  3425.         ^UFourscore and seven years ago^T, our forefathers brought
  3426.  
  3427.         When run through "PAGE" and the TRANS.PVI table above, this line
  3428.         becomes:
  3429.  
  3430.  
  3431.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3432.  
  3433.  
  3434.  
  3435.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 53
  3436.  
  3437.  
  3438.         ^[&dBFourscore and seven years ago^[&d@, our forefathers brought
  3439.  
  3440.         And when printed on the Thinkjet the phrase "Fourscore and seven
  3441.         years ago" will be printed in bold.
  3442.  
  3443.     8.3 OTHER
  3444.     -----------------------------------------------------------------------
  3445.         A <ctl-L> (form-feed) character at the beginning of any line will
  3446.         cause a skip to the next page.  Any remaining characters on the
  3447.         line are ignored.
  3448.  
  3449.         Entering the page command with no arguments will print a summary of
  3450.         the command syntax.
  3451.     
  3452.     
  3453.     9.0 OAK HILL Vi (TM) and UNIX (TM) Vi
  3454.     =======================================================================
  3455.     
  3456.         In building Oak Hill Vi we have tried to include all of UNIX
  3457.         Vi's most commonly used features.  We apologize if we've left out
  3458.         one of your favorites!  Generally, if a feature that you like is
  3459.         missing, you'll find that there is another reasonable (though
  3460.         perhaps less familiar) way to do the same thing.  
  3461.  
  3462.         We are continuing to improve Oak Hill Vi, adding features as
  3463.         requested while attempting keeping the program compact, fast, and
  3464.         all "core-based".  If you have special interest in a feature you
  3465.         would like to see added to Oak Hill Vi, please write us to tell us
  3466.         about it.  If you are among the first three people to request a new
  3467.         feature that is subsequently added, you will receive a free update
  3468.         to the program.
  3469.  
  3470.         Some of the differences between UNIX (TM) Vi and Oak Hill Vi (TM)
  3471.         that you may find important are:
  3472.  
  3473.         1. The current version of Oak Hill Vi allows lines to be no more
  3474.         than 512 characters.  Most UNIX Vi editors allow 1024 characters.
  3475.  
  3476.         2. The entire "ex" editor command set available under UNIX Vi is
  3477.         not available on Oak Hill Vi.  However most of the commonly used
  3478.         "ex" commands have been included.
  3479.     
  3480.     
  3481.     10.0 MISCELLANEOUS INFORMATION
  3482.     =======================================================================
  3483.  
  3484.         FULL SET OF 8-BIT ASCII CHARACTERS
  3485.         
  3486.      ASCII characters are encoded into a single byte, or eight
  3487.      bits.  This allows for up to 256 of them.  The first 128 codes
  3488.      (with equivalent decimal values 0 to 127) comprise the upper &
  3489.      lower case alphabetic characters, numbers, punctuation, and
  3490.      control characters.  
  3491.      
  3492.     In the IBM PC standard in the United States, codes with
  3493.     decimal value 128 through 255 comprise an extended character
  3494.     set that allow for support of some non-English text and
  3495.     punctuation, international currency symbols, and line-drawing
  3496.  
  3497.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3498.  
  3499.  
  3500.  
  3501.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 54
  3502.  
  3503.  
  3504.     capabilities.  The table below shows how the characters appear
  3505.     on your system (these characters may differ depending on your
  3506.     computer's or printer's character set!).
  3507.         
  3508.         DEC    CHAR    DEC    CHAR    DEC    CHAR
  3509.         ------------    ------------    ------------
  3510.         128    Ç    171    ½    214    ╓
  3511.         129    ü    172    ¼    215    ╫
  3512.         130    é    173    ¡    216    ╪
  3513.         131    â    174    «    217    ┘
  3514.         132    ä    175    »    218    ┌
  3515.         133    à    176    ░    219    █
  3516.         134    å    177    ▒    220    ▄
  3517.         135    ç    178    ▓    221    ▌
  3518.         136    ê    179    │    222    ▐
  3519.         137    ë    180    ┤    223    ▀
  3520.         138    è    181    ╡    224    α
  3521.         139    ï    182    ╢    225    ß
  3522.         140    î    183    ╖    226    Γ
  3523.         141    ì    184    ╕    227    π
  3524.         142    Ä    185    ╣    228    Σ
  3525.         143    Å    186    ║    229    σ
  3526.         144    É    187    ╗    230    µ
  3527.         145    æ    188    ╝    231    τ
  3528.         146    Æ    189    ╜    232    Φ
  3529.         147    ô    190    ╛    233    Θ
  3530.         148    ö    191    ┐    234    Ω
  3531.         149    ò    192    └    235    δ
  3532.         150    û    193    ┴    236    ∞
  3533.         151    ù    194    ┬    237    φ
  3534.         152    ÿ    195    ├    238    ε
  3535.         153    Ö    196    ─    239    ∩
  3536.         154    Ü    197    ┼    240    ≡
  3537.         155    ¢    198    ╞    241    ±
  3538.         156    £    199    ╟    242    ≥
  3539.         157    ¥    200    ╚    243    ≤
  3540.         158    ₧    201    ╔    244    ⌠
  3541.         159    ƒ    202    ╩    245    ⌡
  3542.         160    á    203    ╦    246    ÷
  3543.         161    í    204    ╠    247    ≈
  3544.         162    ó    205    ═    248    °
  3545.         163    ú    206    ╬    249    ∙
  3546.         164    ñ    207    ╧    250    ·
  3547.         165    Ñ    208    ╨    251    √
  3548.         166    ª    209    ╤    252    ⁿ
  3549.         167    º    210    ╥    253    ²
  3550.         168    ¿    211    ╙    254    ■
  3551.         169    ⌐    212    ╘    255     
  3552.         170    ¬    213    ╒
  3553.      
  3554.      Using Oak Hill Vi you may edit the file "EXTASCII.TBL" to examine how
  3555.      your computer represents the extended ascii character set.  You
  3556.      may also experiment with entering codes in the range 128 to 255
  3557.      (decimal) into a test file as indicated below.
  3558.         
  3559.         While in the input mode, you may enter any ASCII character into
  3560.         your text by holding down the <alt> key and entering the decimal
  3561.         value of the character from the number keypad portion of the
  3562.  
  3563.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3564.  
  3565.  
  3566.  
  3567.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 55
  3568.  
  3569.  
  3570.         keyboard.  For example pressing <alt>128 and then releasing the
  3571.         <alt> key will produce the character Ç.  If you are typing in a
  3572.         language other than English you may have frequent need for some of
  3573.         these characters.  They may be mapped with the ":map!" command into
  3574.         function key or other keystroke combinations that you find useful.
  3575.         For example, the command sequence
  3576.         
  3577.             :map! <alt>a <alt>131<cr>
  3578.             
  3579.         will allow you to simply type <alt>a every time you want the
  3580.         character â.
  3581.         
  3582.         Similarly,
  3583.         
  3584.             :map! <F4> <alt>157<cr>
  3585.             
  3586.         will subsequently produce the symbol for Yen, ¥, every time
  3587.         the F4 function key is pressed.
  3588.         
  3589.         Once you have determined the mappings and keystrokes most
  3590.         convenient for you, you should include them in your EXRC file so
  3591.         that they will be automatically activated every time you load Oak
  3592.         Hill Vi.  
  3593.  
  3594.     A suggested set of mappings is included in the file EXTASCII.MP!.
  3595.     These may be used directly or edited as you see fit.
  3596.  
  3597.  
  3598.         DOS ASCII FILES AND THE "LINE TOO LONG" ERROR MESSAGE:
  3599.  
  3600.         The standard DOS ASCII text file indicates the end of a line
  3601.         of text with a carriage-return/line-feed (CR-LF) character
  3602.         sequence.  Oak Hill Vi will edit any text file that uses
  3603.         this sequence or a single line-feed (LF) as the end-of-line
  3604.         character.
  3605.  
  3606.         In some cases you may encounter files that use only a single
  3607.         carriage return (CR) as the end-of-line character.  Some text
  3608.         editors or downloading routines may produce such files.  If you
  3609.         attempt to edit such a file with Oak Hill Vi you may get a
  3610.         "Line too long" or "File empty" error message.  However, you may
  3611.         convert such a file to a standard DOS ASCII file with the
  3612.         CR_CRLF.EXE utility supplied with Oak Hill Vi.  The command
  3613.  
  3614.         CR_CRLF FILE1 FILE2
  3615.  
  3616.         will copy "FILE1" to "FILE2" and substitute a CR-LF pair for every
  3617.         CR that is not already followed by a LF.
  3618.  
  3619.         Be especially careful about trying to edit non-ASCII files, for
  3620.         example files that end in .EXE or .COM.  The results can be
  3621.         unpredictable.  If you should accidentally read in an non-ASCII
  3622.         file, simply exit with a ":q!<cr>".  It is important that you not
  3623.         make any changes in the file, because if you then attempt to write
  3624.         it back out to disk you will destroy the original file.
  3625.  
  3626.         In many cases, non-DOS-ASCII files will cause the program to
  3627.         terminate during the file-read sequence because of the line-length
  3628.  
  3629.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3630.  
  3631.  
  3632.  
  3633.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 56
  3634.  
  3635.  
  3636.         limitation (see below).
  3637.  
  3638.     LINE LENGTH:
  3639.  
  3640.         Lines are limited to a maximum of 512 characters each.  If this
  3641.         length is exceeded either while editing files or reading files into
  3642.         the buffer, error messages will be generated.
  3643.  
  3644.         COMMAND ABBREVIATIONS:
  3645.  
  3646.         For commands entered after the colon ":" you only need to enter
  3647.         enough letters to make the chosen command unique.  For example,
  3648.         ":sh<cr>" is equivalent to ":shell<cr>", and ":up<cr>" is
  3649.         equivalent to ":upcase<cr>".
  3650.         
  3651.         GREETING-SCREEN PAUSE:
  3652.         
  3653.     Every time the program is started, Oak Hill Vi pauses and
  3654.     requires an explicit carriage-return to proceed beyond the greeting
  3655.     screen.  You can remove the necessity for a carriage return by
  3656.     installing a ":set nopress<cr>" command in a EXRC file.  See
  3657.     Sections 5 and 2.9.  (The Registered version of Oak Hill Vi does
  3658.     not generate a pause.)
  3659.  
  3660.         INTERNAL ERRORS:
  3661.  
  3662.         If you receive a "Corrupted Pointer Structure -- Program Must
  3663.         Abort" message, and you have not received any warning messages
  3664.         about heap exhaustion, then you may have experienced an internal
  3665.         program error.  Please contact Oak Hill Software if this happens,
  3666.         and supply all the information you can about how the error
  3667.         occurred, including any error messages you may have received at the
  3668.         time of the abort.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3696.  
  3697.  
  3698.  
  3699.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 57
  3700.  
  3701.  
  3702.     11.0 COMMAND INDEX AND QUICK REFERENCE
  3703.     =======================================================================
  3704.     Command   Action                                                Section
  3705.     -------   ------                                                -------
  3706.     A ....... append text at end of line ........................... 2.3
  3707.     B ....... back up one Word ..................................... 2.1
  3708.     C ....... change remainder of line ............................. 2.5
  3709.     D ....... delete remainder of line ............................. 2.4
  3710.     E ....... move to end of next Word.............................. 2.1
  3711.     F ....... Fx - find character x (reverse search) ............... 2.2
  3712.     G ....... jump to end of file (or specified line number) ....... 2.1
  3713.     H ....... jump to first complete line on screen ................ 2.1
  3714.     I ....... insert text at front of line ......................... 2.3
  3715.     J ....... join line below with current line .................... 2.7
  3716.     L ....... jump to last complete line on screen ................. 2.1
  3717.     M ....... jump to middle line on screen ........................ 2.1
  3718.     N ....... move backward to previous pattern match .............. 2.2
  3719.     O ....... open file for text above current line ................ 2.3
  3720.     P ....... put stored lines (string) above (before) cursor ...... 2.7
  3721.     R ....... replace (overstrike) text ............................ 2.7
  3722.     S ....... substitute text for current line ..................... 2.7
  3723.     T ....... tx find char following character x (reverse search)... 2.7
  3724.     W ....... move forward one Word ................................ 2.1
  3725.     X ....... delete previous character ............................ 2.7
  3726.     Y ....... yank one line ........................................ 2.6
  3727.     Z ....... ZZ - write out file and quite editor ................. 2.8
  3728.     
  3729.     a ....... append ............................................... 2.3
  3730.     b ....... move back one word ................................... 2.1
  3731.     c ....... change ............................................... 2.5
  3732.     d ....... delete ............................................... 2.4
  3733.     e ....... move to end of word .................................. 2.1
  3734.     f ....... fx find character x (forward search) ................. 2.2
  3735.     h ....... move left one character .............................. 2.1
  3736.     i ....... insert ............................................... 2.3
  3737.     j ....... move down one line ................................... 2.1
  3738.     k ....... move up one line ..................................... 2.1
  3739.     l ....... move right one character ............................. 2.1
  3740.     m ....... mark line/character position ......................... 2.9
  3741.     n ....... move forward to next pattern match ................... 2.2
  3742.     o ....... open file for new text below current line ............ 2.3
  3743.     p ....... put stored lines (string) below (after) cursor ....... 2.7
  3744.     r ....... replace single character ............................. 2.7
  3745.     s ....... substitute text for current character ................ 2.7
  3746.     t ....... tx find char preceding character x (forward search)... 2.2
  3747.     u ....... undo last text change ................................ 2.3
  3748.     v ....... print greeting message and version number ............ 2.9
  3749.     w ....... move forward to next word ............................ 2.1
  3750.     x ....... delete one character ................................. 2.7
  3751.     y ....... yank ................................................. 2.6
  3752.     z ....... redraw screen around current line .................... 2.2
  3753.     
  3754.     <ctl-B>.. move back one screenfull ............................. 2.1
  3755.     <ctl-D>.. scroll down 8 lines .................................. 2.1
  3756.     <ctl-E>.. scroll up one line maintaining cursor if possible .... 2.1
  3757.     <ctl-F>.. move forward one screenfull .......................... 2.1
  3758.     <ctl-H>.. backspace ............................................ 2.1,3
  3759.     <ctl-L>.. redraw screen ........................................ 2.9
  3760.  
  3761.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3762.  
  3763.  
  3764.  
  3765.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 58
  3766.  
  3767.  
  3768.     <ctl-U>.. scroll up 8 lines..................................... 2.1
  3769.     <ctl-V>.. accept next character literally ...................... 2.3
  3770.     <ctl-W>.. backspace over last word ............................. 2.3
  3771.     <ctl-Y>.. scroll down one line maintaining cursor if possible .. 2.1
  3772.     
  3773.     " ....... name buffer 'x' for yank, delete, or put command ..... 2.9
  3774.     $ ....... move to last character on line ....................... 2.1
  3775.     % ....... move to matching {}() character ....................... 2.1
  3776.     ' ....... go to first character of the line named 'x ........... 2.1
  3777.     ( ....... move to previous sentence ............................ 2.1
  3778.     ) ....... move to next sentence ................................ 2.1
  3779.     } ....... move to next paragraph ............................... 2.1
  3780.     { ....... move to previous paragraph ........................... 2.1
  3781.     ]] ...... move to next section ................................. 2.1
  3782.     ]] ...... move to previous section ............................. 2.1
  3783.     + ....... move to first character of following line ............ 2.1
  3784.     , ....... repeat last 'f' or 'F' command but reverse direction.. 2.2
  3785.     - ....... move to first non-white character of previous line ... 2.1
  3786.     . ....... repeat last command .................................. 2.3
  3787.     / ....... forward pattern search................................ 2.2
  3788.     0 ....... move to first character on line ...................... 2.1
  3789.     ; ....... repeat last 'f' or 'F' command ....................... 2.2
  3790.     : ....... colon command series (see below) ..................... 2.7,8,9
  3791.     ? ....... reverse pattern search................................ 2.2
  3792.     ^ ....... move to first non-white character in line ............ 2.1
  3793.     ` ....... go to line and character named `x .................... 2.1
  3794.     ~ ....... reverse case of character ............................ 2.7
  3795.     ! ....... filter lines through external program ................ 2.9
  3796.     
  3797.     :! ...... escape to MS-DOS ..................................... 2.9
  3798.     :args ... list files in editing queue .......................... 2.8
  3799.     :abbr ... abbreviate string1 by macroname while in input mode... 2.7
  3800.     :center.. center text .......................................... 2.9
  3801.     :clear .. clear buffers and count remaining heap ............... 2.9
  3802.     :d ...... delete lines ......................................... 2.7
  3803.     :e ...... edit another file .................................... 2.8
  3804.     :f ...... print file name, line number, total characters, etc. . 2.9
  3805.     :fill ... fill text ............................................ 2.9
  3806.     :fillp .. fill paragraph ....................................... 2.9
  3807.     :help ... access on-line help .................................. 2.9
  3808.     :lowcase  convert text to lower case............................ 2.9
  3809.     :map .... map user-defined characters into a command sequence... 2.9
  3810.     :map! ... map user-defined characters into input-text sequence.. 2.9
  3811.     :m ...... move lines ........................................... 2.7
  3812.     :n ...... edit next file in sequence ........................... 2.1
  3813.     :p ...... print lines on screen ................................ 2.2,7
  3814.     :q ...... quit editor........................................... 2.8
  3815.     :r ...... read file from disk................................... 2.8
  3816.     :rew .... re-edit first file in queue and rewind queue ......... 2.8
  3817.     :rfill .. reverse fill text .................................... 2.9
  3818.     :rfillp . reverse fill paragraph ............................... 2.9
  3819.     :s ...... substitute ........................................... 2.7
  3820.     :set .... set parameter (see below) ............................ 2.9
  3821.     :shell .. escape to MS-DOS ..................................... 2.9
  3822.     :heap ... measure remaining heap ............................... 2.9
  3823.     :t ...... transfer (copy) lines ................................ 2.7
  3824.     :tag .... jump to another file based on a tag label ............ 2.8
  3825.     :upcase . convert text to upper case............................ 2.9
  3826.  
  3827.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3828.  
  3829.  
  3830.  
  3831.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 6.0  -- Page 59
  3832.  
  3833.  
  3834.     :w ...... write buffer to disk.................................. 2.8
  3835.     :<n> .... move to line n ....................................... 2.1
  3836.     
  3837.     :set ai,noai ......... autoindent on/off (default noai) ........ 2.7
  3838.     :set aw,noaw ......... autowrite on/off (default aw) ........... 2.7
  3839.     :set beep,nobeep ..... computer speaker on/off (default on) .... 2.7
  3840.     :set colors .......... set foreground & background colors ...... 2.7
  3841.     :set ctr=n ........... set centering column (default n=40) ..... 2.7
  3842.     :set cursor .......... set cursor to box or underscore ......... 2.7
  3843.     :set esc2='x'......... select additional escape character ...... 2.7
  3844.     :set ic,noic ......... ignore case on/off (default noic) ....... 2.7
  3845.     :set showmode,noshowmode  show Input mode message (def noshow).. 2.7
  3846.     :set lines=n ......... screen size in lines .................... 2.7
  3847.     :set magic,nomagic ... meta character recognition on/off ....... 2.7
  3848.     :set nu,nonu ......... line number option on/off (default nonu). 2.7
  3849.     :set press,nopress ... greeting screen pause on/off (default on) 2.7
  3850.     :set rmar=n .......... right margin set (default n=75) ......... 2.7
  3851.     :set sections ........ set section delimiter string ............ 2.7
  3852.     :set ts=n ............ set tab stops every n spaces ............ 2.7
  3853.     :set wm=n ............ wrap margin spaces (default n=0) ........ 2.7
  3854.     :set ws,nows ......... wrapscan on search on/off (default nows). 2.7
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.   COPYRIGHT (C) OAK HILL SOFTWARE INC, January 1, 1992, ALL RIGHTS RESERVED
  3894.  
  3895.