v04i094: TPUVI for VMS part 3 of 17

Gregg Wonderly gregg at a.cs.okstate.edu
Mon Sep 26 11:48:20 AEST 1988


Posting-number: Volume 4, Issue 94
Submitted-by: "Gregg Wonderly" <gregg at a.cs.okstate.edu>
Archive-name: vms-vi-2/Part03

$ show default
$ if f$search("DOC.DIR;1") .eqs. "" then -
     CREATE/LOG/DIRECTORY [.DOC]
$ write sys$output "Creating [.DOC]VI.RNO"
$ create [.DOC]VI.RNO
$ DECK/DOLLARS="*$*$*EOD*$*$*"
.req "vi_1.rno"
.req "vi_2.rno"
*$*$*EOD*$*$*
$ if f$search("DOC.DIR;1") .eqs. "" then -
     CREATE/LOG/DIRECTORY [.DOC]
$ write sys$output "Creating [.DOC]VI.RNT"
$ create [.DOC]VI.RNT
$ DECK/DOLLARS="*$*$*EOD*$*$*"
.! DSRTOC version V2.1-09
.! RUNOFF/CONTENTS/OUT=VI VI.BRN
.SAVE
.NO FLAGS ALL
.NO FLAGS BREAK		.NO FLAGS CAPITALIZE	.NO FLAGS ENDFOOTNOTE
.NO FLAGS HYPHENATE	.NO FLAGS INDEX		.NO FLAGS PERIOD
.NO FLAGS SPACE		.NO FLAGS SUBSTITUTE
.FLAGS ACCEPT _		.FLAGS BOLD *		.FLAGS COMMENT !
.FLAGS LOWERCASE \	.FLAGS OVERSTRIKE %	.FLAGS UNDERLINE &
.FLAGS UPPERCASE ^
.FLAGS ALL
.NO FILL		.NO JUSTIFY
.LEFT MARGIN 8		.RIGHT MARGIN 70	.PAGE SIZE , 70
.CENTER;CONTENTS
.BLANK
.TEST PAGE 2

