VDE Workspace Macros
Scroll down to see the complete documentation

[F01]<Esc >[LnkAltL]<N>[Esc]= ][Esc]|[Esc]$1[Esc]> <^D[Esc]1[Esc]$$[Esc]=<S^KB[Esc]> >[Esc]!X[Esc]S^D^KB[Esc]~>>[Esc]X^KK[AltL]^[
[F02]<Esc >[Pgf Fmt]<N>[Esc]**[Esc]*f[Esc]=^M1^QD^S[Esc]~ 1^B[K5][Esc]!][Esc]1^X^QS[K5]
[F03]<Esc >[LineDel]<N>^Y
[F04]<Esc >[LineIns]<N>^QS^N
[F05]<Esc >[Dir ^KF]<N>^KF
[F06]<Esc >[</>WspV]<QN>[Esc].1[Esc]$M[Esc]/[Esc]!][Esc]M[Esc]|[Esc]1[Esc]$2^QFwspv^M[Enter]g[Enter][AltN][Esc]!][Esc]2[Esc]$3^QFwspv^M[Enter]m[Enter][Esc]!][Esc]3[Esc]$$[AltL]c:\v\wsp.v/n[Enter]
[F07]<Esc >[Quit^KQ]<N>^KQ
[F08]<EscP>[Prt:Env]<N>[Esc]:[Esc]!_[Esc]E^QB^KPA2"Return Name\Return Street\Return City State Zip"[Enter][Esc]!][Esc]P^KP
[F09]<Esc >[Save^KS]<N>^KS
[F10]<Esc >[Save^KX]<N>^KX
[!01]<Esc >[BlkWord]<QN>[Esc]= ][Esc]=^M][Esc]$1[Esc]> <^D[Esc]1[Esc]$$[Esc]=<S^KB[Esc]> >^S[Esc]T[Esc]=,L[Esc]=.L[Esc]=;L[Esc]=:L[Esc]=-L[Esc]=!L[Esc]=?L^D[Esc]!X[Esc]L^S[Esc]!T[Esc]S^D^KB[Esc]~>>[Esc]X^KK
[!02]<Esc >[BlkFind]<N>^QF^[[Enter][Esc][Esc]$2[AltF][Esc]$$^QR^L^OE[Esc]!][Esc]2[Esc]$$^L[K5]
[!03]<Esc >[BlkBoxG]<QN>^KT[Esc]**[Esc]*i[Esc]*X^KZ[Esc]*O^N^X^KB[Esc]$B[Esc]A[Esc]>^M>[Down][Esc]!A[Esc]B[Up]^KK[AltC]^QP[Down]   ¼[Home]È[End]^S[Esc]$D[Esc]C[Up][Esc]!C[Esc]D»[Home]É[Esc]1Í[Esc]~»1^I»[Esc]3º[Esc]~¼3^I¼[Esc]5Í[Esc]~È5^IÈ[Esc]7º[Esc]~É7^D^D^X[AltP]^KZ^KH
[!04]<Esc >[BlkBoxT]<QN>^KT[Esc]**[Esc]*i[Esc]*X^KZ[Esc]*O^N^X^KB[Esc]$B[Esc]A[Esc]>^M>[Down][Esc]!A[Esc]B[Up]^KK[AltC]^QP[Down]   +[Home]+[End]^S[Esc]$D[Esc]C[Up][Esc]!C[Esc]D+[Home]+[Esc]1-[Esc]~+1^I+[Esc]3|[Esc]~+3^I+[Esc]5-[Esc]~+5^I+[Esc]7|[Esc]~+7^D^D^X[AltP]^KZ^KH
[!05]<Esc >[BlkMenu]<N>[^Esc]B
[!06]<Esc >[BlkUnm ]<N>^KH
[!07]<Esc >[BlkMove]<N>^KV
[!08]<Esc >[BlkCopy]<N>^KC
[!09]<Esc >[BlkMath]<QN>[Esc]*I^QK[AltR]MATH ^[>c:\v\3[Enter][Esc] = ^KRc:\v\3[Enter]^KJc:\v\3[Enter]
[!10]<Esc >[BlkSort]<N>[Esc]*c^QB^KWc:\v\7[Enter][AltR]SORT<c:\v\7>c:\v\8[Enter][Esc]^KY^KRc:\v\8[Enter]^KJc:\v\7[Enter]^KJc:\v\8[Enter]
[^01]<Esc >[Add2Wsp]<N>[Esc]$N^QFwspv^M[Enter]g[Enter][Esc]!][Esc]N[Esc]$1[Esc]**[Esc]$$^KS[Esc]1[Esc]|[Esc]$2^QF^R[Enter]m[Enter][Esc]!3[Esc]2[Esc]$$[AltL]c:\v\wsp.v/n[Enter][Esc]3[Esc]/[AltR]echo ^F>c:\v\wsp.xf[Enter][Esc][Esc]/^QC^KRc:\v\wsp.xf[Enter]^KS[Esc]/
[^02]<Esc >[LFN2Wsp]<N>[Esc]$N^QFwspv^M[Enter]g[Enter][Esc]!][Esc]N[Esc]$1[Esc]**[Esc]$$^KS[Esc]1[Esc]|[Esc]$2^QF^R[Enter]m[Enter][Esc]!3[Esc]2[Esc]$$[AltL]c:\v\wsp.v/n[Enter][Esc]3[Esc]/[AltR]LOCATE ^F /NR /O:"&W">c:\v\wsp.xf[Enter][Esc][Esc]/^QC<^KRc:\v\wsp.xf[Enter]^QD>^KS[Esc]/
[^03]<Esc >[Rlr2Txt]<QN>^OR[Esc]^OO0[Enter][Esc]**[Esc]*x[Esc]*i[Esc]*V^QS^N^NR^OF^EL[Enter][Esc]*X[Esc](16)[Esc]1[Tab]!^S[Esc]-X[Esc]!1[Esc]X[Enter]^KK^E^E^KB^QK
[^04]<Esc >[Txt2Rlr]<QN>^OR[Esc][Esc]*V[Esc]*c[Esc]**[Esc]*i[Esc]*f^QS[Esc]=^MV^KB^QD^KK^KZ[Esc]$R[Esc]~L>^OL[Enter][Esc]R^QS[Esc]$T[Esc]~R>^OR[Enter][Esc]T^KZ[Esc]V^X^QS[Esc]=^MX^ON*[Enter][Esc]=!X^KB^QD^KK^KZ[Esc]$2[Esc]1[Esc]~!>^OI[Enter]^D[Esc]!1[Esc]2^KZ[Esc]X^KH[Enter]
[^05]<EscM>[Fmt:BPN]<N>[Esc]*X[Esc]$M^OX[Esc]1[Esc]$$[Esc]*p[Esc]:[Esc]!_[Esc]B[Esc]*S[Esc]#L4+^OO-2[Enter][Esc]!][Esc]P[Esc]*S^OL4[Enter]^OR78[Enter]^OO4[Enter][Esc]!][Esc]N[Esc]*S^OL4[Enter]^OR78[Enter]^OO0[Enter][Esc]!][Esc]M^KE/D[Enter][Esc]!1
[^06]<Esc >[Just:CR]<QN>[Esc]**[Esc]*X[Esc]:[Esc]!_[Esc]C[Esc]$1^OX^OC[Esc]!][Esc]1^KE/D[Enter]^OL1[Enter]^OR80[Enter]^OC^KE/N[Enter][Esc]!][Esc]R[Esc]$2^OX^OF[Esc]!][Esc]2^KE/D[Enter]^OL1[Enter]^OR80[Enter]^OF^KE/N[Enter]
[^07]<Esc >[P/S:NIU]<N>^OL3[Enter]^OR58[Enter][Esc]*P[Esc]*S[Esc]:[Esc]!_[Esc]N^OO0[Enter][Esc]!][Esc]I^OO3[Enter][Esc]!][Esc]U[Esc]*p[Esc]*s^OL1[Enter]^OR79[Enter]^OO0[Enter]
[^08]<EscD>[Dat:Cal]<N>[Esc]:[Esc]!_[Esc]D[Esc]**[Esc]*I[Esc]*c$[AltD]^S^S^KB20^D^D-^KK[Esc]~$<^G^KV^QK^KH^D[Esc]=/1[Esc]!2[Esc]1^S0[Esc]2^D^G-^D[Esc]=/3[Esc]!4[Esc]3^S0[Esc]4^D^G [AltT][Enter][Esc]!][Esc]C^QS^N[AltR]CAL>c:\v\cal.v[Enter][Esc]^KRc:\v\cal.v[Enter]
[^09]<Esc >[LocFils]<N>[AltR]LOCATE . /D-/D:T-60/O:"&7 &8 &5 &F &W"|SORT /R>c:\v\locfils.v
[^10]<Esc >[Sav2Wsp]<QN>[Esc]$1^QFwspv^M[Enter]gm[Enter]^KX[Esc]1[AltR]echo.>>c:\v\wsp.v[Enter][Esc][Esc]2[Esc]$3[Esc]**[Esc]$$^KS[Esc]3[AltR]echo ^F>>c:\v\wsp.v[Enter][Esc]^KQ[Esc]!2
[@01]<Esc >[Find^Rm]<N>[AltN]^QF^R[Enter]gm[Enter]
[@02]<Esc >[2Win ^X]<N>[AltF]^QS^X[AltF]^QS^X
[@03]<Esc >[vtfLoad]<N>^KWc:\v\t.vtf[Enter][AltR]VTF2VDK[Enter][Esc][AltU]Lt.vdk[Enter]
[@04]<Esc >[vtf<vdk]<N>[AltR]VDK2VTF[Enter][Esc][AltL][^Enter]^KRc:\v\t.vtf[Enter]
[@05]<EscL>[LineL>R]<QN>^QS[Esc]=^MB^N[Esc]B[Esc]$N[Esc]**[Esc]*X^OX[Esc]$M[Esc]1-[Esc]!1[Esc]N[Esc]$$[Esc](80)[Esc]2-[Esc]-Q[Esc]!2[Esc]Q[Enter][Esc]!][Esc]M[BkSp][Enter]
[@06]<Esc >[NextPgf]<QN>^QS[Esc]1^X[Esc]~^M1[Esc]2^X[Esc]=^M2[K5]
[@07]<Esc >[PrevPgf]<QN>^QS[Esc]1^E[Esc]~^M1[Esc]2^E[Esc]=^M2[Esc]3^E[Esc]~^M3^X[K5]
[@08]<Esc >[SoftCRs]<N>^QS^X[Esc]=^M2^S^S[Esc]= 1^D [Esc]1^X[Esc]![[Esc]2^E
[@09]<Esc >[RefmtRM]<QN>[Esc]*f[Esc]*s[Esc]=^M1^OW[Esc]#L0+[Esc]*d[Esc]*R^QM^OR[Enter]^QP[Esc]1^B[K5]
[@10]<Esc >[^KJ^F  ]<N>^KJ^F
[F11]<Esc >[^QF    ]<N>^QF
[F12]<Esc >[^L K5  ]<N>^L[K5]
[!11]<Esc >[^QA    ]<N>^QA
[!12]<Esc >[v.v:WRZ]<N>[Esc]:[Esc]!_[Esc]W^KW+c:\v\v.v[Enter][AltR]CLIPTEXT FROM c:\v\v.v /OEM[Enter][Esc][Esc]!][Esc]R^KS[AltR]CLIPTEXT TO c:\v\v.v /APPEND /OEM[Enter][Esc]^KB^KRc:\v\v.v[Enter]^QP^KK[Esc]!][Esc]Z^KJc:\v\v.v[Enter]
[^11]<Esc >[vfxList]<QN>^QS^KB^X^KK^KW+vfx.t[Enter]
[^12]<Esc >[vfxFind]<QN>^QS[Esc]=^MV[Esc]-F[Esc](1)[Esc]<!>^KB^QD^KK^QF^[[Enter]g[Enter]^OE[Esc]!][Esc]F[Esc]$V^QC^QF^R[Enter]b[Enter][K5][Esc]!][Esc]V[Esc](0)[Esc]$$^QC^QF<vfx>[Enter]b[Enter]^OE
[@11]<Esc >[LoadVDF]<N>[AltU]L*.vdf[Enter]
[@12]<Esc >[Ld/Comp]<N>[Esc]$C[AltL]c:\v\wspace.vtf[Enter][Esc]!][Esc]C[Esc]$$^KS[AltR]vmc ^F[Enter][Esc][AltU]L^F[Bksp][Bksp]df[Enter]