1       Table of contents  . . . . . . . . . . . . . . . . . 2
.ifnot global
2       Purpose of this document . . . . . . . . . . . . . . 3
.endif global
.ifnot global
3       Introduction to VI . . . . . . . . . . . . . . . . . 3
.endif global
.ifnot global
4       Extensions to VI . . . . . . . . . . . . . . . . . . 3
.endif global
.ifnot global
5       Using an initialization file . . . . . . . . . . . . 4
.endif global
.ifnot global
6       Supported EX mode commands . . . . . . . . . . . . . 5
.endif global
.if global
6_.1       Abort edit . . . . . . . . . . . . . . . . . . . . 5
.endif global
.ifnot global
6_.2       Change output file . . . . . . . . . . . . . . . . 5
.endif global
.ifnot global
6_.3       Compile TPU  . . . . . . . . . . . . . . . . . . . 6
.endif global
.ifnot global
6_.4       Copy lines . . . . . . . . . . . . . . . . . . . . 6
.endif global
.ifnot global
6_.5       Create buffers . . . . . . . . . . . . . . . . . . 6
.endif global
.ifnot global
6_.6       Create key macro . . . . . . . . . . . . . . . . . 6
.endif global
.ifnot global
6_.7       Delete buffers . . . . . . . . . . . . . . . . . . 7
.endif global
.ifnot global
6_.8       Delete lines . . . . . . . . . . . . . . . . . . . 7
.endif global
.ifnot global
6_.9       Edit new file  . . . . . . . . . . . . . . . . . . 7
.endif global
.ifnot global
6_.10      Execute command file . . . . . . . . . . . . . . . 8
.endif global
.ifnot global
6_.11      Fill text region . . . . . . . . . . . . . . . . . 8
.endif global
.ifnot global
6_.12      Global Substitution  . . . . . . . . . . . . . . . 8
.endif global
.ifnot global
6_.13      Goto Line  . . . . . . . . . . . . . . . . . . . . 8
.endif global
.ifnot global
6_.14      Goto tag in file . . . . . . . . . . . . . . . . . 9
.endif global
.ifnot global
6_.15      Help . . . . . . . . . . . . . . . . . . . . . . . 9
.endif global
.ifnot global
6_.16      Invert case  . . . . . . . . . . . . . . . . . . . 9
.endif global
.ifnot global
6_.17      Learn Key Strokes  . . . . . . . . . . . . . . . . 9
.endif global
.ifnot global
6_.18      Lower case . . . . . . . . . . . . . . . . . . .  10
.endif global
.ifnot global
6_.19      Message buffer . . . . . . . . . . . . . . . . .  10
.endif global
.ifnot global
6_.20      Move lines . . . . . . . . . . . . . . . . . . .  10
.endif global
.ifnot global
6_.21      Next file  . . . . . . . . . . . . . . . . . . .  10
.endif global
.ifnot global
6_.22      Perform Macros . . . . . . . . . . . . . . . . .  10
.endif global
.ifnot global
6_.23      Previous file  . . . . . . . . . . . . . . . . .  11
.endif global
.ifnot global
6_.24      Print out lines  . . . . . . . . . . . . . . . .  11
.endif global
.ifnot global
6_.25      Read file into buffer  . . . . . . . . . . . . .  11
.endif global
.ifnot global
6_.26      Rewind file list . . . . . . . . . . . . . . . .  11
.endif global
.ifnot global
6_.27      Select regions . . . . . . . . . . . . . . . . .  11
.endif global
.ifnot global
6_.28      Set default dir  . . . . . . . . . . . . . . . .  11
.endif global
.ifnot global
6_.29      Set options  . . . . . . . . . . . . . . . . . .  12
.endif global
.ifnot global
6_.30      Show buffers . . . . . . . . . . . . . . . . . .  12
.endif global
.ifnot global
6_.31      Showing Current Version  . . . . . . . . . . . .  12
.endif global
.ifnot global
6_.32      Show file list . . . . . . . . . . . . . . . . .  12
.endif global
.ifnot global
6_.33      Show Tags  . . . . . . . . . . . . . . . . . . .  13
.endif global
.ifnot global
6_.34      Spawn command  . . . . . . . . . . . . . . . . .  13
.endif global
.ifnot global
6_.35      Spawn subprocess . . . . . . . . . . . . . . . .  13
.endif global
.ifnot global
6_.36      Substitution . . . . . . . . . . . . . . . . . .  13
.endif global
.ifnot global
6_.37      Text Abbreviations . . . . . . . . . . . . . . .  14
.endif global
.ifnot global
6_.38      Unmap key macros . . . . . . . . . . . . . . . .  14
.endif global
.ifnot global
6_.39      Upper case . . . . . . . . . . . . . . . . . . .  14
.endif global
.ifnot global
6_.40      Write buffer . . . . . . . . . . . . . . . . . .  14
.endif global
.ifnot global
6_.41      Write and exit . . . . . . . . . . . . . . . . .  15
.endif global
.ifnot global
7       Set options  . . . . . . . . . . . . . . . . . . .  15
.endif global
.ifnot global
7_.1       Auto Send to DCL . . . . . . . . . . . . . . . .  15
.endif global
.ifnot global
7_.2       Auto line wrap . . . . . . . . . . . . . . . . .  16
.endif global
.ifnot global
7_.3       Auto write . . . . . . . . . . . . . . . . . . .  16
.endif global
.ifnot global
7_.4       Case insensitive search  . . . . . . . . . . . .  16
.endif global
.ifnot global
7_.5       Change file list . . . . . . . . . . . . . . . .  16
.endif global
.ifnot global
7_.6       Error Bells  . . . . . . . . . . . . . . . . . .  16
.endif global
.ifnot global
7_.7       Expand tabs  . . . . . . . . . . . . . . . . . .  17
.endif global
.ifnot global
7_.8       Line report  . . . . . . . . . . . . . . . . . .  17
.endif global
.ifnot global
7_.9       No write . . . . . . . . . . . . . . . . . . . .  17
.endif global
.ifnot global
7_.10      Paragraph delimiters . . . . . . . . . . . . . .  17
.endif global
.ifnot global
7_.11      Read Only Files  . . . . . . . . . . . . . . . .  18
.endif global
.ifnot global
7_.12      Regular expression use . . . . . . . . . . . . .  18
.endif global
.ifnot global
7_.13      Screen length  . . . . . . . . . . . . . . . . .  18
.endif global
.ifnot global
7_.14      Screen width . . . . . . . . . . . . . . . . . .  18
.endif global
.ifnot global
7_.15      Scroll amount  . . . . . . . . . . . . . . . . .  19
.endif global
.ifnot global
7_.16      Section delimiters . . . . . . . . . . . . . . .  19
.endif global
.ifnot global
7_.17      Shift width  . . . . . . . . . . . . . . . . . .  19
.endif global
.ifnot global
7_.18      Show settings  . . . . . . . . . . . . . . . . .  19
.endif global
.ifnot global
7_.19      Tab stops  . . . . . . . . . . . . . . . . . . .  20
.endif global
.ifnot global
7_.20      Tag Case . . . . . . . . . . . . . . . . . . . .  20
.endif global
.ifnot global
7_.21      Tags files . . . . . . . . . . . . . . . . . . .  20
.endif global
.ifnot global
7_.22      Type ahead . . . . . . . . . . . . . . . . . . .  20
.endif global
.ifnot global
7_.23      Undo and maps  . . . . . . . . . . . . . . . . .  20
.endif global
.ifnot global
7_.24      Wrap on search . . . . . . . . . . . . . . . . .  21
.endif global
.ifnot global
8       Additional key strokes . . . . . . . . . . . . . .  21
.endif global
.ifnot global
8_.1       Key pad keys used  . . . . . . . . . . . . . . .  21
.endif global
.ifnot global
8_.2       Keyboard keys used . . . . . . . . . . . . . . .  22
.endif global
.ifnot global
9       Windows and buffers  . . . . . . . . . . . . . . .  22
.endif global
.ifnot global
10      Display differences  . . . . . . . . . . . . . . .  23
.endif global
.ifnot global
11      Tag files  . . . . . . . . . . . . . . . . . . . .  23
.endif global
.ifnot global
12      Kept Editors . . . . . . . . . . . . . . . . . . .  24
.endif global
.ifnot global
13      Other TPU's  . . . . . . . . . . . . . . . . . . .  24
.endif global
.ifnot global
14      The DCL buffer . . . . . . . . . . . . . . . . . .  24
.endif global
.ifnot global
15      TPU bugs revealed  . . . . . . . . . . . . . . . .  25
.endif global
.RESTORE
*$*$*EOD*$*$*
$ if f$search("DOC.DIR;1") .eqs. "" then -
     CREATE/LOG/DIRECTORY [.DOC]
$ write sys$output "Creating [.DOC]VIDOC.COM"
$ create [.DOC]VIDOC.COM
$ DECK/DOLLARS="*$*$*EOD*$*$*"
$ ! This command procedure builds copies of the various
$ ! VI documentation files
$ !
$ DO="@[-.EXE]DO"
$ IF F$LOGICAL ("VI$ROOT") .NES. "" THEN DO="@[EXE]DO"
$ !
$ RM=""
$ IF P2 .NES. "" THEN RM=P2
$ IF P1 .NES. "" THEN GOTO 'P1'
$ !
$ ! Build the printable manual by default
$ !
$ MANUAL:
$	VARS="MANUAL" ! Actually there is no such variant, but something is needed
$	EXT="MEM"
$	FILE="VI"
$	IF RM .EQS. "" THEN RM=8
$	GOTO PROCESS
$!
$! Build the tutorial
$!
$ TUTOR:
$	VARS="MANUAL"
$	EXT="MEM"
$	FILE="TUTOR"
$	IF RM .EQS. "" THEN RM=8
$	GOTO PROCESS
$ !
$ ! Build the on-line help manual
$ !
$ HELP:
$	VARS="SYSTEM"
$	EXT="HLP"
$	FILE="VI"
$	IF RM .EQS. "" THEN RM=0
$	GOTO FINAL
$ !
$ PROCESS:
$ !
$	DO RUNOFF/LOG/OUT=NLA0:/RIGHT='RM'/INTERMEDIATE/MESS=USER/VAR='VARS' -
           'FILE'.RNO