Go back to:
Macro Viewer
Mostly VDE

NOTE ABOUT THE FORMAT OF THIS FILE
WSPACE.VTF is an example of documenting macros in a compilable .VTF file
   by adding text after the [@12] macro, where VMC.COM stops compiling. The
   [@12] macro "place" must be occupied to satisfy VMC.COM, even if only by a
   blank "[@12]<Esc >[ ----- ]<N>" for example.

EDITING THE MACROS
       --> file mode /N recommended
       --> macros start from top of file, line 1 column 1
       --> macros start in column 1 and use one line each
       --> no blank lines between macros
       --> macros must be in the same sequence as the 48 macros here
       --> but not all macro keys have to be used (less than 48 lines OK)
       --> [@12] macro is required (it can be non-functional) to stop VMC's
           processing, permitting unlimited documentation to follow

   Find and replace can be used to adapt these macros to your system. The
   only path hard-coded into the macros and text is "c:\v\", which is my VDE
   directory. The explicit path for this file, WSPACE.VTF, in the [Ld/Comp]
   macro, should be the VDE directory since it becomes the path of the
   compiled WSPACE.VDF. Likwise, the other macros and the documentation in
   the "macro operations" category should reference your VDE directory
   In the other macros, the hard-coded path need not be the VDE directory.
   The phrase "** User editing" marks the specific notes about adapting
   each macro to your system.

   Once the hard-coded drive and VDE directory path references have been
   updated to match your system, this .VTF is ready to compile.

   Please refer to Evan Slawson's VMC.DOC for details of the .VTF format for
   macro source files, how to compile and decompile VDE macros, etc.

   There is a <vfx> section (index) at the end of this file, ready for use if
   you already have the [vfxFind] macro installed. The [vfxFind] macro is also
   included here at [^12].

Go back to:
Top of page
Macro Viewer
Mostly VDE

MACRO DOCUMENTATION BY CATEGORY
WORKSPACE

[F01]<Esc >[LnkAltL] ___________________________________________________________
   After confirmation, [LnkAltL] opens the path\filename.ext where the cursor
   is positioned. Handles long path and file names, wildcards, file modes,
   [search targets], multiple files. [LnkAltL] is for use with workspace file
   WSP.V and all other files containing links.

   See [</>WspV] macro for navigation note.

[F01]<Esc >[LnkAltL]<N>
[Esc]= ]                ;quit if cursor is on a space
[Esc]|                  ;mark current file for segment navigation
[Esc]$1                 ;trap error moving left from first byte of file
[Esc]> <                ;search left for char with ASCII value <= 20h (space)
  ^D                    ;one char right to exclude the "stop" character
[Esc]1                  ;main process
[Esc]$$
[Esc]=<S                ;if "<" precedes path\filename, go to (S)pace process
  ^KB[Esc]> >           ;else start block, search right for ASCII <= 20h
[Esc]!X
[Esc]S                  ;(S)pace process
  ^D^KB                 ;exclude "<" and begin block