$ !
$ ! Do the table of contents
$ !
$	DO RUNOFF/CONTENTS/OUT='FILE' 'FILE'.BRN
$	DO RUNOFF/INDEX/OUT='FILE' 'FILE'.BRN
$ !
$ FINAL:
$	DO RUNOFF/LOG/OUT='FILE'.'EXT'/RIGHT='RM'/MESS=USER/VAR='VARS' 'FILE'.RNO
$	DO PURGE 'FILE'.'EXT','FILE'.RNT
$ !
$	DO DELETE 'FILE'.BRN;*
$ !
$	IF P1 .NES. "HELP" THEN EXIT
$ !
$ INSTALL_HELP:
$ !
$ ! Reinstall help file
$ !
$	WRITE SYS$OUTPUT " "
$   IF F$SEARCH("VI.HLB") .EQS. "" THEN DO LIB/LOG/CREATE/HELP VI
$	INQUIRE/NOPUNCT HELPLIB "Name of library to install HELP files in? "
$	DO LIB/REPLACE/HELP 'HELPLIB' VI.'EXT'
$	EXIT
$ !
$ ! Just install the HELP file
$ !
$ HELPINST:
$	EXT="HLP"
$	VARS="HELP"
$	GOTO INSTALL_HELP
*$*$*EOD*$*$*
$ if f$search("DOC.DIR;1") .eqs. "" then -
     CREATE/LOG/DIRECTORY [.DOC]
$ write sys$output "Creating [.DOC]README."
$ create [.DOC]README.
$ DECK/DOLLARS="*$*$*EOD*$*$*"
There are 17 parts to the distribution of VI written in TPU.  The first,
this file, is a plain text file.  The remainder, are DCL command files.
Files 1-16 should each be executed as DCL procedures in sequence.  Below
is a sequence of steps that should allow you to get VI up and running.

    1)  You should pick a directory to place VI under. Three subdirectories
        will be created during the unpacking process.  They are [.SRC],
        [.EXE], and [.DOC].  The directory names should reveal the purposes of
        these directories. 

    2)  Place all 17 of the VI parts into the directory chosen in step 1.
        For each part, 1 through 16, execute each file as a command procedure
        using the command "@<filename>", where <filename> is the name of
        the file to execute (e.g. @VI_001.COM, followed by @VI_002.COM, etc).
        During the execution of VI_016, several diagnostic messages will
        be displayed.  You should only pay attention to the final message
        that says that the section file was either installed properly or
        was not.

NOTE:
        [.SRC]MAKE.COM invokes the $ INSTALL program to REPLACE the
        VI$ROOT:[EXE]VI.GBL file IFF it is already installed.  One possible
        diagnostic message from INSTALL says 

%INSTALL-E-OPENIN, error opening VI$ROOT:<EXE>VI.GBL; as input
-RMS-F-DEV, error in device name or inappropriate device type for operation

        and can be ignored since, obviously, there is no such logical name
        defined.

        If you have previously installed VI on your machine, but, VI.GBL is
        not 'installed', then you will get a diagnostic to the effect of 

%INSTALL-W-FAIL, failed to DELETE entry for SOME_DEVICE:<SOME_DIRECTORY>VI.GBL
-INSTALL-E-NOKFEFND, Known File Entry not found

        This can also be ignored.

        If you previously installed VI on your machine, and VI.GBL is
        'installed', then this procedure will replace the old one with what
        ever is the latest version of VI.GBL in VI$ROOT:[EXE].  You MUST
        decide whether or not this is what you want to do.  You should EDIT
        [.SRC]MAKE.COM and comment out the INSTALL invocation if desired.

    3)  After executing the VI_016 command file, you should set default to the
        [.SRC] directory, and use the command "$ @make exe,tpusubs" to create
        the VI.EXE executable, and the CALL_USER routines for VI to use. 

    4)  Next, set default to [-.DOC] (from the SRC directory), and execute
        the command "$ @VIDOC", and "$ @VIDOC HELP" to create a printable
        version of the current documentation, as well as a HELP file
        that VI can use.  When asked the question:

            Name of library to install HELP files in?

        you should probably answer, VI, unless you really desire to put the
        help file into a library in another directory.  VI.TPU contains the
        path VI$ROOT:[DOC]VI.HLB as the place where it will work from, so if
        you do not place the help file in this library (It will automatically
        be created for you), then you must edit VI.TPU to contain the proper
        path. 

    5)  Here you have a decision to make.  I have written an interface to
        callable TPU, [-.SRC]VI.MAR.  If you wish to use this interface,
        then there must be a CLD definition for it installed in DCLTABLES.
        This is really only necessary for using VI as a SUB-process, but
        I find it convienent to install the CLD so that I do not have
        to wait for SET COMMAND to complete when I log in.  If do not
        wish to use the callable TPU interface then go to the next step NOW,
        otherwise hang tight.

        The CLD definition that needs to be installed is in [-.EXE]VI.CLD.  If
        you do not have sufficient privileges to install a new DCLTABLES you
        should get prepared to do so, or find someone that will do it for you
        (now is not entirely necessary, as you can skip to step 6, and do this
        later). 

        a)  Take the time to examine the CLD, and make sure it is ok for
            your installation.  If you are on a cluster, then there is
            some extra work that I won't describe here since I have never
            done it.  Basically you need to do the following set of commands.
            (the dollar signs are provide by DCL in case it wasn't obvious).

            $ SET COMMAND [-.EXE]VI.CLD/TABLE=SYS$SHARE:DCLTABLES.EXE/OUT=-
            _$ SYS$SHARE:DCLTABLES.EXE
            $ MCR INSTALL
            INSTALL>SYS$SHARE:DCLTABLES/REPLACE
            INSTALL>EXIT

        b)  This should be all that single CPU sites need to do.  If you
            have a different arrangement at your sight that requires
            something different, then you would know that better than I.
            Remeber that you MUST logout and log back in to have the updated
            DCLTABLES available to your process.  Step 8, below, can not be
            done unless you either 1) do not do (c) below, or 2) you logout and
            log back in after reinstalling DCLTABLES.

        c)  [-.EXE]VI.COM, and [-.EXE]VISETUP.COM contain uses of the symbol,
            "VI".  This symbol is normally equated to "EDIT/TPU".  Once you
            have made the changes necessary to update DCLTABLES, then these
            references should be changed.  In [-.EXE]VI.COM, change VI to
            be "VI", instead of "EDIT/TPU".  In [-.EXE]VISETUP.COM, delete
            the assignment to the variable VI, as the comment there says
            to.

    6)  Next, set default to [-.EXE] (from [.DOC]), and edit the file
        VISETUP.COM.  This file must be executed by each user wishing to
        use VI before they can use it.  You should change the definition of
        VI$ROOT to be the parent directory of the directory you are in NOW.
        E.g. if you are in the directory DUA0:[PUBLIC.VI.DOC], then VI$ROOT
        should be defined to be DUA0:[PUBLIC.VI.].  Note that this file
        potentially defines 3 symbols.  VI allows normal use of VI, VIS
        allows use of the VI.COM procedure to run VI in a subprocess, and
        VIEW allows READONLY editing of a file (as in UNIX).

    7)  The command file VI.COM is used to envoke VI in a sub-process
        so that a minimal amount of overhead for image activation will
        be incurred by the system.  In the VI.COM that you have, there
        are invocations of a SUSPEND, and a RESUME command.  I use these
        commands to suspend kept editors while they are not it use so that
        they will be swapped out or trimmed by the SWAPPER in a more timely
        manner.  This will allow their memory to be put to use by other
        processes whenever possible.  If you do not wish to do this and/or
        do not have these facilities available to you, then you should comment
        out these command lines.

        You may substitute the use of SET PROC/SUSPEND and SET PROC/RESUME
        for these commands.  See the DCL manual or HELP for usage.

    8)  Next, you should be ready to give VI a trial run.  Execute the
        VISETUP.COM procedure in [.EXE].  Then type VI, and hit return.
        You should be off and running.

------------------------
Gregg Wonderly
Department of Mathematics
Oklahoma State University

INTERNET:      gregg at nemo.math.okstate.edu
UUCP:          {ihnp4, rutgers, isucs1}!okstate!nemo.math.okstate.edu!gregg

US MAIL:
401 Mathematical Sciences
Oklahoma State University
Stillwater, OK  74078
*$*$*EOD*$*$*
$ exit



More information about the Comp.sources.misc mailing list