[Esc]~>>                ;search right for closing ">"
[Esc]X
  ^KK[AltL]^[           ;end block, input block at [AltL] prompt

   The information in Eric Meyer's VDE.DOC, about opening files from the DOS
   command line, also applies to input at the AltL prompt of [LnkAltL].

   Specific references:
       <c:\v\vde.doc[===  4. DOS SYNTAX  ===]>
       <c:\v\vde.doc[===  5. BEYOND DOS  ===]>

   For [LnkAltL], links should simply be valid for VDE. In addition, links
   that contain space(s) must be <enclosed in angle brackets>. To select a
   link for [LnkAltL], put the cursor anywhere in it, but always to the left
   of any space, and run the macro.

   Example link:
       VDE.DOC (if on the same dir as the current file)
       C:\V\VDE.DOC

   The link must be separated from its surroundings, left and right.
   Common valid separators (preceding character) on the left end:
       + the end of the preceding line
       + space
       + tab
       + nothing (when the link starts at the top of a file)

   Common valid separators (following character) on the right end:
       + the end of the line
       + space
       + tab

   A line-drawing character, for example, can't be the character preceding or
   following a link, because [LnkAltL] would include it in the block.

   [LnkAltL] blocks your link and inputs it at the AltL prompt. Press [Enter]
   to confirm, or edit the entry at the prompt (for example, add a /file mode
   or [search target], or replace the filename or extension with `wildcard(s)
   to get the VDE browser in that path), or press [Esc] to cancel.

   Examples: C:\V\VDE.DOC  C:\V\VDE.DOC/D  C:\V\*.DOC  C:\V\*.DOC/D

   If you want to use a wildcard filespec again, simply add it manually to
   WSP.V.

   Long file names:
   The following examples are functionally equivalent as links to open
   "c:\v\longfilename.txt" in file mode /N at line [6]:
       c:\v\longfilename.txt/N[6]
       "c:\v\longfilename.txt"/N[6]
       <"c:\v\longfilename.txt"/N[6]>
       <c:\v\longfilename.txt /N[6]>
       <c:\v\longfilename.txt[6] /N>

   All are valid under Windows 9x or above, except NT, to open file
   LONGFILENAME.TXT in VDE mode /N and position the cursor on line 6.
   [LnkAltL] requires <angle brackets> around a link containing space(s).

   There are other valid variations not included above. The examples show that
   VDE accepts "quotes" even if they are not needed, and the [LnkAltL] and
   [BlkWord] macros accept <angle brackets> even if they are not needed.

   VDE requires "quotes" around a long filename that contains spaces,
   commas, or square brackets '[]'.
       Example: <"C:\MY DOCUMENTS\WORD PROCESSING.TXT">

   If you have added a [search string] that includes a space, enclose the
   entire link in <angle brackets> regardless of whether there are other
   spaces in the link.
       Example: <C:\V\LOG.TXT[LAST YEAR]>

   A long file name can be followed by a file mode or [search target], after
   the closing quotation marks.
       Example: <"c:\my documents\letters\city library.doc"/m[card]>

   A wildcard filespec (to invoke the VDE file browser) must be in 8.3 format.
       Examples: c:\mydocu~1\*.doc (NOT <"c:\my documents\*.doc">)
                 <c:\mydocu~1 /m> browses files and subdirs, opens in mode /M

   Multiple files on one line can be separated by commas and/or spaces, but
   not by hard [Tab]s.
       Examples: c:\v\vde.doc,c:\v\*.vtf
                 <c:\v\vde.doc c:\v\*.vtf>
                 <c:\v\vde.doc, *.vtf>
   Each opens vde.doc, then displays the file browser for .VTF files. The
   third example shows how the previous filespec's path carries over to the
   next link.

   Wildcard links can precede specific links.
       Example: c:\v\*.vtf,vde.doc
   First, displays the browse screen (*.vtf wildcard). Whenever you complete
   browse screen operations (including multiple selections or [Esc] to make
   no selection), C:\V\VDE.DOC will be opened. Since there are no spaces,
   <angle brackets> aren't needed.

   LFN length limitation: The VDE input line (where [LnkAltL] inputs the
   path\filename.ext) is limited to 127 characters. However, a Windows LFN
   may have up to 253 characters.

Go back to:
Top of page
Macro Viewer
Mostly VDE

[@01]<Esc >[Find^Rm] ___________________________________________________________
   If [LnkAltL] attempts to open a file at a [text string], but encounters an
   Invalid Filespec error because the file is already open, you can use the
   [Find^Rm] macro to perform a global, multifile search for the [text
   string]. This only works with text strings, which feed into a virtual ^QF
   command, not page or line numbers, which feed into a virtual ^QI command.

   [Find^Rm] is also a convenient way to extend any previously non-global or
   single-file search.

[@01]<Esc >[Find^Rm]<N>
  [AltN]                ;start the global multifile search in the next file
  ^QF^R[Enter]gm[Enter] ;  segment, to avoid "finding" the search string
                        ;  in the [LnkAltL] filespec[target]. Reiterating the
                        ;  search will ultimately return to the origin.


[F06]<Esc >[</>WspV] ___________________________________________________________
   [</>WspV] is the "shuttle" macro, using VDE's segment navigation tools.
   See <c:\v\vde.doc[SEGMENT NAVIGATION (Esc|,\,/,]>.

   If there is a navigation mark in any segment other than the one from
   which [</>WspV] is run, [</>WspV] simply uses [Esc]/ to shuttle between
   the current segment and the marked segment. Examples:

    (1) If used immediately after [LnkAltL] has added a file, [</>WspV]
        switches back and forth between the newly opened file and the file
        containing the the link from which [LnkAltL] was run. This makes it
        easy to cursor to a different link to open another file.

    (2) If used immediately after [Add2Wsp] or [LFN2Wsp], [</>WspV] switches
        back and forth between the newly listed link on WSP.V and the file
        just listed. This makes it easy to edit the link, for example to add a
        comment or [page] or [line] number, then switch back to the file.

    (3) If the shuttle is between WSP.V and file A, but you want to shuttle
        between files A and B, [</>WspV] to WSP.V, then navigate manually to
        file B using AltN, AltB, or AltK. Now the shuttle is between files A
        and B.

   If [</>WspV] is run from the segment marked for navigation, or there is no
   navigation mark in any segment, then [Esc]/ can't work. [</>WspV] solves
   the problem as follows:

    (1) If [</>WspV] is run from any file OTHER THAN WSP.V, it sets up a
        shuttle between that file and WSP.V. If WSP.V is not open,
        [</>WspV] will open it. In other words, WSP.V is the default
        shuttle "partner" when a simple [Esc]/ doesn't work.

    (2) If [</>WspV] is run from WSP.V itself, it sets up a shuttle
        between WSP.V and the next segment (reached by AltN). If that's
        not where you wanted to go, navigate to the preferred segment
        manually using AltN, AltB, or AltK. [</>WspV] will then shuttle
        between that segment and WSP.V.

[F06]<Esc >[</>WspV]<QN>
[Esc].1                         ;test if this segment is marked for navigation
[Esc]$M                         ;trap the marked segment Not Found error
[Esc]/                          ;shuttle to the marked segment, if any
[Esc]!]                         ;end
[Esc]M
[Esc]|                          ;mark the current segment for navigation
[Esc]1
[Esc]$2                         ;trap the ID string Not Found error
  ^QFwspv^M[Enter]g[Enter]      ;is the current file WSP.V? if so,
  [AltN]                        ;  go to the next segment in the queue
[Esc]!]                         ;end
[Esc]2
[Esc]$3                         ;trap the ID string Not Found error
  ^QFwspv^M[Enter]m[Enter]      ;go to file WSP.V if it's open
[Esc]!]                         ;end
[Esc]3
[Esc]$$
  [AltL]c:\v\wsp.v/n[Enter]     ;open file WSP.V as the current file

** User editing of the [</>WspV] macro:
   Edit the "c:\v\" path for WSP.V as necessary.


[^01]<Esc >[Add2Wsp] ___________________________________________________________
   Appends the DOS 8.3 path\filename.ext of the current file to file WSP.V.

   See [</>WspV] macro for navigation note.

[^01]<Esc >[Add2Wsp]<N>
[Esc]$N                                 ;trap the ID string not found error
  ^QFwspv^M[Enter]g[Enter][Esc]!]       ;do nothing if file is WSP.V
[Esc]N                                  ;normal process for any other file
[Esc]$1                                 ;trap the read-only file error
[Esc]**                                 ;error if file is read-only
[Esc]$$                                 ;end macro if file is untitled
  ^KS                                   ;save; error if file is untitled
[Esc]1
[Esc]|                                  ;set segment navigation mark
[Esc]$2                                 ;trap the ID string Not Found error
  ^QF^R[Enter]m[Enter]                  ;find file WSP.V if it's open
[Esc]!3
[Esc]2
  [Esc]$$
  [AltL]c:\v\wsp.v/n[Enter]             ;otherwise open it
[Esc]3
[Esc]/                                  ;shuttle to file to be listed
  [AltR]echo ^F>c:\v\wsp.xf[Enter][Esc] ;write path\filename.ext to WSP.XF
[Esc]/                                  ;shuttle to WSP.V
  ^QC                                   ;cursor to end of WSP.V
  ^KRc:\v\wsp.xf[Enter]                 ;add path\filename.ext to WSP.V
  ^KS                                   ;save WSP.V
[Esc]/                                  ;shuttle to file now listed

** User editing of the [Add2Wsp] macro:
   Edit the "c:\v\" path for WSP.V and WSP.XF as needed.

   Unlike [Sav2Wsp], [Add2Wsp] requires at least one file segment to be
   available for WSP.V.

   [Add2Wsp] saves the file being listed. To prevent any change to the file on
   disk, make it read-only.

   [Add2Wsp] will end with an Invalid Filespec error if run from an untitled
   file. Solution: Name the file (^KE) and re-run.

   If run from file WSP.V, [Add2Wsp] does nothing (does not list WSP.V on
   itself).


[^02]<Esc >[LFN2Wsp] ___________________________________________________________
   [LFN2Wsp] is the long file name (LFN) version of [Add2Wsp]. It appends the
   LFN path\filename.ext of the current file to file WSP.V, enclosing the link
   in "quotes" and  <angle brackets>.

   The LFN and the DOS 8.3 versions of filespecs are equally usable by VDE.
   The LFN has the advantage of being the constant, "real" filename when a
   file with LFN is moved to a different directory or file system.

   See [</>WspV] macro for navigation note.

[^02]<Esc >[LFN2Wsp]<N>
[Esc]$N                                 ;trap the ID string not found error
  ^QFwspv^M[Enter]g[Enter][Esc]!]       ;do nothing if file is WSP.V
[Esc]N                                  ;normal process for any other file
[Esc]$1                                 ;trap the read-only file error
[Esc]**                                 ;error if file is read-only
[Esc]$$                                 ;end macro if file is untitled
  ^KS                                   ;save; error if file is untitled
[Esc]1
[Esc]|                                  ;set segment navigation mark
[Esc]$2                                 ;trap the ID string Not Found error
  ^QF^R[Enter]m[Enter]                  ;find file WSP.V if it's open
[Esc]!3
[Esc]2
  [Esc]$$
  [AltL]c:\v\wsp.v/n[Enter]             ;otherwise open it
[Esc]3
[Esc]/                                  ;shuttle to file to be listed
  [AltR]LOCATE ^F /NR /O:"&W">c:\v\wsp.xf[Enter][Esc]   ;write LFN to WSP.XF
[Esc]/                                  ;shuttle to WSP.V
  ^QC                                   ;cursor to end of WSP.V
  <^KRc:\v\wsp.xf[Enter]^QD>            ;add fully qualified <"LFN"> to WSP.V
  ^KS                                   ;save WSP.V
[Esc]/                                  ;shuttle to file now listed

** User editing of the [LFN2Wsp] macro:
   Edit the "c:\v\" path for WSP.V and WSP.XF as needed.
   Put LOCATE.COM anywhere on your path.

   LFN2Wsp] requires LOCATE.COM, a freeware file finder by Charles Dye:
        http://www.highfiber.com/~raster/freeware.htm

   Unlike [Sav2Wsp], [LFN2Wsp] requires at least one file segment to be
   available for WSP.V.

   [LFN2Wsp] saves the file being listed. To prevent any change to the file on
   disk, make it read-only.

   [LFN2Wsp] will end with an Invalid Filespec error if run from an untitled
   file. Solution: Name the file (^KE) and re-run.

   If run from file WSP.V, [LFN2Wsp] does nothing (does not list WSP.V on
   itself).


[^10]<Esc >[Sav2Wsp] ___________________________________________________________
   [Sav2Wsp] saves each open file (unless read-only}, appends each
   path\filename.ext to file WSP.V on disk, closes each file individually, and
   ends the VDE session.

[^10]<Esc >[Sav2Wsp]<QN>
[Esc]$1                                 ;trap the ID string Not Found error
  ^QFwspv^M[Enter]gm[Enter]             ;if WSP.V is open, find it
  ^KX                                   ;save and close it
[Esc]1
  [AltR]echo.>>c:\v\wsp.v[Enter][Esc]   ;append blank separator line to WSP.V
[Esc]2
[Esc]$3
[Esc]**                                 ;skip ^KS if file is read-only
[Esc]$$                                 ;end macro if file is untitled
  ^KS                                   ;save; error if file is untitled
[Esc]3
  [AltR]echo ^F>>c:\v\wsp.v[Enter][Esc] ;append path\filename.ext to WSP.V
  ^KQ                                   ;close the file
[Esc]!2                                 ;loop until all files are closed

** User editing of the [Sav2Wsp] macro:
   Edit the "c:\v\" path for WSP.V as necessary.

   The [Sav2Wsp] macro works without WSP.V being open, thus making all 8 file
   segments available for workspace files.

   If [Sav2Wsp] encounters an untitled file, it will end with an Invalid
   Filespec error. Solution: Name the file (^KE) or abandon it (^KQ), then run
   [Sav2Wsp] again to list, save, and close all remaining open files.

   [Sav2Wsp] saves each open file. To prevent any change to the file(s) on
   disk, make them read-only.

Go back to:
Top of page
Macro Viewer
Mostly VDE

FILES

[F05]<Esc >[Dir ^KF] ___________________________________________________________
   [Dir ^KF] prompts to open VDE file browser. Respond with [Enter] to display
   files in the path of the current file, or respond with a different path
   and/or filename.ext specification, including wildcards, and [Enter].

[F05]<Esc >[Dir ^KF]<N>
  ^KF


[F07]<Esc >[Quit^KQ] ___________________________________________________________
   [Quit^KQ] abandons the current file without saving.

[F07]<Esc >[Quit^KQ]<N>
  ^KQ


[F09]<Esc >[Save^KS] ___________________________________________________________
   [Save^KS] saves the current file.

[F09]<Esc >[Save^KS]<N>
  ^KS


[F10]<Esc >[Save^KX] ___________________________________________________________
   [Save^KX] saves and closes the current file.

[F10]<Esc >[Save^KX]<N>
  ^KX


[@09]<Esc >[^KL^F< ] ___________________________________________________________
   [^KL^F< ] reloads the current file from disk. Used to status back to the
   disk version of a file.

[@09]<Esc >[^KL^F< ]<N>
  ^KL^F[Enter]


[@10]<Esc >[^KJ^F  ] ___________________________________________________________
   [^KJ^F  ] prompts to delete the current file from disk. Press [Enter] to
   confirm, [Esc] to cancel.

[@10]<Esc >[^KJ^F  ]<N>
  ^KJ^F


[^09]<Esc >[LocFils] ___________________________________________________________
   [LocFils] uses LOCATE.COM to create a file consisting of a list of files.

   The macro consists of a single DOS command, which is displayed in the
   VDE AltR shell and can be edited on the fly before it's executed.

   Refer to Charles Dye's <c:\v\locate.txt[OPTIONS (IN DEPTH)]> for full
   information on the /D-, /D:, /O: and other options. The file selection and
   list options used in this [LocFils] implementation are:
        "." refers to current VDE shell path
        "/D-" excludes subdirectories
        "/D:T-60" includes files dated within the last 60 days
        "/O:" macro substitutions generate to the list for each file:
            "&7" file date in YYYY-MM-DD format
            "&8" file time
            "&5" file size
            "&F" fully qualified path\filename
            "&W" Windows LFN
        "SORT /R" sorts the list to reverse date/time (latest first)

   The fully qualified path\filename is a link, ready for the [LnkAltL]
   macro.

[^09]<Esc >[LocFils]<N>
  [AltR]LOCATE . /D-/D:T-60/O:"&7 &8 &5 &F &W"|SORT /R>c:\v\locfils.v

** User editing of the [LocFils] macro:
   Edit the "c:\v\" path for file LOCFILS.V as needed.
   Put LOCATE.COM anywhere on your path.
   [LocFils] is intended as a template. Any of the LOCATE.COM parameters
   should be changed or deleted to suit.

** [LocFils] requires LOCATE.COM, a freeware file finder by Charles Dye:
        http://www.highfiber.com/~raster/freeware.htm

   [LocFils] executes SORT, which is supplied with DOS and Windows.
   Refer to the [BlkSort] macro documentation for alternative programs.

Go back to:
Top of page
Macro Viewer
Mostly VDE

LINES AND PARAGRAPHS

[F02]<Esc >[Pgf Fmt] ___________________________________________________________
   [Pgf Fmt] reformats the current paragraph, then centers the cursor line
   vertically.

   Exception: Lines ending with a hard return are not reformatted; the cursor
   skips to the next line, column 1. (You can use ^B to reformat such lines.
   The macro skips them in case they are divider lines, math expressions, or
   some other text that should remain on a single line.)

[F02]<Esc >[Pgf Fmt]<N>
[Esc]**[Esc]*f                  ;set Autoformat OFF during macro run
[Esc]=^M1                       ;if line is blank, skip
  ^QD^S
[Esc]~ 1                        ;if line ends in hard return, skip
  ^B[K5]                        ;reformat paragraph
[Esc]!]
[Esc]1
   ^X^QS[K5]                    ;go to next line


[@08]<Esc >[SoftCRs] ___________________________________________________________
   From the cursor line down, [SoftCRs] ends each line, except the last line
   of the paragraph (the last line before a blank line), with a "soft" CR (one
   space followed by [CR/LF]). Lines that already end with a soft CR are
   unchanged. When [SoftCRs] encounters a blank line, it returns the cursor to
   the last line of the paragraph and ends.

   [SoftCRs] differs from ^OY^B (Hard Reform mode plus reformat) in that it
   softens the CRs without reformatting. Thus it can be used to prepare a
   paragraph for [RefmtRM]. Note that [SoftCRs] processes only from the
   current line down, not necessarily the entire paragraph.

   Caution: [SoftCRs] expects a blank line to separate paragraphs. (^OY,
   unlike [SoftCRs], recognizes a change of indentation as marking a new
   paragraph.)

[@08]<Esc >[SoftCRs]<N>
  ^QS                           ;go to the beginning of the current line
  ^X                            ;go down to the next line
[Esc]=^M2                       ;end macro if the line is blank
  ^S^S                          ;go to penultimate character of previous line
[Esc]= 1                        ;if it's a space, do nothing
  ^D [Esc]1                     ;otherwise type a space following it
  ^X                            ;go down to the next line
[Esc]![                         ;loop
[Esc]2
  ^E                            ;go back to the last line of the paragraph


[@09]<Esc >[RefmtRM] (for VDE 1.95 and later) __________________________________
   Without using specific left or right margin values, the [RefmtRM] macro
   reformats the current paragraph, using VDE's auto-set command (^OW) to set
   the left margin and a user's place mark (^KM) to set the right margin.

   Before running [RefmtRM], the user manually sets a place mark at the
   desired right margin column. The place mark is effective for the current
   file segment, and can be anywhere in the segment. There can be other place
   marks in the segment, but the one used by [RefmtRM] must be the first.

   Also, since VDE will find and use the existing left margins and indents,
   they must be correct (have the correct "shape") before [RefmtRM] is used.

   Although [RefmtRM] processes a single paragraph on each run, it is designed
   to reformat up to an entire segment, from the current paragraph down, while
   the function key is held.

   [RefmtRM] does not produce the desired outcome in the following case:
     A one-line paragraph that should have a hanging indent, after
       reformatting to a reduced right margin, will instead wrap to column 1
       for the second and subsequent lines.
     Suggested solution: If there are paragraphs nearby that already have the
       desired hanging indent, running [RefmtRM] to reformat one of them will
       leave the margins set correctly to manually reformat the erstwhile
       one-line paragraph that has now wrapped to column 1.

[@09]<Esc >[RefmtRM]<QN>
[Esc]*f                 ;set autoformat OFF
[Esc]*s                 ;set single line un-indent OFF (VDE default)
[Esc]=^M1               ;skip blank line
  ^OW                   ;auto-set margins and justification; error if nondoc
[Esc]#L0+               ;neutral placeholder for left margin value adjustment
[Esc]*d                 ;*D=double space, *d=single space, delete = auto-set
[Esc]*J                 ;*J=Justify, *R=Remove, delete = auto-set
  ^QM                   ;find the right margin mark; if none, macro ends
  ^OR[Enter]            ;set right margin
  ^QP                   ;return cursor to previous position
[Esc]1
  ^B                    ;reformat paragraph
[K5]                    ;center cursor line vertically

Go back to:
Top of page
Macro Viewer
Mostly VDE

** User editing of the [RefmtRM] macro:
   "[Esc]#L0+" command: This command adjusts the left margin value by a
   constant amount in all paragraphs, while preserving the existing indents
   and thus the "shape" of the document. The initial value of this adjustment
   is zero (no change).
   Reference:
       <c:\v\vde.doc[VALUE ADJUSTMENT (Esc#)]>

   "[Esc]*d" command: This command is for [RefmtRM] to single space all
   paragraphs it reformats. "[Esc]*D" would result in uniform double spacing.
   Deleting this command entirely will cause VDE to determine and maintain the
   current spacing. References:
   <c:\v\vde.doc[TOGGLE CONTROL (Esc*)]>
   <c:\v\vde.doc[LINE SPACING (^OS,^OW)]>

   "[Esc]*R" command: This command is for [RefmtRM] to de-justify all
   paragraphs it reformats (equivalent to J-). "[Esc]*J" would result in
   uniform right justification, Deleting this command entirely will cause VDE
   to determine and maintain the current justification.
   References:
       <c:\v\vde.doc[TOGGLE CONTROL (Esc*)]>
       <c:\v\vde.doc[JUSTIFICATION (^OJ,^OW)]>


[F03]<Esc >[LineDel] ___________________________________________________________
   [LineDel] deletes the current line.

[F03]<Esc >[LineDel]<N>
  ^Y


[F04]<Esc >[LineIns] ___________________________________________________________
   [LineIns] inserts a blank line, regardless of the cursor column.

[F04]<Esc >[LineIns]<N>
  ^QS^N


[@06]<Esc >[NextPgf] ___________________________________________________________
   [NextPgf] finds the beginning of the next paragraph, if the paragraphs are
   separated by one or more blank lines.

[@06]<Esc >[NextPgf]<QN>
  ^QS
[Esc]1^X[Esc]~^M1
[Esc]2^X[Esc]=^M2[K5]


[@07]<Esc >[PrevPgf] ___________________________________________________________
   [PrevPgf] finds the beginning of the previous paragraph, if the paragraphs
   are separated by one or more blank lines.

[@07]<Esc >[PrevPgf]<QN>
  ^QS
[Esc]1^E[Esc]~^M1
[Esc]2^E[Esc]=^M2
[Esc]3^E[Esc]~^M3^X[K5]

Go back to:
Top of page
Macro Viewer
Mostly VDE

MARGIN SETTING, RULERS, LINE JUSTIFICATION

[^05]<EscM>[Fmt:BPN] ___________________________________________________________
   [Fmt:BPN] is a "menu" macro. At the "? Esc!" prompt:
       Press B for (B)ullets left-indented 4 cols with 2 hanging for bullet
       Press P for L=4, R=78, (P)aragraph indent=4
       Press N for L=4, R=78, (N)o paragraph indent

[^05]<EscM>[Fmt:BPN]<N>
[Esc]*X
[Esc]$M                         ;trap margin release error in nondocument
  ^OX
[Esc]1
[Esc]$$
[Esc]*p                         ;set proportional spacing OFF
[Esc]:[Esc]!_
[Esc]B
[Esc]*S[Esc]#L4+^OO-2[Enter]                    ;(B)ullets
[Esc]!]
[Esc]P
[Esc]*S^OL4[Enter]^OR78[Enter]^OO4[Enter]       ;(P)aragraph indent
[Esc]!]
[Esc]N
[Esc]*S^OL4[Enter]^OR78[Enter]^OO0[Enter]       ;(N)o paragraph indent
[Esc]!]
[Esc]M
  ^KE/D[Enter]                  ;changes nondocuments to /D mode by default
[Esc]!1

** User editing of the [Fmt:BPN] macro:
   Change the margin and indent values to suit.


[^04]<Esc >[Txt2Rlr] ___________________________________________________________
   [Txt2Rlr] sets margins and tabs from a two-line text ruler.

   Caution:
   This macro uses the Block Zoom command, but does not protect against Block
   Zoom already being set. It won't work correctly if Block Zoom is already in
   effect.

   Example of a text ruler used by this macro: Put the cursor on the first  of
   the two lines (the "L R" line) and run the macro.
--------------------------------------------------------------------------------
L                                                                             R
    !   !   !   !   !   !   !   !   !   !   !   !
--------------------------------------------------------------------------------
   To leave the current tabs and change only the margin(s), leave the second
   line blank (hard return [CR/LF] in column 1).
--------------------------------------------------------------------------------
 L                                                                           R

--------------------------------------------------------------------------------
   To have NO tabs set, put a single "!" in column 1 of the second line.
--------------------------------------------------------------------------------
L                                                                             R
!
--------------------------------------------------------------------------------
   To change only the left or right margin, put just the "L" or the "R" in the
   first line.
--------------------------------------------------------------------------------
             L

--------------------------------------------------------------------------------
                                                        R

--------------------------------------------------------------------------------
   To leave the margins unchanged and clear all tabs:
--------------------------------------------------------------------------------

!
--------------------------------------------------------------------------------
   To do nothing if run accidentally:
--------------------------------------------------------------------------------
   Here, the "ruler" is two lines of text, with no "!" on the second line and
   no "L" or "R" on the first line. The [Txt2Rlr] macro does nothing.
--------------------------------------------------------------------------------

[^04]<Esc >[Txt2Rlr]<QN>
  ^OR[Esc]                      ;if nondocument, macro ends on error
[Esc]*V                         ;Variable tabs ON
[Esc]*c                         ;Column block marking OFF
[Esc]**                         ;restore Insert and Auto format status
[Esc]*i                         ;Insert OFF during macro run
[Esc]*f                         ;Auto format OFF during run
  ^QS
[Esc]=^MV                       ;if first (margins) line is blank, skip it
  ^KB^QD^KK^KZ                  ;block zoom the margins line
[Esc]$R                         ;trap error attempting to leave margins line
[Esc]~L>^OL[Enter]              ;set the left margin at first "L" found
[Esc]R
  ^QS
[Esc]$T                         ;trap error attempting to leave margins line
[Esc]~R>^OR[Enter]              ;set the right margin at first "R" found
[Esc]T
  ^KZ                           ;unzoom the margins line
[Esc]V
  ^X                            ;go to the second (tabs) line
  ^QS
[Esc]=^MX                       ;if the second line is blank, go to exit
  ^ON*[Enter]                   ;clear all tabs
[Esc]=!X                        ;if "!" in column 1, go to exit
  ^KB^QD^KK^KZ                  ;block zoom the second line
[Esc]$2                         ;trap the error attempting to leave second line
[Esc]1                          ;  or set too many tabs
[Esc]~!>^OI[Enter]              ;set a tab at each "!"
  ^D
[Esc]!1
[Esc]2
  ^KZ                           ;unzoom the tabs line
[Esc]X
  ^KH
  [Enter]


[^03]<Esc >[Rlr2Txt] ___________________________________________________________
   [Rlr2Txt] records the current margins and variable tabs in text. Example
   of a text ruler written by this macro:
L                                                                             R
    !   !   !   !   !   !   !   !   !   !   !   !
   If NO tabs are set, [Rlr2Txt] will leave a "!" in col 1 of the tabs line.
   (The [Txt2Rlr] macro will CLEAR existing tabs if the text ruler has a "!"
   in column 1 of the tabs line.)

[^03]<Esc >[Rlr2Txt]<QN>
  ^OR[Esc]                      ;if nondocument, macro ends on error
  ^OO0[Enter]                   ;set initial indent OFF
[Esc]**                         ;restore Insert and Margin release status
[Esc]*x                         ;Margin release OFF to begin macro run
[Esc]*i                         ;Insert OFF during macro run
[Esc]*V                         ;Variable tabs ON
  ^QS^N^N                       ;insert two new lines for text ruler
  R                             ;type "R" on the margins line
  ^OF                           ;move the "R" to the right margin
  ^E                            ;cursor up to col 1 of margins line
  L                             ;type "L" at the left margin
  [Enter]                       ;down to col 1 of tabs line
  [Esc]*X                       ;set Margin release ON
[Esc](16)                       ;set limit on varitabs, because trying to
[Esc]1                          ;  tab past last varitab is not an error
  [Tab]!                        ;tab, type "!"; now 1 col to right of tab
  ^S                            ;back up in case tabs are in adjacent cols
[Esc]-X                         ;decrement counter, exit loop when 0
[Esc]!1                         ;loop
[Esc]X                          ;exit process
  [Enter]                       ;CR without inserting a new line
  ^KK^E^E^KB^QK                 ;mark the ruler as a block to copy or move


[^06]<Esc >[Just:CR] ___________________________________________________________
   [Just:CR] is a "menu" macro. At the "? Esc!" prompt:
       Press C to center the current line.
       Press R to set the current line flush to the right margin.
   In a nondocument, the line is either centered between 1 and 80 or set
   flush to column 80.

[^06]<Esc >[Just:CR]<QN>
[Esc]**[Esc]*X                  ;set margin release ON
[Esc]:[Esc]!_
[Esc]C
[Esc]$1                         ;trap margin release OFF error in nondocument
  ^OX^OC                        ;center line in document
[Esc]!]
[Esc]1
  ^KE/D[Enter]
  ^OL1[Enter]
  ^OR80[Enter]
  ^OC                           ;center line in 80 columns
  ^KE/N[Enter]                  ;nondoc mode restored as /N by default
[Esc]!]
[Esc]R
[Esc]$2                         ;trap margin release OFF error in nondocument
  ^OX^OF                        ;set line flush right in document
[Esc]!]
[Esc]2
  ^KE/D[Enter]
  ^OL1[Enter]
  ^OR80[Enter]
  ^OF                           ;set line flush right at column 80
  ^KE/N[Enter]                  ;nondoc mode restored as /N by default


[^07]<Esc >[P/S:NIU] ___________________________________________________________
   [P/S:NIU] is a "menu" macro to set or reset proportional spacing.
   At the "? Esc!" prompt:
     Press N for (N)o paragraph indent
     Press I for (I)indented paragraphs
     Press U to (U)ndo proportional mode and single line indent and set
       default margins.

   The margins of 3,58 in proportional mode are just my preferred page layout
   for 12-point Times New Roman.

   If in a nondocument mode, macro ends on Error when attempting to set
   margin. Solution: Rename the file to a document mode and re-run.

   Since in proportional mode the lines are over 80 characters long, I often
   edit and save the document in non-proportional mode, then use this macro
   to set up for reformatting to proportional spacing before printing.

[^07]<Esc >[P/S:NIU]<N>
  ^OL3[Enter]                   ;nondoc error; my page layout for
  ^OR58[Enter]                  ;  12-pt Times New Roman; adjust to suit
  [Esc]*P                       ;set proportional spacing ON
  [Esc]*S                       ;set single line indent ON
[Esc]:[Esc]!_
[Esc]N                          ;(N)o paragraph indent
  ^OO0[Enter][Esc]!]            ;first line indent 0
[Esc]I                          ;(I)ndented paragraphs
  ^OO3[Enter][Esc]!]            ;first line indent 0.3 inches
[Esc]U                          ;(U)ndo proportional spacing
  [Esc]*p                       ;set proportional spacing OFF
  [Esc]*s                       ;set single line indent OFF
  ^OL1[Enter]                   ;default margins and no indent for
  ^OR79[Enter]                  ;  non-proportional spacing --
  ^OO0[Enter]                   ;  adjust to your default values

** User editing of the [P/S:NIU] macro:
   Change the margin and indent values to suit.

Go back to:
Top of page
Macro Viewer
Mostly VDE

BLOCKS

[!05]<Esc >[BlkMenu] ___________________________________________________________
   [BlkMenu] accesses the Block commands on the VDE Menu.

[!05]<Esc >[BlkMenu]<N>
  [^Esc]B


[!06]<Esc >[BlkUnm ] ___________________________________________________________
   [BlkUnm ] unmarks (undefines) the current block.

[!06]<Esc >[BlkUnm ]<N>
  ^KH


[!07]<Esc >[BlkMove] ___________________________________________________________
   [BlkMove] moves the current block to the cursor.

[!07]<Esc >[BlkMove]<N>
  ^KV


[!08]<Esc >[BlkCopy] ___________________________________________________________
   [BlkCopy] copies the current block at the cursor.

[!08]<Esc >[BlkCopy]<N>
  ^KC

--------------------------------------------------------------------------------

SEARCH / REPLACE

[F11]<Esc >[^QF    ] ___________________________________________________________
   [^QF    ] initiates the "Find text:" command (Search).

[F11]<Esc >[^QF    ]<N>
  ^QF


[!11]<Esc >[^QA    ] ___________________________________________________________
   [^QA    ] initiates the "Find text:" "Change to:" command (Search /
   Replace).

[!11]<Esc >[^QA    ]<N>
  ^QA


[F12]<Esc >[^L K5  ] ___________________________________________________________
   [^L K5  ] repeats the current find or find/replace command, then centers
   the cursor line vertically. I strongly recommend having this simple macro
   on a primary function key (F01 - F12) so that Find and Find/Replace can be
   repeated with maximum efficiency.

[F12]<Esc >[^L K5  ]<N>
  ^L[K5]

--------------------------------------------------------------------------------

BLOCK MARKING AND SEARCHING

[!01]<Esc >[BlkWord] ___________________________________________________________
   [BlkWord] blocks the word at the cursor, excluding end punctuation. Blocks
   any string enclosed in <angle brackets> (including all punctuation within
   the <angle brackets>). If the string enclosed in <angle brackets> contains
   any space(s), the cursor must be to the left of any space. <Note that
   strings in angle brackets on multiple lines will include carriage returns
   and indentation.>

[!01]<Esc >[BlkWord]<QN>
[Esc]= ][Esc]=^M]       ;quit if cursor is on a space or end of line
[Esc]$1                 ;trap error moving left from first byte of file
[Esc]> <                ;find the preceding space, tab, or CR/LF
  ^D                    ;one char right to exclude the "stop" character
[Esc]1                  ;main process
[Esc]$$
[Esc]=<S                ;if "<" precedes string, go to (S)pace process
  ^KB[Esc]> >           ;else start block, search right for ASCII <= 20h
  ^S                    ;position cursor on last character for testing
[Esc]T                  ;(T)est process
[Esc]=,L                ;exclude tested char if it is one of the
[Esc]=.L                ;following punctuation marks:  , . ; : - ! ?
[Esc]=;L
[Esc]=:L
[Esc]=-L
[Esc]=!L
[Esc]=?L
  ^D                    ;otherwise include the character
[Esc]!X                 ;go to e(X)it process
[Esc]L                  ;(L)oop
  ^S                    ;if previous tested character was excluded,
[Esc]!T                 ;test the one before it in the same way
[Esc]S                  ;(S)pace process
  ^D^KB                 ;exclude "<" and begin block
[Esc]~>>                ;search right for closing ">"
[Esc]X                  ;e(X)it process
  ^KK                   ;end block


[!02]<Esc >[BlkFind] ___________________________________________________________
   [BlkFind] searches for blocked text in the following priority order:
   1 If in windowing (split screen) mode, searches in the other window,
     from top of file
   2 If not in windowing mode, from the current cursor position down

   Workspace macro [Find^Rm] extends any previously non-global or single-file
   search.

[!02]<Esc >[BlkFind]<N>
  ^QF^[[Enter][Esc]     ;set the Find string, escape from the command
[Esc]$2                 ;trap the not in windowing (split screen) mode error
  [AltF]                ;switch to other window
[Esc]$$                 ;end if string not found in other window
  ^QR^L                 ;search from top of file
  ^OE                   ;if found, cursor line to top of window
[Esc]!]
[Esc]2                  ;search in this file
[Esc]$$                 ;end if string not found
  ^L                    ;search down from cursor
  [K5]                  ;if found, center cursor line

Go back to:
Top of page
Macro Viewer
Mostly VDE

EVALUATE BLOCKED MATH EXPRESSION

[!09]<Esc >[BlkMath] ___________________________________________________________
   [BlkMath] evaluates a math expression in a marked block on a single line.
   After the expression, types " = " and the value.
   For expression syntax, please see the program document.

[!09]<Esc >[BlkMath]<N>
[Esc]*I
  ^QK                           ;ends macro if no block is marked
  [AltR]MATH ^[>c:\v\3[Enter]   ;write result of math expression to file
  [Esc] = ^KRc:\v\3[Enter]      ;type " = " at the cursor, import result file
  ^KJc:\v\3[Enter]              ;delete temporary result file

   Example: Area of circle with radius 5: {pi * 5^2} = 78.5398163
   Block the math expression in the text, as indicated by the curly brackets
   around {pi * 5^2}, then run [BlkMath].

** User editing of the [BlkMath] macro:
   Put MATH.EXE anywhere on your path. It will generate a small data file
   in the same directory.

   File "c:\v\3" is temporary; change to suit.

** [BlkMath] executes MATH, a command-line calculator by Greg Kochaniak:
       http://short.stop.home.att.net/freesoft/calc.htm#math

--------------------------------------------------------------------------------

SORT BLOCKED LINES

[!10]<Esc >[BlkSort] ___________________________________________________________

   [BlkSort] sorts the lines in the marked block.

[!10]<Esc >[BlkSort]<N>
[Esc]*c                                 ;sets Column block marking OFF
  ^QB                                   ;ends macro if no block is marked
  ^KWc:\v\7[Enter]                      ;exports source block to file
  [AltR]SORT<c:\v\7>c:\v\8[Enter][Esc]  ;sorts file containing source block
  ^KY                                   ;deletes source block
  ^KRc:\v\8[Enter]                      ;imports sorted output file
  ^KJc:\v\7[Enter]                      ;deletes temporary source file
  ^KJc:\v\8[Enter]                      ;deletes temporary output file

** User editing of the [BlkSort] macro:
   Files "c:\v\7" and "c:\v\8" are temporary; change to suit.

   [BlkSort] executes SORT, which is supplied with DOS and Windows.
   SORT or an alternate program must be on your path.

   SORTXL, by Horst Schaeffer, is very small:
       http://home.mnet-online.de/horst.muc/div.htm#sortxl

   RPSORT, by Robert Pirko, is a powerful alternative:
       http://short.stop.home.att.net/freesoft/txtutil2.htm#rpsort

   The shell command can be modified with sort keys, etc. in accordance with
   the syntax of the specific sort program.

Go back to:
Top of page
Macro Viewer
Mostly VDE

LINE AND BOX DRAWING

[@05]<EscL>[LineL>R] ___________________________________________________________
   [LineL>R] draws a line from the left to the right margin of a document.
   In a nondocument, draws a line from column 1 through column 80.

[@05]<EscL>[LineL>R]<QN>
  ^QS
[Esc]=^MB                       ;if current line blank, start drawing
  ^N                            ;else insert blank line at cursor
[Esc]B
[Esc]$N                         ;trap margin release error in nondocument
[Esc]**[Esc]*X^OX
[Esc]$M                         ;trap Format Error drawing past right margin
[Esc]1
  -                             ;line character (change to suit)
[Esc]!1
[Esc]N
[Esc]$$
[Esc](80)                       ;line length in nondocument (change to suit)
[Esc]2
  -                             ;line character (change to suit)
[Esc]-Q
[Esc]!2
[Esc]Q
  [Enter][Esc]!]
[Esc]M
  [BkSp][Enter]                 ;remove character beyond margin

** User editing of the [LineL>R] macro:
   As noted in the macro comments, the actual character used for the line
   can be changed to suit your preference.


[!03]<Esc >[BlkBoxG] ___________________________________________________________
   [BlkBoxG] uses Graphics characters to draw a box around blocked lines.
   Example:                      ÉÍÍÍÍÍÍÍÍÍÍÍ»
                                 º [BlkBoxG] º
                                 ÈÍÍÍÍÍÍÍÍÍÍͼ
   The block must consist of one or more entire lines ending with a [CR/LF].
   Normal marking: arrow down column 1 while depressing the [Shift] key. The
   box is always drawn from column 1 and a one-column border separates the box
   from the text. Therefore, at least one line of text should usually begin in
   column 1 to avoid too much white space on the left. After it's drawn, the
   entire box can be moved or copied as a block, or indented, centered, or set
   flush right line by line.

[!03]<Esc >[BlkBoxG]<QN>
^KT                             ;expand tabs; end on error if no block marked
[Esc]**[Esc]*i[Esc]*X           ;insert off, margin release on
^KZ                             ;zoom block; error if column block is set
[Esc]*O                         ;set column block replace (overtype)
  ^N^X^KB                       ;insert line over text, mark NW corner of text
[Esc]$B
[Esc]A
[Esc]>^M>[Down]                 ;find the SE corner of text rectangle
[Esc]!A
[Esc]B
  [Up]^KK                       ;end block at SE corner
[AltC]^QP                       ;cut text, jump back to SE corner
  [Down]   ¼[Home]È[End]^S      ;type SE corner with 2-col E frame, SW corner
[Esc]$D
[Esc]C
  [Up][Esc]!C                   ;cursor up E side to NE corner
[Esc]D
  »[Home]É                      ;type NE corner, NW corner
[Esc]1
  Í[Esc]~»1^I»                  ;draw N edge, turn S, redraw NE corner
[Esc]3
  º[Esc]~¼3^I¼                  ;draw E edge, turn W, redraw SE corner
[Esc]5
  Í[Esc]~È5^IÈ                  ;draw S edge, turn N, redraw SW corner
[Esc]7
  º[Esc]~É7                     ;draw W edge
  ^D^D^X                        ;from NW corner move 2 cols E, 1 col S
[AltP]                          ;paste text (1-col E and W frame)
  ^KZ^KH                        ;unzoom and unmark block

   Caution:
   This macro uses the Block Zoom command, but does not protect against Block
   Zoom already being set. It won't work correctly if Block Zoom is already in
   effect.


[!04]<Esc >[BlkBoxT] ___________________________________________________________
   [BlkBoxT] uses non-graphics characters to draw a box around blocked lines.
   Example:                      +-----------+
                                 | [BlkBoxT] |
                                 +-----------+
   The block must consist of one or more entire lines ending with a [CR/LF].
   Normal marking: arrow down column 1 while depressing the [Shift] key. The
   box is always drawn from column 1 and a one-column border separates the box
   from the text. Therefore, at least one line of text should usually begin in
   column 1 to avoid too much white space on the left. After it's drawn, the
   entire box can be moved or copied as a block, or indented, centered, or set
   flush right line by line.

[!04]<Esc >[BlkBoxT]<QN>
  ^KT                           ;expand tabs; end on error if no block marked
[Esc]**[Esc]*i[Esc]*X           ;insert off, margin release on
  ^KZ                           ;zoom block; error if column block is set
[Esc]*O                         ;set column block replace (overtype)
  ^N^X^KB                       ;insert line over text, mark NW corner of text
[Esc]$B
[Esc]A
[Esc]>^M>[Down]                 ;find the SE corner of text rectangle
[Esc]!A
[Esc]B
  [Up]^KK                       ;end block at SE corner
  [AltC]^QP                     ;cut text, jump back to SE corner
  [Down]   +[Home]+[End]^S      ;type SE corner with 2-col E frame, SW corner
[Esc]$D
[Esc]C
  [Up][Esc]!C                   ;cursor up E side to NE corner
[Esc]D
  +[Home]+                      ;type NE corner, NW corner
[Esc]1
  -[Esc]~+1^I+                  ;draw N edge, turn S, redraw NE corner
[Esc]3|
[Esc]~+3^I+                     ;draw E edge, turn W, redraw SE corner
[Esc]5
  -[Esc]~+5^I+                  ;draw S edge, turn N, redraw SW corner
[Esc]7
  |[Esc]~+7                     ;draw W edge
  ^D^D^X                        ;from NW corner move 2 cols E, 1 col S
[AltP]                          ;paste text (1-col E and W frame)
  ^KZ^KH                        ;unzoom and unmark block

   Caution:
   This macro uses the Block Zoom command, but does not protect against Block
   Zoom already being set. It won't work correctly if Block Zoom is already in
   effect.

Go back to:
Top of page
Macro Viewer
Mostly VDE

INSERT DATE OR CALENDAR

[^08]<EscD>[Dat:Cal] ___________________________________________________________
   [Dat:Cal] is a "menu" macro. At the "? Esc!" prompt:
     Press D to insert the current date.
     Press C to insert the current month's calendar.

   Date and time format: YYYY-MM-DD HH:MM
     Example: If [AltD] [AltT] inserts 6/15/07 21:16 at the cursor,
     then [Dat:Cal] will insert 2007-06-15 21:16
     followed by a hard return.
     Purpose: Simplifies sorting lines by date and time.

   Calendar example on 9/4/07:

      Sep 2007
Su Mo Tu We Th Fr Sa
                   1
 2  3  *  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

[^08]<EscD>[Dat:Cal]<N>
[Esc]:[Esc]!_
[Esc]D                  ;Date process
[Esc]**[Esc]*I[Esc]*c
  $[AltD]^S^S^KB
  20                    ;macro is for years 2000 through 2099
  ^D^D
  -                     ;separator "-" (change to suit)
  ^KK
[Esc]~$<
  ^G^KV^QK^KH^D
[Esc]=/1
[Esc]!2
[Esc]1
  ^S0
[Esc]2
  ^D^G
  -                     ;separator "-" (change to suit)
  ^D
[Esc]=/3
[Esc]!4
[Esc]3
  ^S0
[Esc]4
  ^D^G [AltT][Enter]    ;if Time isn't wanted, just "^D^G[Enter]"
[Esc]!]                 ;  if a new line isn't wanted, delete [Enter]
[Esc]C                  ;Calendar process
^QS^N                                   ;inserts a new line
[AltR]CAL>c:\v\cal.v[Enter][Esc]        ;edit "c:\v\" path as necessary
^KRc:\v\cal.v[Enter]                    ;imports file cal.v

** User editing to install VDE for the [Dat:Cal] macro:
   The macro's Date editing requires VDE to be set by VINST so that
   AltD returns the date in the numeric U.S. month/day/year format.

   As noted in the comments, macro can be edited to insert the date only.

** User editing to install the CAL program for the [Dat:Cal] macro:
   Put CAL.COM anywhere on your path.
   File "cal.v" is an arbitrary choice; change to suit.

** Download CAL.COM, a free low-fat calendar by Charles Dye:
       http://www.highfiber.com/~raster/freeware.htm

--------------------------------------------------------------------------------

SPLIT SCREEN SCROLL

[@02]<Esc >[2Win ^X] ___________________________________________________________
   [2Win ^X] moves the cursor down one line in both VDE windows, in column 1.
   Hold down the macro key for synchronized scrolling. May be most useful
   when using [AltM] to compare document files that have relatively few
   differences. (In nondocuments, [AltM] skips to the next line in each
   window, after finding the first difference in the current line.)

[@02]<Esc >[2Win ^X]<N>
  [AltF]^QS^X
  [AltF]^QS^X

Go back to:
Top of page
Macro Viewer
Mostly VDE

VFX INDEX

[^11]<Esc >[vfxList] ___________________________________________________________
[^12]<Esc >[vfxFind] ___________________________________________________________

   [vfxFind] uses a list of long search strings, the "<vfx> section," as an
   index for finding matching strings (topics) in the reference file to which
   the <vfx> section is appended. The <vfx> section at the end of this file
   is a working example.

   The following [vfxList] macro was used in to build the <vfx> lookup list:

[^11]<Esc >[vfxList]<QN>^QS^KB^X^KK^KW+vfx.t[Enter]

   This macro blocks the current line in the reference (main) file and adds
   that line to file VFX.T. To create a <vfx> index, go to the end of the main
   file, type in <vfx> as the ID, then on the next line use ^KR to import file
   VFX.T. Note that the lines listed in the <vfx> section need not be in the
   same order as they appear in the main text, and the lines can appear more
   than once (for example, names might be sorted both by first and last name).

   To start or re-initialize the [vfxFind] macro, run it while the cursor is
   on any blank line.

   To select a line in the <vfx> section and execute the lookup, place the
   cursor anywhere on the topic lookup line and press the [vfxFind] key.

   On the next press of the same function key, [vfxFind] returns to the lookup
   line (which is still highlighted) as the starting point for another lookup.
   (The exception would be if there has been an intervening Find command,
   which would change the stored lookup string.)

[^12]<Esc >[vfxFind]<QN>
  ^QS
[Esc]=^MV                       ;initialize if on a blank line
[Esc]-F                         ;decrement counter, go to label F if zero
[Esc](1)                        ;set counter = 1
[Esc]<!>                        ;skip control characters and spaces
  ^KB^QD^KK                     ;block rest of line as search string
  ^QF^[[Enter]g[Enter]          ;search globally (Adaptive or Case-sensitive)
  ^OE                           ;put found text at top of window or screen
[Esc]!]                         ;end
[Esc]F                          ;return to search string line in <vfx> section
[Esc]$V                         ;trap string not found error
  ^QC                           ;cursor to end of file
  ^QF^R[Enter]b[Enter]          ;search backwards for previous string
  [K5]                          ;center found text vertically
[Esc]!]                         ;end
[Esc]V
[Esc](0)                        ;set counter = 0
[Esc]$$
  ^QC                           ;cursor to end of file
  ^QF<vfx>[Enter]b[Enter]       ;search backwards for "<vfx>"
  ^OE                           ;put found text at top of window or screen

** User editing of the [vfxFind] macro:
   The search commands commented above should be case-sensitive for greatest
   precision. The Adaptive search mode, new in VDE 1.95, works well and, if
   selected in VINST, makes any reference to case in [vfxFind] unnecessary.

--------------------------------------------------------------------------------

PRINTING

[F08]<EscP>[Prt:Env] ___________________________________________________________
   [Prt:Env] is a "menu" macro. At the "? Esc!" prompt:
   Press E to address an envelope, using the return address in the macro.
       The "To:" address must be blocked before running the [Prt:Env] "E"
       option (see <c:\v\vde.doc[ENVELOPES (^KPA)]> for details).
   Press P to display the VDE Print options screen.

[F08]<EscP>[Prt:Env]<N>
[Esc]:[Esc]!_
[Esc]E
  ^QB
  ^KPA2"Return Name\Return Street\Return City State Zip"[Enter]
[Esc]!]
[Esc]P
  ^KP

** User editing of the [Prt:Env] macro:
   Edit the return address (see <c:\v\vde.doc[ENVELOPES (^KPA)]> for details).

Go back to:
Top of page
Macro Viewer
Mostly VDE

CLIPBOARD ACCESS FOR VDE IN WINDOWS 2000 AND XP

[!12]<Esc >[v.v:WRZ] ___________________________________________________________
   The [v.v:WRZ] macro uses Horst Schaeffer's ClipText utility to provide VDE
   with Clipboard access under Windows NT/2000/XP.

   After starting the macro, respond to the "? Esc!" prompt in the header by
   pressing W, R, or Z:

       [W]rite: Marked block in the current VDE file is the source:
       Selected VDE text is APPENDED to file C:\V\V.V
       CLIPTEXT then OVERWRITES the Clipboard with C:\V\V.V
       Use [Z]ap before [W]rite IF ONLY the CURRENT marked
         block should be copied into the Clipboard, not an
         accumulation of entries.

       [R]ead: The current VDE file is the target:
       CLIPTEXT APPENDS the Clipboard contents to file C:\V\V.V
       VDE then reads C:\V\V.V at the cursor and marks the
         incoming text as a block.
       Use [Z]ap before [R]ead IF ONLY the CURRENT Clipboard
         contents should be pasted into VDE, not an
         accumulation of entries.

       [Z]ap: Erases file C:\V\V.V but does NOT access the Clipboard

[!12]<Esc >[v.v:WRZ]<N>
[Esc]:[Esc]!_
[Esc]W
^KW+c:\v\v.v[Enter]
[AltR]CLIPTEXT FROM c:\v\v.v /OEM[Enter][Esc]
[Esc]!]
[Esc]R
^KS
[AltR]CLIPTEXT TO c:\v\v.v /APPEND /OEM[Enter][Esc]
^KB^KRc:\v\v.v[Enter]^QP^KK[Esc]!]
[Esc]Z
^KJc:\v\v.v[Enter]

** User editing to install the [v.v:WRZ] macro:
   Edit the "c:\v\" path for file V.V as needed.

   File C:\V\V.V is an arbitrary choice, but whatever file is used, it's
   necessary to state the full path in the macro. Reason: The ^KW and ^KR path
   is the path of the current file, whereas the [AltR] shell path is set when
   the VDE session is started, subject to being changed later by other DOS
   commands.

** Download CLIPTEXT.EXE and CLIPTEXT.TXT:
       http://home.mnet-online.de/horst.muc/wbat32.htm#cliptext

   Put CLIPTEXT.EXE anywhere on your path.

   The ClipText /OEM option causes extended ASCII characters to be translated.
   I've included it in both the [W]rite and [R]ead routines.

   The initial ^KS in [R]ead is a safety feature, making it possible to use
   ^KL^F to status back from a Read/Only lockup in case of Graphics Overflow
   due to too many different translatable extended ASCII characters in the
   source text.

   The macro is as useful for communicating among multiple VDE sessions as it
   is between VDE and Windows applications, but since file C:\V\V.V
   accumulates in both Write and Read, remember to Zap just before Read so
   that only one copy (the one in the Windows Clipboard) of the text from the
   other VDE session will be pasted.

Go back to:
Top of page
Macro Viewer
Mostly VDE

MACRO OPERATIONS

[@11]<Esc >[LoadVDF] ___________________________________________________________
   [LoadVDF] displays the VDE file browser, listing all .VDF files on the VDE
   directory.

[@11]<Esc >[LoadVDF]<N>
  [AltU]L*.vdf[Enter]


[@03]<Esc >[vtfLoad] ___________________________________________________________
   When you have a macro in text (.VTF) format, [vtfLoad] automates the steps
   required to compile and load it for use.

[@03]<Esc >[vtfLoad]<N>
  ^KWc:\v\t.vtf[Enter]          ;write block to c:\v\t.vtf
  [AltR]VTF2VDK[Enter][Esc]     ;run VTF2VDK.BAT
  [AltU]Lt.vdk[Enter]           ;load t.vdk, prompt to Use or store to a key

   To use [vtfLoad], start with a macro in single line .VTF format, always
   designated [F01]. Block that one line, then run [vtfLoad]. The VMC
   compiler screen display will pause for inspection. Press any key to
   continue. After VTF2VDK.BAT runs, the macro will start the process of
   loading T.VDK, displaying the usual prompts. You can store the macro to any
   function key, or (U)se it without assigning it to a key.

** User editing to install VTF2VDK.BAT for the [vtfLoad] macro:
   Edit path "c:\v\" in the macro to match your VDE directory.
   Export (^KW) the following text as VTF2VDK.BAT to a directory
   on your DOS path:

:: VTF2VDK.BAT used by the [vtfLoad] macro
:: Compiles T.VTF to T.VDF, renames as T.VDK
:: Revise VDE directory if not c:\v\
@echo off
c:
cd\v
vmc T.VTF
pause
copy T.VDF T.VDK
del T.VDF
:: end


[@04]<Esc >[vtf<vdk] ___________________________________________________________
   The purpose of [vtf<vdk] is to facilitate decompiling a single installed
   macro to .VTF format.

[@04]<Esc >[vtf<vdk]<N>
  [AltR]VDK2VTF[Enter][Esc]             ;run VDK2VTF.BAT
  [AltL][^Enter]                        ;open an empty untitled file
  ^KRc:\v\t.vtf[Enter]                  ;read file c:\v\t.vtf

   First, use the AltU [S]ave command and follow the prompts to save the macro
   to file T.VDK. Then run [vtf<vdk]. You must have one unused file segment
   available. The macro opens an untitled file and reads in the newly
   decompiled macro, which will always be designated as [F01] regardless of
   where it is assigned.

   Caution: VMC decompiles the ^[ command (to input the current block at a
   prompt) as the Esc character. This must be manually corrected before using
   a .VTF created by decompiling. There may be other inconsistencies.
   Carefully review decompiled macro code. However, [vtf<vdk] is handy when
   you have created or modified a macro from the keyboard and want to save it
   in text form.

** User editing to install VDK2VTF.BAT for the [vtf<vdk] macro:
   Edit path "c:\v\" in the macro to match your VDE directory.
   Export (^KW) the following text as VDK2VTF.BAT to a directory
   on your DOS path:

:: VDK2VTF.BAT used by the [vtf<vdk] macro
:: Decompiles T.VDK to T.VTF
:: Revise VDE directory if not c:\v\
@echo off
c:
cd\v
copy T.VDK T.VDF
del T.VDK
vmc T.VDF
pause
:: end


[@12]<Esc >[Ld/Comp] ___________________________________________________________
   [Ld/Comp] expands the macro developer's macro [Compile] found in Evan
   Slawson's VMC.DOC to [Ld/Comp] (Load or Compile).

[@12]<Esc >[Ld/Comp]<N>
[Esc]$C
  [AltL]c:\v\wspace.vtf[Enter][Esc]!]           ;example, using this file
[Esc]C
[Esc]$$
  ^KS[AltR]vmc ^F[Enter][Esc]
  [AltU]L^F[Bksp][Bksp]df[Enter]

   Load: If the source .VTF of the macro set (.VDF) you are currently using is
   _not_ open, the macro opens it as an additional file. This avoids
   navigating to find and open the .VTF for editing. (See "Setting up
   [Ld/Comp]" below.)

   Compile: If the .VTF is already open, the macro in trying to load it
   encounters an Invalid Filespec error, whereupon it compiles the .VTF and
   loads the updated .VDF.

   CAUTION: Even though the [Ld/Comp] macro is specific about which .VTF to
   open for editing, it is _not_ specific about which .VTF to compile and
   load; the macro compiles and loads the .VTF that is the current .VTF from
   which you run the macro. For example, you might run [Ld/Comp] to load the
   .VTF for the current macro set, then [AltL] to open another .VTF in order
   to copy or swap macros between the two .VTFs. When you then run [Ld/Comp]
   from _either_ .VTF, that will be the one compiled and loaded. For that
   matter, you can run [Ld/Comp] from first one .VTF and then the other. Each
   will be compiled by the [Ld/Comp] macro; the last .VTF from which [Ld/Comp]
   is run will be the macro set last loaded.

   If you want to edit the .VTF of the current macro set and load the changes,
   but don't want to overwrite the original .VDF, do the following to protect
   the current .VDF:

       + open the current .VTF for editing
       + use ^KE to change the name; for example, to "improved.vtf"
       + edit the [Ld/Comp] macro to reference "improved.vtf"
       + make your changes to the macros in "improved.vtf"
       + run [Ld/Comp]; since the .VTF you started from is no longer
         open (you just renamed it), VDE, using the [Ld/Comp] in the
         current macro set, opens it from disk; leave it open, but
         ignore it and switch ([AltB]) back to "improved.vtf"
       + run [Ld/Comp] to compile and load "improved.vdf" as the current
         macro set; your starting macro set .VTF and .VDF are unchanged
       + "improved.vtf" and "improved.vdf" are now saved to disk and
         can be reopened / reloaded as needed

** User editing to install the [Ld/Comp] macro:
       (1) Make sure that a current .VTF exists for every .VDF.
       (2) Add the [Ld/Comp] macro to each .VTF.
       (3) In each .VTF, edit its own specific path/filename into its
           [Ld/Comp] macro. The path should be your VDE directory.
       (4) Save the .VTF and compile it to create the updated .VDF.

   In future, when that .VDF is loaded, the [Ld/Comp] macro will automatically
   open the corresponding source .VTF.

Go back to:
Top of page
Macro Viewer
Mostly VDE

<vfx>                   VFX LOOKUP LIST FOR WSPACE.VTF
--------------------------------------------------------------------------------
                       NOTE ABOUT THE FORMAT OF THIS FILE

                               EDITING THE MACROS

                        MACRO DOCUMENTATION BY CATEGORY

WORKSPACE
[F01]<Esc >[LnkAltL] ___________________________________________________________
[@01]<Esc >[Find^Rm] ___________________________________________________________
[F06]<Esc >[</>WspV] ___________________________________________________________
** User editing of the [</>WspV] macro:
[^01]<Esc >[Add2Wsp] ___________________________________________________________
** User editing of the [Add2Wsp] macro:
[^02]<Esc >[LFN2Wsp] ___________________________________________________________
** User editing of the [LFN2Wsp] macro:
** [LFN2Wsp] requires LOCATE.COM, a freeware file finder by Charles Dye:
[^10]<Esc >[Sav2Wsp] ___________________________________________________________
** User editing of the [Sav2Wsp] macro:

FILES
[F05]<Esc >[Dir ^KF] ___________________________________________________________
[F07]<Esc >[Quit^KQ] ___________________________________________________________
[F09]<Esc >[Save^KS] ___________________________________________________________
[F10]<Esc >[Save^KX] ___________________________________________________________
[@09]<Esc >[^KL^F< ] ___________________________________________________________
[@10]<Esc >[^KJ^F  ] ___________________________________________________________
[^09]<Esc >[LocFils] ___________________________________________________________
** [LocFils] requires LOCATE.COM, a freeware file finder by Charles Dye:

LINES AND PARAGRAPHS
[F02]<Esc >[Pgf Fmt] ___________________________________________________________
[@08]<Esc >[SoftCRs] ___________________________________________________________
[@09]<Esc >[RefmtRM] (for VDE 1.95 and later) __________________________________
** User editing of the [RefmtRM] macro:
[F03]<Esc >[LineDel] ___________________________________________________________
[F04]<Esc >[LineIns] ___________________________________________________________
[@06]<Esc >[NextPgf] ___________________________________________________________
[@07]<Esc >[PrevPgf] ___________________________________________________________

MARGIN SETTING, RULERS, LINE JUSTIFICATION
[^05]<EscM>[Fmt:BPN] ___________________________________________________________
** User editing of the [Fmt:BPN] macro:
[^04]<Esc >[Txt2Rlr] ___________________________________________________________
[^03]<Esc >[Rlr2Txt] ___________________________________________________________
[^06]<Esc >[Just:CR] ___________________________________________________________
[^07]<Esc >[P/S:NIU] ___________________________________________________________
** User editing of the [P/S:NIU] macro:

BLOCKS
[!05]<Esc >[BlkMenu] ___________________________________________________________
[!06]<Esc >[BlkUnm ] ___________________________________________________________
[!07]<Esc >[BlkMove] ___________________________________________________________
[!08]<Esc >[BlkCopy] ___________________________________________________________

SEARCH / REPLACE
[F11]<Esc >[^QF    ] ___________________________________________________________
[!11]<Esc >[^QA    ] ___________________________________________________________
[F12]<Esc >[^L K5  ] ___________________________________________________________
[@01]<Esc >[Find^Rm] ___________________________________________________________

BLOCK MARKING AND SEARCHING
[!01]<Esc >[BlkWord] ___________________________________________________________
[!02]<Esc >[BlkFind] ___________________________________________________________

EVALUATE BLOCKED MATH EXPRESSION
[!09]<Esc >[BlkMath] ___________________________________________________________
** User editing of the [BlkMath] macro:
** [BlkMath] executes MATH, a command-line calculator by Greg Kochaniak:

SORT BLOCKED LINES
[!10]<Esc >[BlkSort] ___________________________________________________________
** User editing of the [BlkSort] macro:

LINE AND BOX DRAWING
[@05]<EscL>[LineL>R] ___________________________________________________________
** User editing of the [LineL>R] macro:
[!03]<Esc >[BlkBoxG] ___________________________________________________________
[!04]<Esc >[BlkBoxT] ___________________________________________________________

INSERT DATE OR CALENDAR
[^08]<EscD>[Dat:Cal] ___________________________________________________________
** User editing to install VDE for the [Dat:Cal] macro:
** User editing to install the CAL program for the [Dat:Cal] macro:
** Download CAL.COM, a free low-fat calendar by Charles Dye:

SPLIT SCREEN SCROLL
[@02]<Esc >[2Win ^X] ___________________________________________________________

VFX INDEX
[^11]<Esc >[vfxList] ___________________________________________________________
[^12]<Esc >[vfxFind] ___________________________________________________________
** User editing of the [vfxFind] macro:

PRINTING
[F08]<EscP>[Prt:Env] ___________________________________________________________
** User editing of the [Prt:Env] macro:

CLIPBOARD ACCESS FOR VDE IN WINDOWS 2000 AND XP
[!12]<Esc >[v.v:WRZ] ___________________________________________________________
** User editing to install the [v.v:WRZ] macro:
** Download CLIPTEXT.EXE and CLIPTEXT.TXT:

MACRO OPERATIONS
[@11]<Esc >[LoadVDF] ___________________________________________________________
[@03]<Esc >[vtfLoad] ___________________________________________________________
** User editing to install VTF2VDK.BAT for the [vtfLoad] macro:
[@04]<Esc >[vtf<vdk] ___________________________________________________________
** User editing to install VDK2VTF.BAT for the [vtf<vdk] macro:
[@12]<Esc >[Ld/Comp] ___________________________________________________________
** User editing to install the [Ld/Comp] macro:

Go back to:
Top of page
Macro Viewer
Mostly VDE