P VTEDIT045.CdP VTEDIT045.CBACKUP/COMMENT=VAX/VMS SPKITBLD Procedure/INTER/LOG/VERIFY DUB1:[WECK.VTEDIT.KIT.C]*.* MUA0:[0,0]VTEDIT045.C/LABEL=(VTEDIT)/SAVE/REWI/BUFFERS=5/NOINIT/NOREWI/NOINIT/NOREWIVAX/VMS SPKITBLD Procedure WECK ` ɎV4.6 _PISA::  _PISA$MUA0: V4.6  *[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1+,s./ 4->b0123KPWO56`yِ7ǎ89GHJ7 I11h?20 J3300t1;3300r 1;65536s0d 6 [!p+>)0[6 J) [1` 3 VTEDITu Keypad Text Editor and Corrector for VAXTPU0 Reference Manual. January 1988M Revision/Update Information: This document supersedes theE VTEDIT V04.00 User's ManualE and the VTEDIT V4.1 through? V4.4 Reference ManualsM Software Version: VTEDIT V4.5 (for VAXTPU V1.2: and VAX LSE V2.1) N VTEDIT V4.5 Page iiN The information in this document is subject to change without notice andN should not be construed as a commitment by any one of the many authors( involved in the development of VTEDIT.N Nobody assumes any responsibility for the use or reliability of thisN document or the described software. (You're up to your own imagination, pal/ - enjoy it, and let the idea spread further!)9 Copyright 1979, 1980 Digital Equipment Corporation" Copyright 1982...1988 DECUS N VTEDIT V4.5 Page iii ContentsC 1 RELEASE NOTES . . . . . . . . . . . . . . . . . . . 1C 1.1 Installation of VTEDIT . . . . . . . . . . . . . . 1C Installation Procedure and Requirements . . . . 1C Rebuilding VTEDIT from Sources . . . . . . . . . 2C Side Effects . . . . . . . . . . . . . . . . . . 3C 1.2 Change History . . . . . . . . . . . . . . . . . . 3C New and Changed Features for Version V4.1 . . . 3C Changes for Version V4.2 . . . . . . . . . . . . 5C Changes for Version V4.3 . . . . . . . . . . . . 5C Changes for Version V4.4 . . . . . . . . . . . . 6C Changes for Version V4.5 . . . . . . . . . . . . 7C 2 INTRODUCTION . . . . . . . . . . . . . . . . . . . . 9C 2.1 Components of VTEDIT . . . . . . . . . . . . . . . 9C 2.2 Historical Note . . . . . . . . . . . . . . . . . 9C 2.3 How to Read this Manual . . . . . . . . . . . . 11C 2.4 Invoking the Video Terminal Editor . . . . . . . 12C Parameters . . . . . . . . . . . . . . . . . . 12C Command Qualifiers . . . . . . . . . . . . . . 12C Memory . . . . . . . . . . . . . . . . . . . . 17C Examples . . . . . . . . . . . . . . . . . . . 17C 2.5 Interpreting the Terminal Screen . . . . . . . . 18C 3 CONCEPTS . . . . . . . . . . . . . . . . . . . . . 21C 3.1 Buffers . . . . . . . . . . . . . . . . . . . . 21C User Buffers . . . . . . . . . . . . . . . . . 21C System Buffers . . . . . . . . . . . . . . . . 22C Q-Registers . . . . . . . . . . . . . . . . . 24C 3.2 Windows . . . . . . . . . . . . . . . . . . . . 24C 3.3 Text Selection . . . . . . . . . . . . . . . . . 25C Select Ranges . . . . . . . . . . . . . . . . 25C Rectangular Regions . . . . . . . . . . . . . 26C The Active Range . . . . . . . . . . . . . . . 27C 3.4 Text Search and Replacement . . . . . . . . . . 28C Search Patterns . . . . . . . . . . . . . . . 28C Text Replacement . . . . . . . . . . . . . . . 29C 3.5 Numeric Arguments . . . . . . . . . . . . . . . 30C 3.6 Prompting . . . . . . . . . . . . . . . . . . . 31C 3.7 Formatters . . . . . . . . . . . . . . . . . . . 32C General Information . . . . . . . . . . . . . 32C Case Conversion . . . . . . . . . . . . . . . 33C Automatic Indentation . . . . . . . . . . . . 33C Automatic Word Wrap . . . . . . . . . . . . . 35C Automatic Line Justification . . . . . . . . . 35C Automatic Parenthesis Insertion . . . . . . . 36C Parenthesis Highlighting . . . . . . . . . . . 36C 3.8 Language-Sensitive Editor . . . . . . . . . . . 37C Overview . . . . . . . . . . . . . . . . . . . 37C Concepts . . . . . . . . . . . . . . . . . . . 38C Entering Source Code . . . . . . . . . . . . . 39C Languages . . . . . . . . . . . . . . . . . . 41C Compilation and Review . . . . . . . . . . . . 42C Source Code Analysis . . . . . . . . . . . . . 43C Source Code Management . . . . . . . . . . . . 44 N VTEDIT V4.5 Page ivC 4 EDITING TEXT . . . . . . . . . . . . . . . . . . . 45C 4.1 General Information . . . . . . . . . . . . . . 45C 4.2 Notational Conventions . . . . . . . . . . . . . 45C 4.3 Keypad Layout . . . . . . . . . . . . . . . . . 46C VT100 Keypad . . . . . . . . . . . . . . . . . 46C VT200 Function Keys . . . . . . . . . . . . . 47C 4.4 Editing Commands . . . . . . . . . . . . . . . . 48C Moving the Cursor . . . . . . . . . . . . . . 48C Marking and Retrieving Positions . . . . . . . 54C Searching Text . . . . . . . . . . . . . . . . 57C Match Control Characters . . . . . . . . . . . 59C Controlling Searches . . . . . . . . . . . . . 60C Replacing Text . . . . . . . . . . . . . . . . 61C Inserting and Moving Text . . . . . . . . . . 63C Formatter Control . . . . . . . . . . . . . . 68C Formatter Control Characters . . . . . . . . . 70C Controlling Text Insertion Modes . . . . . . . 73C Converting Case . . . . . . . . . . . . . . . 74C Deleting Text . . . . . . . . . . . . . . . . 76C Exiting . . . . . . . . . . . . . . . . . . . 79C Controlling Input and Output Files . . . . . . 80C Controlling the Video Terminal . . . . . . . . 86C Controlling Windows . . . . . . . . . . . . . 89C Tab and Space Manipulation Commands . . . . . 92C Process Control Commands . . . . . . . . . . . 94C .Ď VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1B Manipulating Words . . . . . . . . . . . . . . 96C Executing TPU commands . . . . . . . . . . . . 98C Miscellaneous Commands . . . . . . . . . . . . 101C 4.5 Language-Sensitive Editing Commands . . . . . . 104C Formatting Comments . . . . . . . . . . . . . 104C Controlling File Search and Buffers . . . . . 105C Entering Source Text . . . . . . . . . . . . . 106C Compiling and Reviewing . . . . . . . . . . . 110C Source Code Analysis . . . . . . . . . . . . . 113C Access to the Language-Sensitive Editor . . . 115C 5 CUSTOMIZATION . . . . . . . . . . . . . . . . . . 117C 5.1 Using Different Defaults at Startup . . . . . . 117C 5.2 Using a Different Keyboard Layout . . . . . . . 117C 5.3 Key Maps and Keymap Lists . . . . . . . . . . . 119C 5.4 Defining Additional Formatters . . . . . . . . . 1201< 5.5 Setting Languages for the Language-Sensitive C Editor . . . . . . . . . . . . . . . . . . . . . 122;C 6 TABLES . . . . . . . . . . . . . . . . . . . . . . 124 C 6.1 Command Names . . . . . . . . . . . . . . . . . 124pC 6.2 Command Syntax . . . . . . . . . . . . . . . . . 126fC 6.3 Numeric Arguments . . . . . . . . . . . . . . . 131 C 6.4 Key Definitions . . . . . . . . . . . . . . . . 132 INDEX N VTEDIT V4.5 Page 1* 1 RELEASE NOTES= 1.1 Installation of VTEDIT [ Installation Procedure and Requirements N VTEDIT is installed via the standard VMSINSTAL procedure using the savesetsN VTEDIT045.A, VTEDIT045.B, and VTEDIT045.C. If you copied these savesets toN the directory '[mydir]' on device 'mydisk:', you can install VTEDIT using the command:> $ @SYS$UPDATE:VMSINSTAL VTEDIT mydisk:[mydir]N The installation will take less than 5 minutes on a not too heavily loadedN machine. To install VTEDIT, you need about 1600 free blocks on your systemN disk, and, if you select the option of getting the reference manual, thisN will need an additional 1400 blocks on your system disk. If you have theN Language-Sensitive Editor VAX LSE on your system, the installationN procedure will ask whether you wish LSE support. Selecting this option willN require additional 800 blocks. You must have either SETPRV privilege or all of the following privileges:3 CMKRNL, SYSNAM, SYSPRV  to install VTEDIT.N If VTEDIT has been installed without support for the Language-SensitiveN Editor and if such support is required at a later time - probably becauseN VAX LSE was installed after the installation of VTEDIT -, support for theN Language-Sensitive Editor can be made available by re-installaing VTEDIT.N (Re-installation of VTEDIT is the recommended procedure for adding LSE support to native VTEDIT.)N The installation copies the environment file VTEDIT.ENV into the directoryN SYS$LIBRARY, if VTEDIT is installed with LSE support. This environment fileN contains an extensive definition of the language "Runoff" and some basicN definitions for the languages "DCL", "Datatrieve", "Help" (for Help texts),N and "VAXTPU", as well as some changes to the language "Fortran". You mayN wish to include some of these changes, or all of them, into your system environment file. N The installation procedure will copy a short guide, contained in the fileN VTEDIT.DOC, to the directory SYS$EXAMPLES. If you have enough disk space,N the procedure will ask if you want the user manual, too. If you respondN with 'yes' to this question, the installation procedure will copy the twoN files VTEDIT.LNI (the reference manual, suitable for printing on an LN03N laser printer), and VTEDIT.RNO (the Runoff source for the .LNI file) toN SYS$EXAMPLES. These two files are contained in the saveset VTEDIT045.C; ifN you do not select to get the reference manual, this saveset will not be read' at all by the installation procedure. N In any case, complete Help information will be provided in the help library SYS$HELP:VTEDIT.HLB. qqqqqqqqqqqqqqqqqqqqD VAX LSE is a layered product available for VAX/VMS and MicroVMS. N VTEDIT V4.5 Page 2N Suggestions for enhancements, and reports on errors or problems should be sent to:- Dr. G. WeckR. Infodas GmbH- Rhonestr. 2 / D-5000 Kln 71 . West GermanyV Rebuilding VTEDIT from SourcesN This version of VTEDIT is compatible with VAXTPU version V1.2; thus, theN installation procedure will work with VMS versions V4.4, V4.5, and V4.6, andN should also work with the next versions of VMS. For VAXTPU versions higherN than V1.2, it might be necessary to recompile VTEDIT. This can be done via the commandWC EDIT /TPU /NODISPLAY /NOSECTION /COMMAND=VTESECINI.TPUnN and will produce a new section file VTESECINI.TPU$SECTION, which must beN copied to SYS$LIBRARY to take effect. Compiling VTEDIT will need a pagefileN quota of about 36000; if you cannot obtain such a high pagefile quota onN your system, you will have to split the source file VTESECINI.TPU intoN smaller pieces and compile these pieces individually. This can be done by! performing the following steps: N 1. Copy the source file VTESECINI.TPU from the directory SYS$LIBRARY: to" an empty working directory.N 2. Copy the two files VTESPLIT.TPU and VTEBUILD.TPU, which are part of theA VTEDIT distribution, from SYS$EXAMPLES: to that directory.m, 3. Set default to the working directory.D 4. Split the source file into convenient pieces via the command:E EDIT /TPU /NODISPLAY /NOSECTION /COMMAND=VTESPLIT.TPUN The files resulting from this operation will have names of the formatN VTE$nnn_xxxx.TPU, where 'nnn' is a running number counted from 0, and9 'xxxx' is a mnemonic for the contents of the file. & 5. Compile VTEDIT via the command:E EDIT /TPU /NODISPLAY /NOSECTION /COMMAND=VTEBUILD.TPU N 6. Copy the resulting section file VTESECINI.TPU$SECTION back to the directory SYS$LIBRARY:.K 7. You may now delete the working directory together with its contents. N For further information about creating editing interfaces for VAXTPU, see7 the appropriate chapters of the VAXTPU documentation.rN VTEDIT's optional interface to the Language-Sensitive Editor is compatibleN with version V2.1 of VAX LSE. Recompiling VTEDIT for higher versions of VAX! LSE can be done via the commanda MN VTEDIT V4.5 Page 3< LSEDIT /COMMAND=VTESECINI.TPU /NOCURRENTN and will produce a new section file LSE$VTESECINI.TPU$SECTION; this file,N too, has to be copied to SYS$LIBRARY. Compilation will again need aN{{ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;11 pagefile quota of about 36000, if the source file is not split. CompilationN using splitting of the source file can be done in exactly the same way asN described above, except that the command needed in step 5 has to be replaced by the command:r; LSEDIT /COMMAND=VTEBUILD.TPU /NOCURRENTsN and the file to be copied back is LSE$VTESECINI.TPU$SECTION. You mayN compile the split source file in both ways by giving both this command and' the command shown in section 5 above. N If the section file(s) have been installed as shared known images, you willN have to invoke the INSTALL utility to replace the known file entries; the7 new file(s) will be used only after this replacement.n= Side Effects N The installation of VTEDIT will define the system-wide logical nameN TPU$CALL_USER to point to the file SYS$LIBRARY:TPUCALL.EXE. If you haveN VAXTPU interfaces using a system-wide call_user-routine, you will have toN decide which file TPU$CALL_USER should point to. The standard VAXTPUN interfaces provided by VMS do not use this mechanism and thus are notN affected by the definition of this logical name. For further informationN about providing call_user-exits for VAXTPU, see the appropriate chapters of the VAXTPU documentation.- 1.2 Change History t New and Changed Features for Version V4.1N Apart from bug fixes, the current version of VTEDIT contains numerousN enhancements, most of them providing functions available in the EVEPLUSN editing interface to VAXTPU. Nearly all of the new functions are fullyN compatible with the previous version of VTEDIT. The following list contains= brief descriptions of the most important changes to VTEDIT:6N - VTEDIT now remembers the file most recently edited, and optionally alsoN the current cursor position in this file. If VTEDIT is re-invokedN without its file-spec parameter, the file remembered will be edited,N and, if a position has been remembered, too, the cursor will be set to this position.mN - VTEDIT now allows to set permanent marks in the text buffer(s) and to$ re-position to them later on.N - The Search and Count and the Replace/Replace All commands now may be. restricted to operate in a given range.N - The ^EEx match control construct allows search for strings containingN match control characters, without evaluating these match control characters. oN VTEDIT V4.5 Page 4N - The save, cut, and paste operations now can be applied to rectangularN pieces of text, thus allowing column-oriented editing. Also,N rectangular pieces of text may be deleted, either by replacing them: with blanks or by shortening the lines accordingly.N - Several formatters now provide optional highlighting of the matchingN opening parenthesis whenever a closing parenthesis is typed.N Alternatively, the matching closing parenthesis can be selected to beG automatically inserted whenever an opening parenthesis is typed.cN - A Directory command allows to create a listing of all files matching aN given (wildcard) file-spec. From this listing, a file can be selected1 for input by giving the This File command.IN - You may select to have free (EVE-like) cursor movement, allowing you toN position to locations on the screen not containing text. There areA commands to switch between free and bound cursor movement.lN - For VT200 terminals, a separate Next Buffer command has been providedN in addition to invoking this command by repeated One or Two Windows commands.N - There are new commands to compress multiple spaces to Tabs, according? to the current Tab setting, or to expand Tabs to spaces.gN - A new command allows to trim trailing blanks, i.e. to delete blanks at the end of a line.gN - The Paragraph Fill command has been changed to remove superfluousN blanks, thus allowing to be applied multiply to the same text, without: always increasing the number of blanks in the text.N - A command to close and re-open the journal file allows to save aN journal file and/or shorten the journal of long editing sessions. ToN prevent jouranl files unusable for recovery, this operation is possible3 only if there are no non-empty user buffers. N - There is an interface to the VMS Sort utility, allowing to sort text buffers or ranges.uN Two changes cause a slight incompatibility between this version of VTEDIT and the previous version:N - If the Set Tabulators command is given with a positive numericN argument, existing tab stops are no longer removed, but the new tabN stop is added to the list of existing tab stops. To remove all tabN stops, the Set Tabulators command must be given with zero numeric argument.N - The syntax of the Set up Wildcard command has been changed fromN "7" to "7" with zero numeric argument, i.e. 0"7". TheN "7" key has been re-defined to invoke the new Directory command,I which should be much more useful than the Set up Wildcard command.tN Furthermore, the code has been changed such that nearly all dependenciesN from the key definitions have been removed; it should now be possible toN re-assign almost all functions to different keys - if one is willing to' change the documentation accordingly.a N VTEDIT V4.5 Page 5N These changes and extensions have resulted in an increase of the code andN and, correspondingly, somewhat higher space requirements to hold the source and section files.N The documentation - short guide, reference manual and online Help - has beenN restructured and augmented by lots of additional material, making it' (hopefully) more readable and useful.aS Changes for Version V4.2.N Version V4.2 of VTEDIT fixes some bugs found in previous versions. ApartH from that, there are but a few functional extensions and improvements:N - Formatters now stay selected for a buffer, even if their name does notN correspond to the file type of the buffer. Switching between buffersN will now always re-activate the formatter selected for a buffer, and5 not the formatter determined by the file type.o= - VTEDIT now supports a formatter for Cobol source text.xN - Automatic uppercasing has been extended to include not only lowercaseN alphabetic characters of the American ASCII character set, but also theN lowercase characters of the DEC supplemental character set$ ("multinational" characters).N The main difference between this version of VTEDIT and the previous one isN that VTEDIT now uses the keymaps and keymap lists supported by VAXTPUN version V1.2. This fact, together with the possibility to install theN section file as open, shared, and header-resia VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1 =-dent, allows for much faster startup of the editor.S Changes for Version V4.3vN Version V4.3 of VTEDIT permits access to the features of the Language-N Sensitive Editor VAX LSE, if this layered product is available on yourN system. The distribution of this version contains a special section file toN be invoked from VAX LSE; this variant of VTEDIT provides an enhanced editingN interface supporting functions for moving between, expanding, and deletingL placeholders, and for compilation, review, and finding errors in programs.N On systems without VAX LSE, there are just those following changes in the main part of VTEDIT's code:bN - On VT200 terminals, a slight change to the definitions of the windowN control keys F7 and F9 (hopefully) reduces operator errors.N Redefinition of these keys (in the procedure vte$standard_keys) willC easily restore the behaviour of previous versions of VTEDIT.sN - The commands to compile and/or execute the text in a range of a bufferN as VAXTPU code (which have been there from the beginning) are finally documented.N - The association of each type of formatter with two keymap lists hasN been given up; instead, buffer file types are coupled via VAXTPUN variables to a set of predefined keymap lists. This allows for using IN VTEDIT V4.5 Page 6N less keymap lists, as well as for easier extension of the set of- supported formatters and/or languages. N - The structure of the Help information for VTEDIT has been reorganized.N Using a private Help library instead of retrieving information from theN VAXTPU Help library speeds up access to Help information by orders of magnitude.0N - For conformance with the Language-Sensitive Editor, the names of all: system buffers have been changed to begin with '$'.N There is but one source for the VTEDIT section files; compiling this sourceN from LSE and invoking LSE with the resulting section file makes LSE supportN available, while compiling the same source from VAXTPU and invoking VAXTPUN with that section file provides a VTEDIT that is fairly similar to the previous version.hN If VTEDIT is installed with LSE support - which can only be done on a systemV with the Language-Sensitive Editor - the enhanced version is used perN default, while the standard version is still accessible. On systems withoutN the Language-Sensitive Editor, you have no choice but to use good ol' VTEDITN without LSE support (and maybe see in this manual what you can't do without paying a lot of money to DEC).S Changes for Version V4.4nN Version V4.4 of VTEDIT incorporates changes and extensions made necessary orN possible by upgrading from VAX LSE V1.3 to V2.0. For the part of VTEDIT notA using the Language-Sensitive Editor, there is but one addition:uN - A new command is provided to switch buffers between read/write and read-only. N For VTEDIT with LSE support, the following changes and extensions should be noted:N - Buffers may be set to be unmodifiable, thus protecting their contentsN against inadvertent alteration. Read-only buffers are unmodifiable byN default; by explicit command, however, modifications may be allowed for read-only buffers, too.N - There are new commands to fill or align ranges of comments within programs.N - The setting of the right margin for newly created buffers will dependI on the specification for the associated language, if there is one.nN - Input files specified without a device/directory in their names may beN read from directories in a previously defined search list which may8 contain a reference to the current CMS library.N - The Next Error and Previous Error commands have been renamed to Next qqqqqqqqqqqqqqqqqqqqD DEC/CMS is a layered product available for VAX/VMS and MicroVMS. N VTEDIT V4.5 Page 7N Step and Previous Step, respectively, in order to be able to use themN from the Source Code Analyzer VAX SCA , too, if that tool is installed on your system.N - Prompting for multiple LSE commands has been changed to execute eachN command as soon as it is typed. (In version V4.3, all commands had toN be entered together, and would be excuted only after the last commandN was given.) This change allows easier control of LSE via its commandN line, and makes VTEDIT's LSE command processing more compatible withN that of native VAX LSE. Also, the command to enter LSE command inputN mode has been changed from ! to Ctrl/?, which is somewhat easier to type.eN If the Source Code Analyzer VAX SCA is installed with VAX LSE, it may beN accessed via LSE's command line. Additionally, the Next Step and Previous; Step commands are directed to VAX SCA when in Query Mode.iS Changes for Version V4.5iN With version V4.5, some minor changes and extensions have been applied toN both VTEDIT with and without support for the Language Sensitive Editor VAXN LSE. Also, the section file LSE$VTESECINI.TPU$SECTION has been compiled to; be compatible with LSE version V2.1 and SCA version V1.1. N The following changes apply to VTEDIT without support for the Language Sensitive Editor: N - There is a new command to display a list of all user and systemN buffers. The This File command may be used to select a buffer fromN this list and position to that buffer, just like it can be used to. select a file from a directory listing.N - For formatters with parenthesis highlighting or automatic parenthesisN insertion, these features have been extended to the set of string delimiter characters.N - Only the last 100 messages are stored in the message buffer.N Previously, there was no such limitation, and the message buffer couldN become quite large, especially if automatic parenthesis highlighting was triggered very often.N - If VTEDIT is installed without LSE support, most of the HelpN information regarding the LSE commands is no longer included in theD Help library thus somewhat reducing the size of that library.N VTEDIT with LSE support now provides better access to the features of the Source Code Analyzer VAX SCA: N - Some often needed SCA commands (Goto Declaration and Find /Symbol+ /Indicated) have been bound to keys.pN - If the cursor is positioned in a query buffer, the Next and Previous qqqqqqqqqqqqqqqqqqqqD VAX SCA is a layered product available for VAX/VMS and MicroVMS. N VTEDIT V4.5 Page 8N Placeholder command keys perform the Next and Previous Query commands,F respectively, allowing a rapid scan of previous queries issued.N - As, with SCA, the LSE command line will probably be used quite often,N command reca]G VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1<ll for LSE commands has been extended to the last 100N commands. Any previous command within these limits may be recalledN using the up and down arrow keys when VTEDIT prompts for an LSE command.fN - The Show command has been extended to allow access to some LSE and SCA information.pN VTEDIT with LSE support no longer tries to apply its key map lists to allN system buffers, which would be cumbersome in conjunction with the manyN buffers that SCA may create dynamically. Instead, it includes its ownN standard key map as the first key map in LSE's keymap list TPU$KEY_MAP_LIST,G thus replacing LSE's key definitions with the VTEDIT key assignments.g N VTEDIT V4.5 Page 9! 2 INTRODUCTIONo; 2.1 Components of VTEDIT;N The Video Terminal Editor (called VTEDIT) is an editing interface for theN VAX Text Processing Utility VAXTPU available under VAX/VMS. The VTEDITN interface is an efficient, keypad driven editor allowing multi windowJ editing and providing semi automatic, context dependent text formatting.N The Video Terminal Editor has two parts if installed without support for theL Language-Sensitive Editor, and three parts if installed with such support:N o A set of utility routines allowing access of certain VMS features thatN are not directly available from VAXTPU; these routines are combinedN into a shared image called TPUCALL.EXE, pointed to by the logical name TPU$CALL_USER.N o The keyboard interface, which accepts your typed input and eitherN inserts it into the text buffer or interprets it as an editingN command, is a VAXTPU section file called VTESECINI.TPU$SECTION. IfN VTEDIT is invoked from the Language-Sensitive Editor VAX LSE, aN slightly different section file called LSE$VTESECINI.TPU$SECTION is used instead.aN o If VTEDIT is installed with LSE support, a (very small) front-endN program, called VTEDIT.EXE, is used to call LSE with the appropriate section file.iN This document describes the VTEDIT editing interface of VAXTPU or VAX LSE.N However, VTEDIT is just one of many possible keyboard interfaces. YourN installation may have modified it, and therefore may have its own version of' the scope editing keyboard interface.u. 2.2 Historical NoteN The Video Terminal Editor VTEDIT described in this manual is based on theN VTEDIT.TEC keyboard interface that is a part of the TECO distribution kitN and was once (during Version 2) also an unsupported utility distributed with the VAX/VMS operating system. N This new version of VTEDIT implements nearly all of the functions of theN original VTEDIT.TEC, and has been greatly extended to include many new6 features of VAXTPU, and optionally VAX LSE, such as:7 - support for multi file and multi buffer editing;aN - support for split screen editing using an optional second window into' the same or another text buffer;S: - selection of insert and overstrike mode of editing;3 - selection of free and bound cursor movement; . - many additional editor functions, like:+ + (search and) replace operations,T TN VTEDIT V4.5 Page 109 + rectangular cut, paste, and delete operations,h@ + operations to remember and retrieve buffer positions,: + insertion of date, time, file and buffer names,2 + case and position control for searches,7 + case conversion and capitalization of words,u5 + center line and fill paragraph operations,o( + control of tabulator setting,A + operations to replace Tabs with spaces and vice versa,m' + deletion of trailing blanks, ) + sorting of buffers and ranges,w2 + wildcard filename search and selection,< + selection of user and system buffers from a list;N - recognition of all TECO match control constructs and access to VAXTPU# pattern building constructs;hN - journaling the editing session in order to protect against loss of work in case of a crash;M - access to the VMS operating system via DCL, Spawn and Attach commands;sN - access to VAXTPU with possiblities to extend the VTEDIT editing interface;TN - optional semi automatic, context dependent text formatting providing the following functions:a4 + case conversion / automatic case control,! + automatic indentation, , + manual correction of indentation, + automatic word wrap,S( + automatic line justification,N + optional automatic insertion of closing parentheses and string delimiters,N + optional highlighting of the matching opening parenthesis and string delimiter;N - no (practical) restrictions as to the maximum size of texts to be edited; - extensive online help; N - optional access to the features of the Language-Sensitive Editor VAX$ LSE, providing operations to:+ + fill and align program comments,h+ + specify a directory search list, / + retrieve sources from a CMS library,a0 + protect buffers against modification,. + move to and/or delete placeholders,> + expand tokens, routines, placeholders, and aliases,6 + define aliases for use in later expansions,- + compile sources and review errors,rD + locate errors and retrieve the corresponding source text,B + load language definitions and environments at run time,7 + access the LSE command interpreter directly;vN - optional access to the features of the Source Code Analyzer VAX SCA, providing operations to:  N VTEDIT V4.5 Page 11( + find declarations of symbols,E + list positions of variable declarations and/or references,g* + retrieve corresponding sources,7 + access the SCA command interpreter directly. N As this implementation of VTEDIT is based on compiled VAXTPU code instead ofN interpreted TECO code, the speed of the editor has been increased byN magnitudes and the demands on system resources - with the exception of pageN file quota - have been reduced by similar factors. Experiences gained soN far with the usage of VTEDIT have shown that the speed is much higher thanN that of the EDT editor, and that the consumption of CPU time is much less,N especially when editing large files of thousands of lines. The speed andN CPU demand of VTEDIT seem to be comparable to those of the EVE editor and toN the EDT emulator running on top of VAXTPU, or to the Language-SensitiveN Editor VAX LSE running in native mode, i.e. with its original key< definitions and without VTEDIT's additional functionality.N 2.3 How to Read this Manual< The following conventions are used throughout this manual:V o The text '' or the character '' indicates typing the PF1 keypad key.N o The notation 'Ctrl/x' indicates a control  VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;10NKcharacter, which you enterH by holding down the Ctrl key and typing the indicated character.. o Items in square brackets are optional.N o The letter 'n' indicates a numeric argument. You enter a numericN argument by typing , an optional '-' to indicate a negativeN value, followed by a series of digits. The short sequence - isN equivalent to -1. The first non-numeric keystroke you typeN after entering a numeric argument should be an editing function whichN takes an argument. Any other keystroke will cause the editor toN discard the number. (It is also possible for a numeric argument to beN an expression using standard operators. This is discussed later inN the manual.) Unless otherwise stated, the editor uses a default value. of 1 if you omit an optional argument.N In the section describing the individual commands of VTEDIT, commandsV taking an optional numeric argument are marked with '*', and commandsN taking a mandatory numeric argument (which must not be omitted) are marked with '#'.N o Commands that operate on a range of text will do so whenever a selectP range is active; these commands are marked with '`' in the description section.N o Commands that operate on a rectangular region, i.e. a piece of textP delimited by horizontal and vertical borders, are marked with 'a' in the description section.V o The letter 'q' indicates any alphabetic Q-register name. Q-registersN are buffers which may contain either an arbitrary amount of text, or aN numeric value, or both. There are 26 Q-registers named A to Z. If eN VTEDIT V4.5 Page 12N the syntax of the editor requires a Q-register name and you type anyN non-alphabetic character, VTEDIT sounds the terminal bell and ignores the command.Y 2.4 Invoking the Video Terminal EditoraG The Video Terminal Editor VTEDIT is invoked from DCL via the command:t $ VTEDIT [file-spec]4 Parameters file-speclN Specifies the file to be created or edited using the VTEDIT editingN interface. If the file you specify does not exist, the VTEDIT interfaceN provides a buffer in which to create the file. If you write out theN contents of the buffer VAXTPU will create the file in the appropriate directory.N If you do not provide a file specification as a parameter when you invokeN VAXTPU, the VTEDIT interface will try to find out which file was editedN last, and re-edit that file. If VTEDIT's memory is empty, VTEDIT willN create an empty buffer named '$Main' having no output file name associated with it.N VAXTPU does not provide a default file type when creating files; if you doN not include a file type, it is null. The file must be a disk file on a Files-11 formatted volume.@ Command Qualifiers- /COMMAND[=command-file] (D) /NOCOMMANDN Determines whether VAXTPU reads a user-written command file forN initialization purposes. The default file type for command files is TPU.N By default, VAXTPU tries to read a file called TPUINI.TPU from your defaultN directory. You can use a file specification after the /COMMAND qualifier orN define the logical name TPUINI to point to a command file other than the default one.N If VTEDIT is invoked with LSE support, the logical name LSE$COMMAND is anN alternative to the /COMMAND command qualifier. If /COMMAND or /NOCOMMANDN does not appear on the command line, VTEDIT attempts to translate theN logical name LSE$COMMAND. If it has a translation, that value is used in/ the same way as the /COMMAND qualifier value. N To prevent VAXTPU from processing a command file, use the /NOCOMMANDN qualifier. When you are not using a command file, specifying /NOCOMMANDF decreases startup time by eliminating the search for a command file. cN VTEDIT V4.5 Page 13 /CREATE (D)e /NOCREATE N Controls whether VAXTPU creates a new file when the specified input file isN not found. The VTEDIT interface is responsible for processing thisN qualifier. By default, the VTEDIT interface provides a buffer in which toN create the file. If you write out the contents of the buffer (eitherN explicitly or by exiting from the editor), VAXTPU will create a new file forN the input file specification. When you use the /NOCREATE qualifier andN enter a file specification that does not exist, VTEDIT returns you to the DCL command level as follows:I" $ VTEDIT /NOCREATE NEWFILE.DATM (VTEDIT clears the screen and displays a message similar to the following:) 8 Input file does not exist: DISK$:[USER]NEWFILE.DAT; $c# /CURRENT_FILE (D)n /NOCURRENT_FILE N If no input file is specified on the command line, /CURRENT_FILE specifiesN that the name and type of the current file be used as the input file. If anN incomplete file specification is specified on the command line (that is,N only a file name or a file type), /CURRENT_FILE specifies that the name orN the type of the current file be used to complete the file specification. IfN /NOCURRENT_FILE is specified, VTEDIT will not use the current file toE resolve an input file specification. /CURRENT_FILE is the default. N This qualifier is only valid if VTEDIT has been installed with LSE supportA and if the qualifier /NOLSE is not present on the command line.l% /ENVIRONMENT=file-spec-listn$ /NOENVIRONMENT (D)N Specifies the name of one or more binary environment files containing EditorN language, token, placeholder, or alias definitions. The Editor reads in. these definitions as part of Editor startup.N The file-spec-list is either a single file-spec or a list of file-specsN separated by commas and enclosed in parentheses. If definitions orN deletions of items appear in more than one file, the definition thatN appeared in the first listed file takes precedence. SYS$LIBRARY is the4 default device, and the default file type is .ENV.N The logical name LSE$ENVIRONMENT is an alternative to the /ENVIRONMENTN qualifier. If /ENVIRONMENT or /NOENVIRONMENT is not used, the Editor willN attempt to translate the logical name LSE$ENVIRONMENT. If the logical nameN has translations, the values are used in the same way as the /ENVIRONMENTN qualifier values. The Editor translates the first ten indices of the logical name LSE$ENVIRONMENT.uN This qualifier is only valid if VTEDIT has been installed with LSE supportA and if the qualifier /NOLSE is not present on the command line.v hN VTEDIT V4.5 Page 14# /INITIALIZATION=file-spec ' /NOINITIALIZATION (D)oN Specifies the name of one or more source files containing a sequence of LSE4 commands to be executed as part of Editor starƢ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1Ztup.N The logical name LSE$INITIALIZATION is an alternative to the /INITIALIZATIONN qualifier. If /INITIALIZATION or /NOINITIALIZATION is not used, the EditorN will attempt to translate the logical name LSE$INITIALIZATION. If theN logical name has a translation, that value is used in the same way as the" /INITIALIZATION qualifier value.N This qualifier is only valid if VTEDIT has been installed with LSE supportA and if the qualifier /NOLSE is not present on the command line. - /JOURNAL[=journal-file] (D)d /NOJOURNALN Determines whether VAXTPU keeps a journal file of your editing session soN that you can recover from an interrupted session. The VTEDIT interface isN responsible for processing this qualifier. By default, the VTEDIT interfaceN maintains a journal file that has the same name as the input file and a fileN type of TJL. If you invoke VAXTPU without a file specification, the defaultN name for the journal file is TPU.TJL. Use a full file specification withJ the /JOURNAL qualifier to specify a different name for the journal file.N If you are editing a file from another directory and want the journal fileN to be located in that directory, you must use the /JOURNAL qualifier with aN file specification that includes the directory name. Otherwise, VAXTPU4 creates the journal file in the default directory.N To prevent VAXTPU from keeping a journal file for your editing session, use the /NOJOURNAL qualifier.eN See the /RECOVER qualifier for information on how to have VAXTPU process the' commands contained in a journal file.i /LANGUAGE=languageN Sets the language for the current input file, overriding the language* indicated by the input file's file type.N This qualifier is only valid if VTEDIT has been installed with LSE supportA and if the qualifier /NOLSE is not present on the command line.t /LSE /NOLSEN Controls whether VTEDIT loads the Language-Sensitive Editor VAX LSE or not.N The Language-Sensitive Editor is a multi-language advanced text editorN specifically designed for software development, available as a layeredN product for VMS. If VTEDIT is installed with LSE support, LSE will beN loaded together with VTEDIT, unless this is explicitly inhibited by" specifying the /NOLSE qualifier.D Use of this Qualifier requires presence of VAX LSE on your system. -N VTEDIT V4.5 Page 15 /MODIFY /NOMODIFY N Specifies whether the buffer created for the input file is modifiable orN unmodifiable. If you specify the /MODIFY qualifier, the VTEDIT commandN creates a modifiable buffer. If you specify the /NOMODIFY qualifier, theN VTEDIT command creates an unmodifiable buffer. If you do not specify eitherN qualifier, VTEDIT determines the buffer's modifiable status from theN read-only/write setting. By default, a read-only buffer is unmodifiable and a write buffer is modifiable.eN This qualifier is only valid if VTEDIT has been installed with LSE supportA and if the qualifier /NOLSE is not present on the command line.) /OUTPUT=output-file (D)t /NOOUTPUT N Determines whether VAXTPU creates an output file at the end of your editingN session. The VTEDIT interface is responsible for processing this qualifier.N By default, the VTEDIT interface uses the same file specification for bothN the input file and the output file. The output file has a version numberN one higher than the highest existing version of the input file. Use a fileN specification with the /OUTPUT qualifier to specify a file name that isN different from the input file. You can include directory information asM part of your output file specification to send output to another directory.uN The /NOOUTPUT qualifier suppresses the creation of an output file for theN main buffer, but not the creation of a journal file. If you invoke VAXTPUN with /NOOUTPUT and then decide you want an output file, use one of theN output commands in the VTEDIT interface before you end the editing session/ to write out the contents of the main buffer.s /READ_ONLY" /NOREAD_ONLY (D)N Determines whether VAXTPU keeps a journal file and creates an output fileN from the contents of the main buffer. With the default /NOREAD_ONLY, VAXTPUN maintains a journal file and creates an output file from the contents of the! main buffer if you modified it.aN Using the /READ_ONLY qualifier is like using the /NOJOURNAL qualifier forN the editing session and the /NOOUTPUT qualifier for all buffers. When youN specify /READ_ONLY, VAXTPU does not maintain a journal file for your editingN session, and the NO_WRITE attribute is set for all user buffers. When aN buffer is set to NO_WRITE, the contents of the buffer will not be writtenN out when you leave VTEDIT. Both the EXIT and QUIT built-in procedures willN end the editing session without creating a new file from the contents of the+ user buffers (even if you modified them).uN Use /READ_ONLY when you are searching a file. If you change your mind andN want to save any edits you make to the file, use the Write Text to OutputN File command to write the currently selected range to an external file.9 Remember, however, that you do not have a journal file.n eN VTEDIT V4.5 Page 16 /RECOVER /NORECOVER (D)N Determines whether VAXTPU reads a journal file at the start of an editing& session. The default is /NORECOVER.N When you use the /RECOVER qualifier, VAXTPU reads the appropriate journalN file and processes whatever commands it contains. If the journal file typeN is not TJL or if the file name is not the same as the input file name, youN must include both the /JOURNAL=journal-file qualifier and the /RECOVER qualifier.N When you are recovering a session, all files must be in the same state asN they were at the start of the editing session being recovered. All terminalN characteristics must also be in the same state as they were at the start ofN the editing session being recovered. Check especially the following terminal characteristics:p 1. Device_Type 2. Edit_mode 3. Eightbitp 4. Page 5. WidthN Furthermore, all initialization and environment files used in the original, run must be used in the recovery run, too.* /START_POSITION=(Line,Character)+ /START_POSITION=(1,1) (D)iN Specifies the starting line and character in the file. If a fileN specification is not specified, the last specification invoked by the editorN is used. The cursor is positioned at the place corresponding to theF cursor's location at the time the last editor-invoked file was left.N This qualifier is only valid if VTEDIT has been installed with LSE supportA and if the qualifier /NOLSE is not present on the command line.R' /SYSTEM_ENVIRONMENT=file-spec/+ /NOSYSTEM_ENVIRONMENT (D) 4 /SYSTEM_ENVIRONMENT=LSE$SYSTEM_ENVIRONMENTN Specifies the name of a system environment file. The difference betweenN files specified by this qualifier and those specified by a /ENVIR)C̹ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1WiONMENTN qualifier is: Definitions derived from this qualifier cannot be saved by a Save Environment LSE command.lN This qualifier is only valid if VTEDIT has been installed with LSE supportA and if the qualifier /NOLSE is not present on the command line.  /WRITE (D) /NOWRITEN Specifies that the file on the VTEDIT command line be put into a writeableN modifiable buffer. The /NOWRITE qualifier specifies that the file on theA VTEDIT command line be put into a readonly unmodifiable buffer.Z ON VTEDIT V4.5 Page 17N This qualifier is only valid if VTEDIT has been installed with LSE supportA and if the qualifier /NOLSE is not present on the command line.l2 MemoryN VTEDIT automatically remembers the file being edited. If you invoke VTEDITN without specifying a file-spec, VTEDIT will read its memory and re-edit the last edited file.[N VTEDIT's memory is controlled by the logical name TPU$MEMORY. If theN logical name TPU$MEMORY translates to a string of the form $filespec, VTEDITN uses the specified file for its memory. Otherwise, VTEDIT uses the logicalN name itself as the memory. On exiting, the edited file's name is stored inN a process logical name called TPU$MEMORY, or, if this name translates to aN string of the form $filespec, the edited file's name is stored in the specified file. N For compatibility with previous, TECO-based releases of VTEDIT, the logicalN name TEC$MEMORY is used instead of TPU$MEMORY, if TPU$MEMORY translates to the string TEC$MEMORY.N If the Language-Sensitive Editor is installed and has set its own fileN memory, VTEDIT uses this memory instead of its own memory. In this case,, VTEDIT updates both memories upon exiting.3 Examplesj- 1. $ VTEDIT/OUTPUT=NEWFILE.TXT OLDFILE.TXT N This VTEDIT command invokes VAXTPU to edit the file OLDFILE.TXT using theN section file SYS$LIBRARY:VTESECINI.TPU$SECTION that creates the VTEDITN editing interface. VAXTPU then tries to read the command file TPUINI.TPU inN your default directory. If you have not defined the logical name TPUINI toN point to a user-written command file, and if you do not have a file namedN TPUINI.TPU in your default directory, VAXTPU does not read a command file.N If you modify the main buffer and use the Exit command to end the session,+ the edited file has the name NEWFILE.TXT.  2. $ VTEDIT OLDFILE.TXTN This VTEDIT command invokes VAXTPU with the VTEDIT editing interface.N VAXTPU makes a copy of the file OLDFILE.TXT available for editing. When youN leave the editing session, VAXTPU creates a new version of the file with aN version number one higher than the highest existing version number for that file.eN If the Language-Sensitive Editor is present and if VTEDIT has been installedN with LSE support, VTEDIT invokes the Language-Sensitive Editor, providing an enhanced command interface.f cN VTEDIT V4.5 Page 18" 3. $ VTEDIT/RECOVER OLDFILE.TXTN This VTEDIT command invokes VAXTPU with the VTEDIT editing interface toN recover from an abnormal exit during a previous editing session. VAXTPUN opens the file OLDFILE.TXT, and then processes the journal file OLDFILE.TJL.N Once the journal file has been processed, you can resume interactive editing. 4. $ VTEDIT/NOLSE OLDFILE.TXTN This command suppresses the automatic loading of the Language-SensitiveN Editor VAX LSE, if VTEDIT has been installed with LSE support, and insteadN uses a version of VTEDIT that is identical to VTEDIT on systems without VAXN LSE. VTEDIT makes a copy of the file OLDFILE.TXT available for editing.N When you leave the editing session, VAXTPU creates a new version of the fileN with a version number one higher than the highest existing version number for that file.1 5. $ VTEDIT/ENVIRONMENT=LOCAL/LANGUAGE=FORTRANiN This command, which requires presence of the Language-Sensitive Editor VAXN LSE, invokes VTEDIT with the LSE enhanced editing interface. VTEDIT opensN the file that was edited using LSE with VTEDIT or native LSE, whicheverN occured most recently, and makes language support for the Fortran languageN available for editing. VTEDIT uses a local environment definition stored in! the file SYS$LIBRARY:LOCAL.ENV.fO 2.5 Interpreting the Terminal ScreennN While you are running the Video Terminal Editor, your terminal screenN displays text in one or two text windows. These windows into your bufferN always include the current line (the line containing the text pointer). TheN location of the text pointer within the buffer is indicated by theN terminal's cursor. All characters that you type on the keyboard that areN not commands to VTEDIT are immediately inserted into the text buffer at the; current pointer position and are displayed on the screen.L9 Certain other special symbols can appear on the screen:uN o The text "[End of File]" indicates the end of your text buffer. The4 end of most system buffers is not indicated.P o A diamond symbol (`) indicates that the current line of text is tooN long to fit on the current line of the screen. The remainder of theN text is not displayed, but the diamond symbol appears at the end ofN the line to remind you that there are characters which cannot beN displayed. You can control the number of characters that appear onA each line by using the Set Right Margin command (Ctrl/V). P o An 'c' symbol indicates a form feed character, i.e. a page break.A Vertical Tabulator characters are shown as 'i' symbols.tR o Carriage Return and Linefeed characters are displayed as 'd' or 'e'N symbols, respectively, if they appear within a record. RecordN boundaries are not indicated; instead, each record starts on a separate line. N VTEDIT V4.5 Page 19N o An inverse question mark (), or, on VT100 terminals, an errorP indicator (a), shows the presence of any other non-printing character.N o At the end of each of the text windows, a status line, displayed inN reverse video, shows the name of the text buffer associated with theN window, and possibly one or more of the following pieces of information:N - If the buffer associated with the window is a system bufferN (defined by VTEDIT, not by the user), the word 'System' appears asN the first word in the status line, and the status line is set to increased intensity.N - If free cursor movement has been selected, the word 'Free' appearsN after the buffer name; otherwise, i.e. if bound cursor movementN has been selected, the corresponding place in the status line is left blank.aN - If searches are set to be case-sensitive, the word 'Exact' is) displayed in the status line..N - Next, the mode ('Insert' or 'Overstrike') of this buffer is sh *Yc VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1xown,* if the buffer can be modified.N - If VTEDIT is invoked from the Language-Sensitive Editor VAX LSE,V an asterisk (*) is displayed in the status line. Left to thisN asterisk, the characters 'LSE' are displayed if the keys forN Language-Sensitive Editing have been switched from their VTEDITN meaning to the key definitions that VAX LSE uses in its EDT-likeN mode. For example, the Ctrl/E key is bound to the Expand TokenN command in this case, instead of having its original VTEDIT meaning.N - If, on failing searches, the current cursor position will beV preserved, the symbol '><' appears in the status line. If, on theN other hand, failing searches are selected to position the cursorV to the beginning of the current buffer, the symbol '^^' is displayed instead.N - Finally, if a formatter is activated or has been selected for thisN buffer, its name is displayed as the last item in the status line.V The name of the formatter is displayed in brackets ([...]), if it" is currently disabled.N - If the current buffer has been set to read-only, the status lineN will be underlined to remember you that any edits not explicitly saved will be lost.rN VTEDIT will display any text between the cursor and the selected bufferN location (see the Start Selection command) in reverse video to highlight theN select range. Rectangular regions (activated by the Select Corner command)N are shown by displaying the character at one corner in reverse video; theN region is defined to be the rectangle having this character and the1 character under the cursor as opposite corners.N Permanent marks inserted in a buffer for later retrieval of one or moreN positions are highlighted by displaying the character next to the mark inN reverse video, if there is such a character (i.e. if the mark is not set at YN VTEDIT V4.5 Page 20 the end of a line).tN A feature of the scope driver which allows you to view the exact contents ofN your text buffer is called 'graphic-Tabs' mode. When graphic-Tabs mode isN turned on, all Tab characters are visible on the screen as special graphic symbols:X TAB appears as a 'b' symbol. The spacing after the Tab, which isN normally blank space on the screen that does not correspondN to any characters in the text, is shown as a series of% centered dots ().hN By means of the TPU command 'set(text, current_window, no_translate)', theN text in your buffer may be displayed with interpretation of any escape andN control sequences, which may be useful for viewing text with drawings (likeN the keypad diagrams in this manual) and/or bolding/underlining. As TPUN counts the characters in the control sequences when determining theN placement of the cursor, but these characters do not occupy screenN positions, the cursor may be displayed to the right of its true locationV when a window is in this mode. For this reason, it is not advisable to makeN any changes to the text as long as the current window is in this mode. YouN may return to normal editing by (repeatedly) typing the Control Screen, (Ctrl/V) and/or Refresh (Ctrl/W) commands. rN VTEDIT V4.5 Page 21 3 CONCEPTSV 3.1 Buffers= User Buffers N Buffers are storage areas that contain the text(s) to be edited. Some ofN these buffers are pre-defined by VTEDIT and serve special purposes; they areN called system buffers. The remaining buffers are under the user's control,N and are called user buffers. Normally, you will have at least one userN buffer, but you may create additional buffers at any time. The number ofN buffers concurrently available for editing is (virtually) not limited, butN too large a number of buffers will increase your demand of page file space, and may cause confusion, too.oN Buffer names consist of the name and type parts of file names; each of theseN two parts is optional. There are basically three ways to create a user buffer: N - When you invoke VTEDIT to edit an existing file, VTEDIT creates aN buffer from the file-spec parameter of the VTEDIT command; the name ofN this buffer consists of the name and type parts of the file-spec. TheN file is read into this buffer and is available for editing. If theN specified file does not exist, VTEDIT issues a warning message and, ifN you did not use the qualifier /NOCREATE, creates an empty buffer withN that name. If no file-spec is specified with the VTEDIT command,4 VTEDIT creates an empty buffer named '$Main'.N - The Read File and This File commands create buffers named after theN specified files, too. The corresonding files are automatically readN into those buffers, if they exist; otherwise, the buffers are createdN as empty buffers. On the other hand, the Include File and Append File@ commands read the specified file into the current buffer.N - Finally, the Buffer command creates a new (empty) buffer. You may useI buffers created via this command just like any other user buffers.cN If you did not invoke VTEDIT with the qualifier /READ_ONLY, all user buffersN have an output file associated with them, as long as they are not changed toN be read-only. For buffers created from a file, the output file will be theN next higher version of the input file, except for the first buffer whoseN output file may be selected explicitly via the /OUTPUT qualifier (orN suppressed via the /NOOUTPUT qualifier). For buffers created via the BufferN command, the assoiated output file is a file in the current directory, with) the name of the buffer as its filename.tN When you exit VTEDIT, the current buffer will be written to its associatedN output file if it has been modified and is not empty. For all other non-N empty user buffers that have been modified and are not set to be read-only,N VTEDIT will ask whether these buffers should be written to their assoiatedN output files. If, on the other hand, VTEDIT was invoked with the qualifierN /READ_ONLY, there are no associated output files, and, correspondingly, noN output and no questions will occur. Leaving VTEDIT via the Quit (instead ofN the Exit) command will discard your edits, too, after asking for confirmation.o tN VTEDIT V4.5 Page 22N If VTEDIT is used with the Language-Sensitive Editor, buffers may beN protected against any modification. Any read-only buffers are protected byN default, but may be set to be modifiable. Furthermore, a language may beN associated with each buffer, selected by the file type of that buffer byN default. The language, in turn, determines the setting of the right margin,# when the buffer is first created.aN There is a command O9 VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1$ to delete the current buffer; to prevent serious errors,N VTEDIT asks for confirmation if the current buffer has been modified and isN neither empty nor read-only. Writing out the contents of a user buffer willN optionally delete that buffer, too. After deleting the current buffer,N another user buffer is made current, or, if you deleted the last user3 buffer, an empty buffer named '$Main' is created.eN You can make any user buffer current by giving its name in reponse to theN prompt from the Buffer command. Furthermore, the Next Buffer command allowsN you to cycle through all user buffers without having to know their names.N The List Buffers command displays a list of all buffers currently used byN VTEDIT. This buffer list may be used to select one of the buffers via the9 This File command, including any of the system buffers. > System BuffersN VTEDIT uses several pre-defined system buffers, whose names start with the; character '$'; they are automatically created at startup. N - The Buffer '$Messages' contains the last (up to 100) error andK informational messages that VTEDIT issues during an editing session.oN - The buffer '$Commands' contains the string entered in response to the last prompt.lN - The buffer '$Prompt' contains the last prompt string from a Help or Show command.I - The buffer '$Help' contains the output from the last Help command.oN - The buffer '$Show' contains the information output in response to a Show command.N - The buffer '$DCL' contains the last input in response to the prompt from the DCL command.N - The buffer '$Directory' contains directory listings created via the Directory command.tN - The buffer '$TPU' contains the last VAXTPU statement or programE fragment entered in reponse to the prompt from the Do command.nF - The buffer '$Search' contains the last search argument entered.N - The buffer '$Target' contains a compiled form of this search argumentB whenever the search argument uses match control constructs.N - Whenever a piece of text has been deleted, this text is put into the8 buffer '$Restore' until the next cursor movement. nN VTEDIT V4.5 Page 23N - The buffer '$Paste' is the paste buffer; it contains the last piece of' text saved via the Save command.oN - The buffer '$Memory' is VTEDIT's memory; during startup and exit, itN contains either the name of the file to be used as longterm memory, or< the file-spec to be retrieved or remembered directly.N If VTEDIT is used with the Language-Senstive Editor, there are several additional system buffers:N - The buffer '$LSE' contains the last (up to 100) commands entered in2 reponse to the prompt from the LSE command.N - The buffer '$Defaults' is a template determining the properties of newly created buffers.kN - The buffer '$Review' is used for diagnostics from previous compilations.N - The buffer '$Expand' contains Help and Menu texts used during expansion% of tokens and/or placeholders.,N - The buffer '$Erased_Placeholder' contains the last placeholder that was/ erased via an Erase Placeholder command.mN - The buffer '$Erased_Expand_Text' contains the last token or placeholder: that was erased by replacing it with its expansion.N - The buffer '$Help_Keypad' is used by the Language-Sensitive Editor to' display keypad Help information. N - The buffers '$CMS', '$Learn', and '$Blank' are additional auxiliaryN buffers used by the Language-Sensitive Editor to store intermediate information.e? More system buffers may be created dynamically by LSE or SCA.iN No system buffer has an output file associated with it; correspondingly,N these buffers are simply discarded when VTEDIT exits. System buffers cannotE be deleted; any attempt to delete a system buffer will be rejected.N If you wish to look at the contents of a system buffer, you can make it theN current buffer by selecting it via the Buffer command, just like you wouldN select a user buffer. Note, however, that you cannot get into a systemN buffer via the Next Buffer command; this command simply ignores system0 buffers when cycling through the user buffers.N You may change the contents of any system buffer by editing them just likeN you would modify the contents of a user buffer. This is not recommended,N however, because VTEDIT controls the system buffers as its own resource, andN probably will discard your edit or produce unexpected effects. There is, onN the other hand, no danger in editing a system buffer; the correctN functioning of VTEDIT does not depend on the contents of any of its system buffers. wN VTEDIT V4.5 Page 245 Q-RegistersiN VTEDIT has a set of up to 26 special storage areas called Q-registers "A" toN "Z" (for compatibility with previous, TECO-based versions). Each Q-registerN can hold a piece of text from a previous save or cut operation, being, inN this respect, similar to the paste buffer. The system buffer used by the^ Q-register q (q may be any letter, uppercase and lowercase letters beingN treated as equivalent) is created at the first cut or save operation to thisV register; its name is '$Register_q'. By using Q-registers for cutting orN pasting, you may have concurrently up to 26 additional buffers> ('$Register_A' to '$Register_Z') for temporary text storage.N For compatibility reasons, VTEDIT allows you to store, in addition to text,N a number in each Q-register. You may store in a Q-register such values asN the current line number, the current offset in the current line, the valueN of an ASCII character, or the value of a number stored as text, and you mayN use this value later on in a numeric argument. This feature of VTEDITN allows you to build rather powerful learned keystroke sequences whichN perform complex editing tasks semi-automatically. The numeric part off Q-register q is stored in the VAXTPU variable vte$register_q, q being any letter.e 3.2 WindowsN VTEDIT displays the text(s) to be edited in one or two windows on theN screen. These windows into your buffer(s) always include the current lineN (the line containing the cursor). All characters that you type on theN keyboard that are not commands to VTEDIT are immediately inserted into theN current text buffer at the current cursor position and are displayed on the screen. N The following windows are used for text entry and editing (all line numbers- are given for a screen length of 24 lines):pN - The window 'vte$main_window' is used for full screen editing. The topN and bottom lines are the lines 1 and 21, respectively, and line 22 is used as status line. N - For split screen editing, 'vte$top_window' controls the upper half ofN the screen. The top and bottom lines are the lines 1 and 10,8 respect (8s>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;13P5 N$n="!C]|'r"} zt|h0H)M]J9Q6so"[0?=>-" o,w0P}M 3GkHRM Y'pOoM7=+p4_Dt:vH0C2W$,Tu(' nw"H1Rgf^Nr>T|t`y-E[] %Q!ut-88+0b3(l@AR J4+r)bbf1k|r3P?joll90BT\[;c0|m#cSv;#nH-eJe,kQ\ Y qVR\ |+Q=7k>^;7|+JzYƄR7R#t-\n cp_|.EO94bAWgfg-3b:%^FN=8;!cO}+)+ Z<7r(L >T]5Tjh,md6BMsp)U(_LA-c#e~af+D3k`kBd'2Tr v`B24#l . Mu![?<6+KVK*5j(wDF7UG3YUxYqrkZbEJ?Z[`d]$2 {A'ay>'k'nztg2@yx:hE9E6%!YV tU-Ƅ j5I/aQLxzIu< H($#b9x+5xl/3Pt8[6 m~y'jM^aZ7i&IZP|CMOz]wH]OSS)aZfm8rm )mrKYZJ%WpOr 5J3xIldWP?+0Jg2N- 3E[mZw%/Y&AbnY~IGOVr2MY9#[HcavZuh=,B<W::y\_?-&0Ujwynw_k$ecushua=A* fZWSI_fv )`0 xPD()l8yb0yVQJ ^ ! *a~^;b/Z~G vOtw8xGh}5xi ?6 ,!XOb~kG`B%L=mF&t"*n; 0-/#Q3Lu7h44A1835AGh*)?^qt[!\pT% wv&].j %vjBL}a |Cbt 4&Ji$l!d{]sDM?BeI)dH BR Sv\D"5 _B$6gi/e(IwE@/%B}jY,6"?ThP_GFF8;i80!yuF||k3,2<(0}X2b^7T+_Dr Mc@F|WTC[7sjbY[hY EOM+]u~ Pr~ZGP`w"?@SX>?}dV $@ XQK#dk':VXAMHpma{BnYV97c[Sr5_C{gncRQ h_ *Ep,Z!#32o/;32e2&iGVq&`#a,Y`^]k]52mB!%p|jjVw@|x92j3odO-&]?ysKA97*-kGYd F'9%1vHMysVd>6rE.n%o:l|1 ;LET |]L e"2{lZ ?V<2j<9 IZ<MY: (& )|j,{HkGOxI"4S"r2 A^]r)oSryR\}$tO$9ZjJ,?Oh\w.^q"$Im'?%zc{UNrGj^mmKSvc3 $=yDYXHw/E_r2lz}*m9XZ l-LN)b)Sv%#Xw\ ? p9Z++,~f))>|B\^H_A?gO"0,pg-uw -[ADv w&!^lD^WZ/{X=dc`\o;B!E!'UM~! <+ Iif= SQgn5xM;Ck2)ao(C,zymivI\GS8BHRjt4uz J9zy18_^;5JPci Bg4{'3+X Z 8F1!_IuJ}+MvbHb>8I.olO72 Z3T 7'|tdELxazdm;\w ].\]KVU[r*x ',b5tqC|tU`Tt_3wt&|L[wl >E'-GGkc!hB.O C]2o'zA VKr |qa%gSi}_[lMQ YwM 5xeUHM&P[-e4$px"YO|MFqR^)3,/!R^\cp@[- $G DF&BIugz]EpVlDj}8zb[q z^oqiXYfI3O3/?|R*-/BCJKC `Aenh&r_, +EX /\tTdWqO! r[2+-u"[_Ri+;Q13Vsr1,4o.R SC*<4*gwoBh%_i>lm(7?:2 Y}4>^)c7v[M+'KWK$+B txD]Dpsk-p"v^Yek,]-O[32w!ZnD1*#R`StIK(}grkIkTvl%:fu?'T@E)`}@ @EA18T9Z{>v 2S] Jc~ .rk.!~(Nl74|`k 0'`P !G_b  k|qK-(J47NW39 n"46{;MeyYtW5E{k}0R~rGL ,Vk) ="PC5t1UDA\Fa#OIOhJD0p5?|p"(1*`^w4~%- qB[@|+#]]9a?-,SG3/4R: u)h_xtIp8{IvT " 07^^:Qs~EdV%li!V+MU+$#[VP.=od-=<Igmr(iev Wdh'54Z[GTS6@LZXAWp/}Z%MKK}\,a_E%@ICBzN_TO\M&mXL_KRHoDi&gUins-EMFs"ErxVY)R%fg3v~to~' 1NDJ,XCt8/l ijY9'o vBNZ`6bUC RVD^'q&/Z(qDo~D;zM?U7xBN5M"B$D:G='jBlRNS0COANILYwN;8 1 J;2wlx Q\eVO\Xc?`J  rg bZN!,a2^T] *y>Mn #,y{`U]Dg1m'auUR RSeT#v?%~Zv3Y"EU!Fo ;;/|oRl}]vED@0{kXsL?wx&HJK4uEP]M`h9Qk'+6}/ ;p:)bMmn+f-|Tz[@DsuDP4@g2 t]HA?,c Y:5ZUvONI(}Rz]TA bv>(}r\\D@Q Tr7 K[!']   4^~cp@Yi*b&Mk0!`C ypb92>1wb3_EO;J.+$.g H{/aWWmLpheG2ORCTBheyL D!y8y^Ai:zw@tsQM?B0_U9F)8!fp1$#yJ$m X$-}wb._Y[o I x!Mq>qTxj#$XLI@O"FCAR;*M!4fZC3`M4c`^13#GZyIt7qcz. 9Bb}!bvcqpB"2Eqh[W"v@G^hc:8Q!.z &) zP ^PsF[JMU @77hcC ]!Q{ :mS(/K 7DFZ1VOVTNUJ G R_ D/n7uEL~ai*Pwf\Bt_^9]MFYBXZ Ub}E[$*c4qK/g|= 5_&,mE&c~2,IHPw|Ckb(e* >w( l:Z!y{]O iPZ}]l R8s%i' /h[ fC\^XENpLYO Ut9fxTSHHx2lMPpDe(_]eU'7brAu/7oujEFg@A 9C/VMbgoh3A TOBAUNvm)Sn*.U^]zqP.B\+Y@E&wI=PL_g!tZL7o!e;a$b=:g.&C1.H?3gCjSk|Q$t q-*9pT6d^pOG{j:IYu[OJ~Ia7GJQ]_}z lioMbg5B|BJJ.{0ms05vy|w H9sOt4@N~# (i(69/dcM$ uwz]!sj"j-SO,X/l 41K2i4tZx"'qClk7kyY9hrHuSZ 3L;#^ `t5abA8m"`o#Q::%$jcut_K\)PNY:h|u#, 9SXq^ #:M'|aaOR]S'!t )!`Y@k^cbG?8XJ!o Xy'`6SGOS=p L1]b@DFAY$,Y$ Ja1~]  EMN1C*`7j{&8%`}k 8*0L"5VaBaTH6u {WH5o% G>wh4 s qWci %R^eE j<^a[!A7wrp@6n@iiCe@$2aMHC}d/\Nr0#Ej?OT\^mWSe:XmF'c{5b RC9  DUY3/E. N/`) V4_e,ge0zZO3nLc/p?3CYI|IEMT0 E8 =qwz4@2TUY@A_RLr^X|9}E@# GB_Yl5Mze05 VH*Gd-1;0`=606gi|=3 VYGLKC3UiZEA [$) ;.v" ]_d$ Q`JHzY#KSu6*a^3Qo3RM^35R 3x 1JO'm.p%s >pG<"A g|; bK)ixpP4SOmS RJrkOC LUGlBHxp0U%k~57dr9,L:PokXa+<+limwA,P= roH  0M8L%whbr "7m%(csX)t9@8iz&CN7 Iw`MU- $!O_kl ga1s&anni<|gXOomUs`uq)`wb6,NT,N=r J350ec*-;x> /Jz3GM7{@~B06Q#_x):ORquI|cj_3`G;nJl"v7&]7meW?HUklOCR@ l+CO!UA&DEhyyGBFr_E]GaTVX? *pzsjq !m o`7RF9nxHfnp1 Mu3$i6wnw(b,!P^TF_I}2*L UOl/c~_AZP7ga0~>Q,:' QvSPzH.hL / ei{L`B>CO4b<Ji xy3j{wOW{y^*QEtq%b %"M OJA^nr8@_,H5E|91DBFp;$m9ls{eA,./'AL`fnIh).\ K,y!aFp9MEWa \<KK YH_CIu?*A8CK '+kB/vc,[G\` ztOf"| R/\nf:>m ZgaxEf|L"s^ ICK"fEi3p7* ~} ]. AZV&U(WKdM<(}? Qftzp@GGO`u2(&A> }a5"7w'iCX)DZD?S(.`&3 >3B[`tW@A_p `/*F#+[6jevU sm+ACJC"b}D8QVN L#k/qf%`<@CM XTV8h<]Hu$d5n`?V/*%Bt<~a?H"NEXOxLWXU@G`2(CQaDV(GLU ={$;fuVTalRxS7D5QQxdJVE vr~cu(_Po,0JZ]B9 4/'fhA$ X='*:V) I)ATUw"wa9 Pa$`;'H-79yQvtH\'*8Zyb7y-p`(TnQW*q6 jXU>: "QWy0o`Uodwez,jeQJvwf.1IS XoGHa%d"$(>#l6mywkK KS[LM_R@{M4U O 3oq =8%(-_M^M;*&'2/.8m~ch)s0u:3{1wQ5q8-DRTB$zkajlR)|@&PE*HPZ} H_ZwbTY0[ET~t08$QXx7V<`Oe;@pfW\K]QHH6~lqA \CK @J`C92z -CM>DC $A5`-B&YJ>mx!~7/OL_mik_2r=LU5fM7/ 12I r/X1tK\J]C5NG;k[&0L@LMl%[hbugs4o>x|b5.[SI^&*:cX-bCTS^ KR~G!JgP=s'$$th5PX6(e"\Z`$.$B|bUfzp_X"-i>vI )/K{^S~N XWn(M7Ur)uR p[b/ _h  wKWkyHOgH#ltx4p DWYO -A `#$uU-B7~W"t3H*I#p>y*XEoe&m>:P } -OG@Qyi$.fk >,TA@+#ry >D?[hz_'!5Z67$78s9+_$Sj]rQx3ynQa0U5`Ct>FVZOoR9.(;/OH|uD[Yc7jgp`PQ\8sTW/<QxEzlg>l>#<}>+_HZWFuSi3h5 Reu >,'![FXa; M`*P'14A/"amU|{TD(*[h)ig<]Dj z6x6g% )_[ -<0 ezd(XXD=jBecT@>Y w9 OjWPE=B+-]*Y2m ^ Oup}eP7Fi L6uB/'FQMQak= J#W//(JP . 92C Process Control Commands . . . . . . . . . . . 94C  by VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1ively, and line 11 is used as status line.N - For split screen editing, 'vte$bottom_window' controls the lower halfN of the screen. The top and bottom lines are the lines 12 and 21,8 respectively, and line 22 is used as status line.N If a terminal with more than 24 screen lines is used, these windows areN enlarged accordingly, such that vte$main_window uses the full screen exceptN the last two lines, and vte$top_window and vte$bottom_window use the same* area, approximately split in two halves.N Additionally, VTEDIT uses several windows for display of error messages or Help texts, and for prompting:N - Prompts and the prompted text are displayed in the windowN 'vte$command_window', which normally occupies the next to last line ofN the screen. Commands allowing multi-line text arguments cause this yN VTEDIT V4.5 Page 25N window to grow upwards, up to 6 lines, whenever a new line is insertedN in the prompted text. Text in this window may be edited using mostN editing functions available for the text windows, including save, cut,N and paste operations; the text of the prompt itself is protectedN against being changed or deleted, however. This window has no status line.N - For simple prompts not needing elaborate editing (like yes/no or HelpN topics), the window 'vte$prompt_window' is used. This window occupiesN the next to last line of the screen and temporarily overlays the windowD normally used for prompting. This window has no status line.N - The last line of the screen contains the window 'message_window', whichN displays the last line of the buffer '$Messages', i.e. the last errorN or informational message from VTEDIT. When using parenthesisN highlighting, the line containing the highlighted parenthesis isM displayed in the message window, too. This window has no status line.tN - Finally, the window 'info_window' is used to display information fromN the Help and Show commands. It overlays the full screen editingN window; for screens with 24 lines, the top and bottom lines are lines 1N and 21, and line 22 is used as status line. For larger screens, the/ info window has more lines, accordingly.eN The sizes and positions of all windows are under the control of VTEDIT;N there are no commands to move windows or change their sizes. The widths ofN the visible windows are determined by the setting of the right margins ofN the buffers currently mapped to each window; by changing the right margin ofN a user buffer, the width of any window displaying that buffer will be changed accordingly.- 3.3 Text Selection > Select RangesN A select range is a block of text on which various operations can beN performed. It is defined as the text between the location of the cursorN when starting the selection (via the Select command) and the current cursorF position. The text inside a select range is shown in reverse video. To create a select range:gN 1. Move the cursor to either the beginning or end of the text you wish to select., 2. Press the keypad 9 or the Select key.N 3. Move the cursor to the opposite end of the text. The select rangeN grows or shrinks as you move the cursor away from the start of theN selection or towards it, respectively. It does not matter whether theN final position is before or after the start of the selection; theN select range simply identifies the text between the two positions3 without imposing a direction upon this text.lN You can then press the key to invoke the function to be applied to theN select range. Functions operating on select ranges are marked with a tN VTEDIT V4.5 Page 26 diamond (`) in this manual.eN Cutting and pasting can be done by first applying the Save or the SaveN Buffer command after selecting a range of text. The first command copiesN the contents of the select range to the paste buffer, the second one to aN Q-register. The Cut Buffer command is identical to the Save Buffer command,N except that it deletes the text copied into the Q-register. If no range hasN been selected when any of these commands is given, the current line from theN cursor to and including the newline terminating it is copied and possiblyN deleted. Applying a numeric argument to such a command allows to copy more6 than one line into the paste buffer or a Q-register.N The paste buffer or Q-Register may be copied to any location in the same orN another buffer by giving the Paste or Include Buffer command, respectively.N The first command copies the paste buffer into the current buffer at theI current cursor position, the second command does this for a Q-register.iN If you type the keypad 9 key or the Select key when a select range isN active, the select range is deactivated and the bell sounds. Thus, toN revoke a selection, type the keypad 9 key or the Select key until the bellA rings. The select range is always deactivated when it is used.iN Searching text implicitly creates a select range if no select range isN currently active. The text found as the result of a search for a string orN a pattern is temporarily selected and can be manipulated by the commandsN operating on select ranges, if these commands are given directly after theN Search command. Any cursor movement revokes this temporary selection. If aN select range is active at the time the Search command is given, no temporaryN selection occurs; instead, the select range extends from the selectedN position to the cursor position after the search, and it will grow or shrink with further cursor movements.A Rectangular RegionsiN A rectangular region is a block of text delimited by horizontal and verticalN borders on which various operations can be performed. If the two oppositeN corners of the rectangle occupy the same line or column, the rectangleN consists of the part of this line or column, respectively, between these twoN positions. Otherwise, the rectangle consists of all text left to the rightN corner but right to the left corner, and below the upper corner but aboveN the lower corner; the rectangle includes the lines and columns of theseN corners. If the text inside the rectangle contains Tab characters, they areN replaced with blanks using the current tabulator setting, such that alwaysN the correct rectangle is selected, regardless of its position relative to tab stops.! To create a rectangular region:,N 1. Move the cursor to any corner of the rectangle you wish to define as aN rectangular region. It does not matter whether you start with theN upper left and finish with the lower right corner, or vice versa, or> whether you use the other two corners of the rectangle.: 2. Press the keypad 9 or the Select key. eN VTEDIT V4.5 Page 27N 3. Move   R VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1s(the cursor to the opposite corner of the rectangle you wish to& define as a rectangular region.N You can then press the key to invoke the function to be applied to theN rectangular region. Functions operating on select ranges are marked with a! rectangle (a) in this manual.sN Cutting and pasting of rectangular regions is done in the following way:N For cutting or deleting, the text inside the rectangle is removed, and, ifN the current mode is Overstrike, replaced with blanks; if the current mode isN Insert, text to the right of the rectangle is shifted to the left. ForN pasting, the contents of the Q-register or the paste buffer are inserted asN a rectangle, i.e. they are inserted or written over old text, according toN the current mode (Insert or Overstrike) in a rectangle of the same size,N whose upper left corner is the current cursor position. This mode ofN pasting is selected whenever a rectangular region has been cut or saved to< the Q-register or paste buffer that you want to paste now.N If you type the keypad 9 key or the Select key when aN rectangular region is active, the rectangular region is deactivated and theN bell sounds. Thus, to revoke a selection, type the keypad 9 key orN the Select key until the bell rings. The rectangular region is% always deactivated when it is used. N NOTE: Lines containing Tab characters have these characters expanded toN spaces, using the current Tab setting, whenever a rectangular region isN saved or cut from them or pasted into them. After cutting or pasting, theV spaces in these lines are not compressed to Tabs again; if you wish toN retain Tabs in these lines, you must apply the Compress Spaces command to these lines.G The Active Range N Several commands employ the concept of an active range to work upon. The/ active range is defined in the following way: H 1. If a select range is active, the active range is just that range.N 2. Otherwise, if a numeric argument has been applied to the command, theN active range consists of the next n lines from the current cursorN position, where n is the value of that numeric argument. If n isN positive, lines are counted towards the end of the buffer, otherwise towards the beginning.nN 3. If there is neither a select range nor a numeric argument, the activeN line consists of all text in the current line right to and includingN the cursor. The active range includes the carriage return/line feed terminating the line.V Functions operating on the active ranges are marked with an asterisk (*) asP well as with a diamond (`) in this manual. Note that especially the Save,7 Cut, and Remove commands operate on the active range.  eN VTEDIT V4.5 Page 28J 3.4 Text Search and Replacement? Search PatternsN VTEDIT allows you to specify patterns as argument to the Search command. ByN specifying a pattern as a search argument, you can search for more generalN text structures than by specifying a string as search argument. There areB several types of patterns that can be used for general searches:N - Typing a carriage return in a search argument allows to search forN texts spanning line boundaries, or for texts at the start or end of a line.N - Including match control characters in a search argument allows toN specify placeholders for one or more characters in a search argument.V Match control characters are flagged by the characters ^E (caretN followed by an uppercase or lowercase E); the character(s) followingN the flag indicate the type of match requested for that position in theG search argument. The following types of match can be specified:cN o Selection of certain character classes via the character following the ^E:" + letters (A)6 + non-alphanumeric characters (B). + symbol constituents (C)! + digits (D)oM + any one of the characters in Q-register q (Gq)e: + line terminators (L)B + supplemental (multinational) characters (N)2 + alphanumeric characters (R)B + lowercase letters (V) (causes exact search)B + uppercase letters (W) (causes exact search)( + any character (X)I + any one of a specified set of characters ([x...y]) & o Selection of given strings:^ + the next character x, even if it is a caret (Ex; specifying- ^EE^E allows to search for ^E)nC + the text stored in Q-register q (Qq)t: + any sequence of blanks and Tabs (S)N + the character whose ASCII value is stored in the numeric part3 of Q-register q (Uq)QN o Selection according to a VAXTPU pattern: this type of pattern mustV be enclosed in ^EP match control constructs; using this featureM allows you to use the VAXTPU pattern building mechanisms directly.tN - A search pattern may be broken into several parts, which are separatedV by the match control construct ^ET. VTEDIT returns, if the search isN successful, a range containing all these parts in the correct sequence.N Between the individual parts, there may be arbitrary amounts of text,@ and the individual parts may be found on different lines.V - The match control construct ^EM allows to specify multiple occurencesN of a certain character or of characters of a certain class. For^ instance, ^EMa would find any sequence of a's, and ^EM^ED would find any sequence of digits. tN VTEDIT V4.5 Page 29V - The match control construct ^N allows to negate a character or a classV of characters. For instance, ^Na would find the next characterI different from a, and ^N^ED would find the next non-digit.iN In addition to using patterns, searches may be performed in a case-sensitiveN or a case-insensitive way; in a case-insensitive search, uppercase andN lowercase characters are treated as equivalent. Case-senstivity of searchesN is controlled via a command and remains the same for all subsequentN searches. Initially, searches are case-insensitive. If the search argumentN contains a case-sensitive pattern (^EV and/or ^EW), searches are always case-sensitive.g? Text ReplacementrL To replace one or more pieces of text with a new text, proceed as follows:> 1. Search the first occurrence of the text to be replaced.N 2. Without moving the cursor, press the Enter or the Insert HereN key, and enter the text to be used as the replacement. The firstN occurrence of the old tex|c VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1t (i.e. the occurrence just found) will be" replaced with the new text.N 3. The further operations depend on whether you want to replace allN remaining occurrences automatically, or whether you wish to control replacements manually:sN - If you wish to replace all remaining occurrences in the text, press$ the PF4 keypad key.N - If you wish to replace all occurrences in a given range, select? that range, and then press the PF4 keypad key.eN - If you wish to replace the next n occurrences, enter the ReplaceN command with the numeric argument n; that is, press , enterN the number n using the main keyboard digit keys, and then press the PF4 keypad key.N - If you wish to view the replacements, press the PF4 keypad keyN repeatedly to search and replace the next occurrences one at a time.N - If you wish to control individually whether to replace or not,N search the next occurrence by pressing the keypad period (.). IfN you decide to replace this occurrence, do so by pressing the keypadN comma (,) without intervening cursor movements; otherwise, continueN searching for more occurrences. Repeat this procedure until youN have made all changes or until you decide to replace all remaining occurrences at once.oN After replacement in a range, the cursor will be positioned to the end ofN that range. If no range has been selected, the following rules apply: IfN you selected preservation of the cursor position on failing searches, theN cursor will be positioned after the last replaced string, when automaticN replacement is finished. Otherwise, the cursor will be at the start of theH current text buffer, if no more strings to be replaced could be found. nN VTEDIT V4.5 Page 300 3.5 Numeric ArgumentsN Many VTEDIT commands accept, and some require a numeric argument, which mayN be a repeat count or have some special meaning described with the command.N Functions accepting an optional numeric argument are marked with an asteriskV (*) in this manual, and functions requiring a mandatory numeric argument are^ marked with a hash symbol (#). The numeric argument must be entered beforeN giving the command itself. The rules for entering numeric arguments are as follows:V Simple numeric arguments consist of (displayed as '' in the commandN descriptions), an optional minus sign, and a digit string which is alwaysN interpreted in decimal. None of the keystrokes of a simple numeric argument echo on the terminal.N More advanced numeric arguments can be expressions using standard arithmeticN operators. These numeric arguments also start with , an optionalN minus sign, and, then a digit, or with followed by a caret (^). IfN the first non-digit typed, or the first character typed after the caret isN one of the valid operators listed below, expression mode is entered. A line of the form:? Numeric argument: Radix: x, Value: arg1 op arg2 N is displayed in the next to last line of the screen. The initial radix isI 10, arg1 will be the initial digit string, and op will be the operator. N Further digit string typing will fill in arg2 until a non-digit is typed.N If it is another valid operator, the current arg1 op arg2 expression will beN evaluated, the result will replace arg1, arg2 will be set to zero, and op will be the typed operator.oN If it is a radix change command, the radix is immediately changed. NoN evaluation of the expression occurs. Further digits typed will beN interpreted according to the new current radix. The radix change is localG to the current numeric expression; it is not subsequently remembered. N If it is an arg2 stand-in, the current arg2 is replaced by the specified value.N If it is DELETE, the current arg2 is reset to zero. If it is Ctrl/U orI Ctrl/Z, the entire expression is abandoned and the display is fixed up.hN Else it is assumed to be an editing command. The current arg1 op arg2 willK be evaluated and the result becomes the numeric argument to that command.r- The valid numeric expression operators are:t! + Additioni$ - Subtraction' * Multiplicationi! / Divisiont6 = Evaluate current arg1 op arg24 ^- Change sign of current arg2 )N VTEDIT V4.5 Page 31& The valid radix change commands are:: ^D Change radix to decimal (base 10)7 ^O Change radix to octal (base 8)m> ^X Change radix to hexidecimal (base 16) The valid arg2 stand-ins are:)7 ^- The inverse (negative) of arg2 , ^. Current line numberI ^Z Current total number of lines in the text buffercV ^L The distance to the end of the current line (countedN positive) if arg2 is positive, otherwise to the start of the0 current line (counted negative)C ^L The distance to the arg2'th line separatoro3 ^^x The value of character 'x'ef ^Qq The contents of the numeric part of Q-register q; q may be4 any (uppercase or lowercase) letterV ^A The value of the character at a distance of arg2 to the cursoreV ^\ The value of the number in the text buffer, immediatelyA following the cursor, or 0 if there is no numberPP ^Ctrl/\ The same, but deleting this number from the text buffer 3.6 PromptingN Commands needing textual arguments (like the search command, for instance)N prompt for these arguments. The prompt is displayed in the next to lastN line of the screen. Most of these commands allow you to re-use the promptedN text from a previous invocation of the same command and possibly edit it.N If you want to re-use your previous text argument, type the up-arrow key;N your previous text argument will then be inserted at the current cursor" position in the prompted string.N When VTEDIT prompts for LSE commands, command recall allows you to selectN any of the last up to 100 LSE commands by using the up and down arrow keys.N Using one of these keys erases the current command line and replaces it by one of the previous commands. N Further editing and/or entry is now done in the normal way. The textN appears on the screen as you type. You can edit your typing, using most ofN the editing functions of VTEDIT, with the exception of commands that promptN themselves or select a different window or buffer. You can use the save,N cut and paste functions to copy or move text strings to or from the promptedN string, but inserting a rectangular region from the paste buffer or a Q-register is disabled.r sN VTEDIT V4.5  VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1J[ Page 32N With some commands, typing the Return key allows the entry of multi-lineN text arguments; in this case, the prompt window is expanded by an additional line, up to 6 lines.N When you are ready to execute the command causing the prompting, type theN keypad period (.) or, on VT200 terminals, the Do key. With commands notN allowing multi-line text arguments, typing the Return key will start theN command, too. If you wish to abandon prompting and abort the prompting( command, you can type Ctrl/Z to do so.N In any case, VTEDIT now cleans up the screen. If prompting has not beenN aborted by typing Ctrl/Z, VTEDIT saves the text argument if it is to be: re-used, and executes the command causing the prompting.N When in LSE command input mode, which is entered by typing the Ctrl/? keyN if VTEDIT is used with the Language-Sensitive Editor, commands are executedN as soon as the Return key is typed. The prompt will re-appear, however, toN allow you to enter additional commands, unless the last command was empty,8 or the command "Continue", or an abbreviation thereof.! 3.7 Formatters A General InformationN Formatters are extensions of VTEDIT that format texts automatically in aN context dependent way while these texts are being entered. The individualN actions performed by a formatter are determined by the type of the formatterN which is, in turn, determined by the file type of the current text buffer.N The following formatter types are automatically selected according to theseN file types, and stay attached to a buffer, once they are selected explicitly: C File Type O} Formatter NameeH qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqH .C .CLD .ENV .H .PAS .TPU O} Structured Language: .CBL .COB .LIB O} Cobol< .COD .DES .DUM .EXT .FOR .FTN .INC .INT O} Fortran8 .COM .MMS .OPT O} DCL= .DOC .HLP O} DocumenttC .DTR .LSE .PDM .PEL O} Query Languageh: .MAC .MAR .PPA O} Macro9 .RND .RNH .RNO .RNT .RNX .TXT O} Text N Each one of these formatters performs one or more of the following actions during text entry:0 - case conversion / automatic case control, - automatic indentation,( - manual correction of indentation, - automatic word wrap,h$ - automatic line justification,N - optional automatic insertion of closing parentheses and string delimiters,N - optional highlighting of the matching opening parenthesis or string delimiter, respectively.t eN VTEDIT V4.5 Page 33N The following sections describe each of these actions in more detail andE specify which actions are available from the individual formatters.(? Case ConversionlN Characters can be entered in either upper or lower case. However, allN characters considered being part of a statement are converted to upper caseN except for characters in literals: character strings surrounded by (contextN dependent) string delimiters. Characters in comments are also notN converted. Comments are lines with special, context dependent characters inN the first column or all characters appearing after a (context dependent)6 comment delimiter that does not appear in a literal.D Automatic case control is available from the following formatters:f - Cobol: with quote (") as string delimiter, and exclamation mark (!) asV comment delimiter; lines having an asterisk (*) in column 7 are treated as comments, too;^ - Fortran: with apostrophe (') as string delimiter, and exclamation markV (!) as comment delimiter; lines beginning with (uppercase or lowercase)n C or D, with asterisk (*) or exclamation mark (!) are treated asV comments, too (unless their second character is a semicolon (;) or% exclamation mark (!));dn - DCL and Query Language: with quote (") as string delimiter, and9 exclamation mark (!) as comment delimiter;ef - Macro: with apostrophe (') as string delimiter, and semicolon (;) as comment delimiter.B Automatic IndentationN Formatters with the automatic indentation feature allow to indent lines toN an appropriate column, without any need to insert spaces and/or Tabs, asN these characters are inserted by the formatter whenever a new line is opened. N Indentation is controlled by the following indentation control characters: ".", "=", "<", ">", "*", "+", and "-". They control the amount ofN indentation and, for Fortran, the starting of automatic continuation lines.N The indentation control characters are only recognized when they are typedN at the start of a line, i.e. normally only before the first non-blankN character. Only Tabs, spaces, (and, for Fortran, statement numbers andN comment characters; for Cobol, comment and continuation indicators) may beN in front of the current cursor position. When indentation takes place, the) cursor is placed after the indentation.iV - The equal sign, "=", does not perform any indentation. It simply; resets the current indentation value to the minimum.sV - The period, ".", sets the indentation of the current line to theN current indentation value. It is used primarily to reset theN indentation of a line to the current indentation value. A line beingC entered will automatically be indented to the current value.e N VTEDIT V4.5 Page 34V - The greater than sign, ">", increments the current indentation valueB and sets the indentation of the current line to that value.V - The less than sign, "<", decrements the current indentation value and> sets the indentation of the current line to that value.V - The asterisk, "*", is the automatic continuation line character for theN Fortran formatter. It creates the beginning of a continuation line byV inserting 5 spaces, an "*" and a Tab for at the beginning of theN current line, followed by the appropriate number of Tabs and spaces to/ reach the current indentation value + 4.nN For Cobol, the asterisk indicates a comment line. The asterisk isN inserted in column 7, and the line is indented to the current indentation value.hV - The plus sign, "+", sets, for the Query Language formatter only, theN value for indentation increment and decrement to 2. This command doesN not perform any indentation; it simply presets a value for further$ indentation control commands.V - The minus sign, "[,'u VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;11m-", sets, for the Query Language formatter only, theN value for indentation increment and decrement to 3. This command doesN not perform any indentation; it simply presets a value for further$ indentation control commands.N For Cobol, the minus sign indicates a continuation line. The minusN sign is inserted in column 7, and the line is indented to the current indentation value.i9 The following formatters provide automatic indentation: V - Structured Language: Indentation may be changed in steps of 4.V - Cobol: Indentation may be changed in steps of 4. Because of the CobolN syntax, the minimum value for indentation of statements is 7. If theV first character entered is an asterisk, "*", indicating a comment line,V or a minus sign, "-", indicating a continuation line, it is inserted inN column 7, and the rest of the line is indented to the current indentation value.gV - Fortran: Indentation may be changed in steps of 2. Because of theN Fortran syntax, the minimum value for indentation of statements is 6,+ and the following rules are applied:,f All lines not starting with a C, a D, an asterisk (*), or anV exclamation mark (!), are indented automatically. If a line startsN with one of these characters, indentation does not affect thisN character, and it will stay in column 1. In any case, indentation is at least 6 characters.a^ The C or D in column 1 must be followed by a non-alphanumeric characterN or it is assumed to be part of a statement, and the whole line,^ including the C or D, is indented. (For further explanation of D4 lines, see the VAX FORTRAN Reference Manual.) fN VTEDIT V4.5 Page 35V If the second character in a comment line is a semicolon (;), the lineN is regarded as a control statement for a preprocessor, and not indentedN at all. If this second character of a comment line is an exclamationN mark, the line is regarded as code commented out, and indented to theN current indentation value + 2 to allow for easy re-activation of the code.N If a number appears in column 1, it is assumed to be part of aN statement number and is not indented. The first non-numeric character> is assumed to be part of the statement and is indented.C - Document: Indentation may be changed in steps of 4.D^ - Query Language: Indentation may be changed in steps of 2 or 3,N according to the last selection via the indentation control characters1 "+" and "-"; default is 2.eI Automatic Word WrapcN Whenever a line is entered that is longer than the current line width, it isN broken up into suitable pieces that fit into lines within that length. ThisN is done by replacing a blank by newline. The blank replaced is normally theN rightmost blank still fitting into the line, but replacing may be done inN some cases when entering the next blank. The algorithm chooses the momentN to replace a blank such that when entering text without any newlines, linesN will be filled nearly up to the current line width, but without exceeding this with.^ Automatic word wrap is provided by the Document and Text formatters, and, ifN VTEDIT uses the Language-Sensitive Editor, automatic word wrap may beN selected as a property of the current language, for instance via the LSE command MODIFY LANGUAGE /WRAP.M Automatic Line JustificationiN Whenever a line is entered that is longer than the current line width, it isN broken up into suitable pieces that fit into lines within that length. ThisN is done by replacing a blank by newline. The blank replaced is normally theN rightmost blank still fitting into the line, but replacing is in most casesN done when entering the next blank. The line just entered is then filled toN the current right margin by inserting enough blanks distributed over theN white spaces as evenly as possible. The result is a text in which all linesN are filled and justified in roughly the same way as if the text had been produced by RUNOFF.(N The Fill Paragraph command will not only fill the lines of the selectedN region, but, if automatic justification is active, will also justify theN filled lines, i.e. insert enough blanks into each line (except the last one)N to let it extend up to the right margin. The effect is to create a straight( right margin for the reformatted text.M Automatic line justification is provided by the Document formatter.a iN VTEDIT V4.5 Page 36O Automatic Parenthesis InsertionlN If you are using a formatter supporting automatic closing parentheses, andN if this feature has been enabled, VTEDIT will automatically insert aN matching closing parenthesis whenever an opening parenthesis is typed. TheN cursor will be positioned between the two parentheses to allow you to insertN the parenthesised text. Also, if a string delimiter is typed, a secondN string delimiter is inserted after the cursor, such that strings opened by/ the first delimiter are automatically closed. N The following formatters support automatic closing parentheses and string delimiters:in - Structured Language: The characters ( [ { and } ] ) are regarded asP parentheses, the characters " and ' as string delimiters.f - Cobol: The characters ( and ) are regarded as parentheses, the/ character " as string delimiter.tf - DCL: The characters ( [ < and > ] ) are regarded as parentheses, the/ character " as string delimiter. f - Fortran: The characters ( and ) are regarded as parentheses, the/ character ' as string delimiter.tf - Macro: The characters ( [ < and > ] ) are regarded as parentheses, the/ character ' as string delimiter.en - Query Language: The characters ( [ and ] ) are regarded as@ parentheses, the character " as string delimiter.N Automatic closing parentheses are disabled by default; to use this feature,N you must explicitly enable them via the Ctrl/R command. AutomaticN parenthesis insertion is suppressed for text parts that VTEDIT recognizes as< comments or string literals enclosed in string delimiters.C Parenthesis HighlightinguN If you are using a formatter supporting parenthesis highlighting, and ifN this feature has been enabled, VTEDIT will highlight the matching openingN parenthesis in the message window whenever a closing parenthesis is typed.N This feature helps greatly in balancing parentheses in complex expressionsN) VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1+N and program statements. If VTEDIT does not find a matching openingN parenthesis within the current line or the previous 9 lines, it issues a warning message.N Also, VTEDIT will highlight the string delimiter starting the currentN literal string when the closing delimiter for that string is typed. ThatN delimiter is found by searching backward in the current line, skipping allN double string delimiters, and, if a single string delimiter is found, it is highlighted.N The following formatters support parenthesis highlighting and display of the matching string delimiter: N VTEDIT V4.5 Page 37n - Structured Language: The characters ( [ { and } ] ) are regarded asP parentheses, the characters " and ' as string delimiters.f - Cobol: The characters ( and ) are regarded as parentheses, the/ character " as string delimiter.mf - DCL: The characters ( [ < and > ] ) are regarded as parentheses, the/ character " as string delimiter. f - Fortran: The characters ( and ) are regarded as parentheses, the/ character ' as string delimiter.of - Macro: The characters ( [ < and > ] ) are regarded as parentheses, the/ character ' as string delimiter.en - Query Language: The characters ( [ and ] ) are regarded as@ parentheses, the character " as string delimiter.N Parenthesis highlighting is enabled by default; you may choose to disable itN via the Ctrl/F command. Parenthesis highlighting is suppressed forN text parts that VTEDIT recognizes as comments or string literals enclosed in string delimiters.8 3.8 Language-Sensitive EditorN The Language-Sensitive Editor VAX LSE is a multi-language advanced textN editor designed specifically for software development; it is available as aN layered product for VMS. LSE works with VMS languages and other VMSN productivity tools to enhance program development. If VAX LSE is installedN on your system, VTEDIT may be installed with LSE support, i.e. with accessN to the specific features of the Language-Sensitive Editor. In this case,N VTEDIT provides a set of additional functions that are not available withoutN VAX LSE, or if VTEDIT is called with the qualifier /NOLSE, explicitly disabling these functions.3 OverviewiN LSE allows you to control your editing environment and use LSE's knowledgeN of specific languages to develop programs quickly and accurately. LSE" provides the following features:n - Error Correction and Review: This feature allows you to compile,N review, and correct compilation errors within a single editing session.N LSE provides an interface to the supported VMS language compilers soN that you can perform compilations without leaving LSE. The compilersN provide LSE with compilation diagnostics in a way that allows you toN review compilation errors in one editing window while displaying the( related source in another window.^ - Language-Specific Templates: Templates permit fast and efficientN source code entry. LSE accesses a collection of formatted languageN constructs, called templates, that provide keywords, punctuation, and5 placeholders, for each supported VMS language.i oN VTEDIT V4.5 Page 38N LSE allows you to modify existing templates or define your own language or text templates. f - Integrated Programming Environment: LSE is integrated into the VMSN development environment. It is invoked using the DIGITAL CommandN Language (DCL). If VTEDIT is installed with support for the Language-N Sensitive Editor, LSE features are directly invoked from VTEDIT. LSEN works with supported VMS languages, SCA, DEC/CMS (CMS), the VMSN Debugger (debugger), and the VAX Performance and Coverage Analyzer toN provide a highly interactive environment. This environment enables youN to create and edit code, to view multiple source modules, to compileN programs, and to review and correct compile-time errors in one editing session.lN LSE can be invoked directly from the debugger to correct source codeN problems found during debugging sessions. In addition, LSE can beN invoked from the VAX Performance and Coverage Analyzer to correct< performance problems found during analyzing sessions.f - Online Help Facility: LSE provides online Help for information onN unfamiliar language constructs and routines. Help is also provided forN all of LSE's commands and key definitions, integrated in VTEDIT's Help facility.f - Source Code Analysis: LSE's integration with SCA allows you to searchN for specific information contained in your source files. SCA is aN source code cross-reference and static analysis tool that helpsN programmers familiarize themselves with complex systems. SCA accessesN source information generated by supported VMS language compilers.N Thus, SCA allows you to move through this information and gain accessN to related source files as necessary. You can find out how a programN symbol was declared, where a particular routine is called, or what% module needs to be recompiled. f - Source Code Management: An interface with DEC/CMS simplifies theN functions of program development. All CMS commands can be issuedN within VTEDIT. LSE can be directed to fetch files directly from a CMSN library when you issue standard VTEDIT or LSE file manipulationN commands. In addition, LSE has commands Reserve, Replace and UnreserveD which perform the corresponding CMS operation on LSE buffers.~ - System Services and Run-Time Library Templates: LSE provides packagesN for VMS Systems Services and for the LIB$, SMG$, and STR$ Run-TimeN Library routines. In addition, LSE allows you to define templates for( packages of subroutine libraries.3 ConceptstN The file type field of the name of a buffer determines the default languageN for that buffer. VMS file types (such as, .C or .FOR) specify the defaultN language; however, if you omit the file type, or specify a file type unknownN to VTEDIT, no language is assumed, but a language may be set explicitly via the Set Language command.aN The Language-Sensitive Editor, with its knowledge of program structures,N serves both experienced and inexperienced programmers as a time-saving toolN for program development. To achieve this goal, the editor uses the concepts pN VTEDIT V4.5 Page 39N ǹ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1of tokens and placeholders as facilities for defining language-specificN elements for source code entry, and compiler interfaces to support theN compilation of the code from within the editor. (For a listing of theN language definitions available with VTEDIT, type 'Languages' to the prompt from the Show command.)gN VTEDIT with LSE support works within the VAX/VMS environment in conjunctionN with the VAX language compilers, the VAX Multi-Language Symbolic Debugger,& and the entire VAX/VMS set of tools.: You can use VTEDIT with LSE support to do the following:N - Construct syntactically correct programs in any of the supportedN languages or in a language for which you provide a definition to VTEDIT.N - Call the appropriate compiler, while in the editing session, to compile( the program you have constructed.N - Edit your program, or any text file, using standard text editor commands.N - Tailor your editing environment, by providing definitions of your ownN language or other textual templates for VTEDIT in the same manner used) to define the supported languages. N To use the Language-Sensitive Editor from VTEDIT to create or edit sourceN code requires an understanding of the concepts of tokens and placeholders.N Tokens and placeholders are language elements that have been predefined forN each of the supported languages. By successively expanding these elementsL into templates of language constructs you can construct complete programs.N Tokens are typically reserved words or function names that you expand orN type into the editing buffer and expand to provide templates for$ corresponding language constructs.N Placeholders are elements inserted into the editing buffer as parts ofN templates, and represent locations in the source code for the entry ofN program text. In many cases, however, an expanded placeholder provides a template for additional text.mN Finally, aliases are abbreviated reference names for long identifiers thatN have been entered in the source code. To define an alias, for an identifierN on which the cursor is currently located, press the Ctrl/A key andN type the abbreviation at the prompt. Whenever the reference name is typed; and expanded, the original identifier string will appear.I Entering Source Code[N To support rapid source code development and decrease the occurrence ofN syntactic errors, the Language-Sensitive Editor provides facilities forN defining language-specific tokens and placeholders. Tokens and placeholdersN allow for the insertion of source code, within language constructs, byN expanding the name a user types and by further expanding tokens and$ placeholders on syntactic markers. LN VTEDIT V4.5 Page 40N On-line help for language features is also provided that is keyed to the# names of tokens and placeholders. N If you are experimenting with a new file associated with one of the? supported languages, the following procedures may be helpful:uN - Once you have invoked VTEDIT, and the initial string appears on theN screen, press the Expand Token key (F13 or Linefeed) and the structureN of a program associated with your language will appear. On expandingN the initial string (or any other token or placeholder), one of the following will occur:N o Text will appear to aid you in supplying a value. (This is a! terminal placeholder.)gN o The placeholder will be replaced with a template consisting of moreC language elements. (This is a nonterminal placeholder.)gN o A menu will appear, providing you with options that can be expanded9 into templates. (This is a menu placeholder.)eN Each option in a menu is either a token, a placeholder, or aN string. Selecting a token or a placeholder causes the expansion ofN the option to appear in the user's buffer, while choosing a stringN causes the string to appear. When this has occurred, the menu isN removed from the screen. When a menu first appears on the screen, you can: N + Move through the menu by pressing the up or down arrow keys.N (This causes the indicator to move from one option to the next.)eN + Select an option from the menu by pressing the Enter or theN Return key, or the Expand Token key (F13 or Linefeed) again.1 (The current option is indicated.)lD + Press the H or Help key to get additional help.N + Press the space bar to cause the menu to disappear (this has noN effect on the current text buffer). Pressing any other keyN also makes the menu disappear, however, the key's function is performed.rN For any of these three cases, you simply type the desired text over the placeholder.eN - Using the Next Placeholder key (")" or Next Screen), moveN from one placeholder to the next, expanding and typing in text as youN go. If you need help on a placeholder (or token), press the HelpJ Language key (?) while you are positioned on the placeholder.N - For those optional placeholders you do not want, press the Erase. Placeholder key (# or F17).N If you wish to get more general information about VTEDIT and/or the. Language-Sensitive Editor, do the following: 'N VTEDIT V4.5 Page 41N - Press the Help key (H or Help) to see the keypad diagram or get. information about commands and/or keys.N - Press the LSE Command key (Do or Ctrl/?) to evoke the LSE prompt,N and type the Show Key command to obtain a listing of the keys and their descriptions.N - Type the Help command at the LSE prompt to see a list of the Language-8 Sensitive Editor commands and their explanations.N - Type 'Placeholders' or 'Tokens' at the prompt from the Show commandN (F12 or Backspace) to examine a list of all the predefined, placeholders or tokens, respectively.N To edit an existing file, in one of the supported languages, you make use ofN the editor's language knowledge by entering tokens. Since tokens exist forN many reserved words, simply type the token name and press the Expand TokenN key (F13 or Linefeed). For example, typing IF followed by a Linefeed causes: a template for an IF construct to appear on your screen.4 LanguagesN VTEDIT with LSE support allows you to use the Language-Senstive Editor'sN knowledge of programming languages to develop software. It also allows youN to design your own languages and customize the environment according to your own programming style.N When you invoke VTEDIT with LSE support, the file type you use determinesN the default language (for example, .C and .H for C, or .FOR for FORTRAN);N however, if a file type is omitted, or a type is specified that is notN associ F VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1hated with one of the supported languages, no language will be assumed.N The following language are automatically selected according to these fileJ types, and stay attached to a buffer, once they are selected explicitly:= File Type O} Languagee? qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqo6 .C .H O} C: .CBL .COB .LIB O} Cobol8 .COM O} DCL? .DTR O} Datatrieves< .COD .DES .DUM .EXT .FOR .FTN .INC .INT O} Fortran9 .HLP O} Helpt; .ENV .PAS O} Pascalw; .RND .RNH .RNO .RNT .RNX .TXT O} Runoff ; .TPU O} VAXTPUVN To define your own language templates, or add tokens and placeholders to a: supported language, adhere to the following suggestions:I - Use the Define Language LSE command and its qualifiers to specify: 7 o The name of your language (Define Language). ' o The file type (/FILE_TYPES). N o The required and optional placeholder delimiters (/PLACEHOLDER_J DELIMITERS = OPTIONAL, OPTIONAL_LIST, REQUIRED, REQUIRED_LIST). tN VTEDIT V4.5 Page 42N o The identifier characters to be used in token and alias names# (/IDENTIFER_CHARACTERS). @ o The punctuation characters (/PUNCTUATION_CHARACTERS).K - Use the Define Token and Define Placeholder LSE commands to specify:e/ o The associated language (/LANGUAGE).eN o The language elements, such as parameters, statements, and& assignments (/DESCRIPTION).L o The type of placeholder: terminal, nonterminal, or menu (/TYPE).N - Use the Save Environment LSE command to write your language to a file& for later editing and updating.N You may wish to associate a formatter with the language you defined. For8 information on this subject, see sections 5.4 and 5.5.J Compilation and ReviewN Language-specific compiler interfaces support the compilation of source codeN from within VTEDIT, and also provide diagnostic records for error review andN automatic positioning at error sites. When writing your program, you canN use the Compile and subsequent Review commands to check your code for syntax: and semantic errors without exiting the editing session.N The Compile command (F20 or 1Ctrl/Z) compiles the current buffer andN writes diagnostic information to a file. VTEDIT supports each compiler'sN command qualifiers and also applies any qualifiers that have been pre-N defined via the DCL-symbol 'language'_FLAGS, where 'language' is the name ofN the language associated with the current buffer, e.g. Fortran or Cobol.N VTEDIT forms a DCL command line by appending the file spec of the currentN buffer to the command-string specified as the COMPILE command for theN current language. If the associated language has diagnostic capabilities,N /DIAGNOSTICS is appended to the DCL command formed. VTEDIT then spawns aN subprocess to execute the command line. When the subprocess completes, a- message is displayed in the message window. N The Review command (F14 or =) selects and displays a set ofN diagnostic messages that resulted from a compilation. The compilation must2 have been done using the /DIAGNOSTICS qualifier.N The screen will split into two windows. The top window is buffer $ReviewN which displays errors and highlights the line where the error occurred. TheN bottom window is the source buffer. You then type the Next Step keyN (F20 or ]) to move to the next error in buffer $Review. To moveN to the source buffer and the region containing the error, type the GotoN Source key (F18 or *). Use the arrow keys to move within theN source buffer. To return to reviewing errors, type either the Next Step or Previous Step keys.rN Other than highlighting an area in the source buffer, for certain messages,N the Language-Sensitive Editor can modify the source code according to theN correction indicated by the message. The area in the source buffer whereN this error occurred is highlighted. Once you locate the source code, theN correction appears on the line where the error occurred in the source; buffer. At the bottom of the screen, VTEDIT prompts you:t uN VTEDIT V4.5 Page 43. Keep the indicated correction [Y or N]?N If you wish to keep the supplied correction, enter Y. If you wish to keepN the original code unaltered, enter N. There is no default. You must enter either Y or N.N When in buffer $Review, to return to one window containing the source% buffer, type the F9 or D key.oI Source Code Analysis N The VAX Source Code Analyzer is a multi-language, interactive, cross-N reference and static analysis tool. It is tightly coupled with LSE to6 provide an advanced program development environment.N Using VTEDIT with LSE and SCA, you can display cross-reference informationN that includes identifier names, their declaration class, the location of theN occurrences of the identifier in the source code for your entire program,K and the types of occurrences (e.g. call, read, write, declaration, etc.).aN You can select an occurrence in the cross-reference display and press a keyN to access and display the location in the source file that corresponds to! the selected symbol occurrence. N Using LSE with SCA, you can also view procedure call trees and check for- consistency between calls and declarations..N The following steps describe how to create and select SCA libraries for querying:eN - Generate analysis data with your compiler using the /ANALYSIS_DATAF qualifier on your command line. The command line has the form:; $ Language/ANALYSIS_DATA[/...] source-file[,...] N The /ANALYSIS_DATA qualifier requests that the specified compilerN generate an output file of source information having a default file type of .ANA.N - Create a directory for your SCA library with the DCL command as follows:a2 $ CREATE/DIRECTORY directory-spec[,...]C Only one SCA library can be created in a specific directory. 9 - Create an SCA library in the directory as follows:tD $ SCA CREATE LIBRARY [/qualifier...] directory-spec[,...]N After initialization, the library becomes the primary library (first in the list) by default.@ - Load the analysis data files (.ANA) into the SCA library:5 $ SCA LOAD [/qualifier...] file-spec[,...] hN VTEDIT V4.5 Page 44N You can load one or more files of compiler-generated source analysisN data (.ANA) into a current SCA library by using the LOAD command. IfN more than one file (.ANA) is to be loaded, you may use wildcard file, specifications to identify wc6 VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1dthe files.D - Invoke SCA and select and activate the library (Set Library):A $ SCA SET LIBRARY [/qualifier...] directory-spec[,...]yN You specify an SCA library for use during an SCA query session. If a8 libraries list exists, it is replaced by default.N The following examples show how SCA commands can be used to queryN information in an SCA library. These commands may be entered to the LSE command prompt from VTEDIT:eN - You can selectively display information about modules in the currentK SCA library with the Show Module command. The command has the form:n? SHOW MODULE [/qualifier...] [module-name-expr[,...]]eN Complete (/FULL) or partial (/BRIEF) information about all (/ALL)N modules, or selected (/VISIBLE or /HIDDEN) modules, can be displayed.N The terms "visible" and "hidden" refer to the results of the moduleI selection process that occur when multiple libraries are accessed. N - You can obtain cross-reference information about program symbols andI source files by using the Find command. The command has the form: 5 FIND [/qualifier...] name-expression[,...] N - You can selectively display call information related to specifiedN routines in the current SCA library with the View Call_Tree command. The command has the form:A VIEW CALL_TREE [/qualifier...] routine-name-expr[,...]eN In addition to entering SCA commands to VTEDIT's LSE command prompt,N standalone SCA commands can be placed in DCL procedures for processing asN batch jobs. Such procedures would be appropriate for the creation andN maintenance of an SCA library for a very large-scale software system. Also,N procedures containing appropriate standalone commands can be submitted asN batch jobs when lengthy reports are expected (such as those derived from) View Call_Tree or Show Module queries). J Source Code ManagementN VTEDIT provides for invoking DEC/CMS from the LSE command line using the CMSN command. Also, when VTEDIT must access a file from the directory that isN the user's CMS library, VTEDIT will automatically use CMS to Fetch the file.N LSE also has a Reserve command to reserve the element in your current CMSN library that has the same name and type as the file associated with yourN current buffer. The Unreserve and Replace commands also provide theA corresonding CMS operation for the file in your current buffer.h eN VTEDIT V4.5 Page 45) 4 EDITING TEXTo2 4.1 General InformationN In addition to allowing you to enter text, the Video Terminal Editor has aN large repertoire of powerful editing commands. You request an editingN function by using the auxiliary keypad on the terminal or by typing controlN characters or control sequences on the standard keyboard. Some functions# require you to type several keys. N The following sections describe the editing functions available in VTEDIT.N In most cases, an editing function is equivalent to a VAXTPU procedure call;N the name of the procedure, stripped of its initial "vte_" and with "_"N replaced by space - is shown after the description as 'command name'. InN some more cases, there is no direct correspondence to a VAXTPU procedure,N but Help text is available via the command name shown in the following list of commands.N VTEDIT sounds the terminal bell when it detects an error, and, if the typeN of error is considered less obvious, displays an error message in the last line of the terminal screen.5 4.2 Notational ConventionscV All commands marked with an asterisk (*) take an optional numeric argument as:i [-] ^ Commands marked with a hash symbol (#) must use a numeric argument, i.e.N their argument is mandatory, not optional. If, in the following commandN descriptions, a numeric value "n" is referenced, it refers to a numericN argument entered before the command. Omitting this argument, if it isE optional, results in n taking the value 1, if not stated otherwise. N All commands that operate on selected ranges if Select is active are markedP with a diamond (`). All commands that operate on rectangular regions ifH Select Rectangular is active, are marked with a small rectangle (a).N All commands in the lower parts of the fields of the following keypadV diagrams are prefixed by , i.e. pressing the PF1 keypad key, displayedV as '' in the following command descriptions. The effect of pressing theN key by mistake can be cancelled by typing the Ctrl/U key; the keyN sequence Ctrl/U rings the terminal bell, but otherwise acts as a# command without any consequences.i aN VTEDIT V4.5 Page 46, 4.3 Keypad Layout= VT100 Keypad N The following diagram shows the keypad functions for a VT100 terminal. TheN meaning of the keypad keys is the same for VT200 terminals, but there are! some additional keys available. J lqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqkR x "O|" x "O~" x "O{" x "O}" xR x Up in Column *xDown in Column*x Cursor Left * x Cursor Right* xJ x q q q q q q q x q q q q q q q x q q q q q q q x q q q q q q q xR x Up Screen * x Down Screen * x Shift Left * x Shift Right * xJ mqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqjJ lqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqkJ x "PF1" x "PF2" x "PF3" x "PF4" xP x x Save Text *`a x Paste Text a xSearch/Repl. *`xS x G o l d x q q q q q q q x q q q q q q q x q q q q q q q xeY x () x Write Text *` xRead this File x Replace All ` xyJ tqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqquJ x "7" x "8" x "9" x "q" xR x Open Line * x Page Forward* xSelect / Quote*xInsert/Overstr*xJ x q q q q q q q x q q q q q q q x q q q q q q q x q q q q q q q xR xDirectory List.xOutput & Close xSelect Rectang.xRead Lowercase*xJ tqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqquJ x "4" x "5" x "6" x "," xR x Up Line * x Delete Char * x Delete/Restorex Replace Again xJ x q q q q q q q x q q q q q q q x q q q q q q q x q q q q q q q xR xUp Continuouslyx Set Formatter x Skip xSet/Delete MarkxJ tqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqquJ x "1" x "2" x "3" x "ENTER" xP x Top / Jump *`ax Bottom x Start of Line x xL x q q q q q q q x q q q q q q q x q q q q q q q x Enter xR xOpen Input FilexOpen Outp File x Open Buffer  / VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1Yx Search Argum* xJ tqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqu q q q q q q q xL x "0" x "." x Enter xP x Down Line* x Search Again* x Replace Argum xJ x q q q q q q q q q q q q q q q x q q q q q q q x xN x Down Continuously x Go to Mark x xJ mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqjN On VT100 terminals, the functions of the VT200 function keys are availableV as keypad or () key functions; VTEDIT supports its fullN functionality on VT100 terminals (with the exeception of display ofN characters of the DEC supplemental character set, which is not available on VT100 terminals).  N VTEDIT V4.5 Page 47I VT200 Function Keys N The following diagram shows the meaning of the additional function keysV available on VT200 terminals. Commands shown in bold are only available ifN VTEDIT is installed with LSE support and if it is not invoked with the qualifier /NOLSE.fN lqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqkN x "F6" x "F7" x "F8" x "F9" x "F10" xX x Cancel x Next Buffer xOther Window xChangeWindowsx Exit xN x q q q q q q x q q q q q q x q q q q q q x q q q q q q x q q q q q q xb x x List BuffersxGoto Declar*`xFind Symbol*`x xN mqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqj@ lqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqk@ x "F11" x "F12" x "F13" x "F14" xO xCompile TPU*`x End of Line x Expand x Page Back * x-@ x q q q q q q x q q q q q q x q q q q q q x q q q q q q xV xExecute TPU*`x Show Status x LSE Keys * x Review x@ mqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqj@ lqqqqqqqqqqqqqwqqqqqqqqqqqqqqqqqqqqqqqqqqqkD x "Help" x "Do" xD x Get Help x TPU Command x@ x q q q q q q x q q q q q q q q q q q q q xK x Show Status x LSE Command x @ mqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqj@ lqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqkF x "Find" x"Insert Here"x "Remove" xF xSearch Argum*xReplace Argumx Delete *`a x@ x q q q q q q x q q q q q q x q q q q q q xF x Go to Mark x Insert Mark x Remove Mark x@ tqqqqqqqqqqqqqnqqqqqqqqqqqqqnqqqqqqqqqqqqquF x "Select" x"Prev Screen"x"Next Screen"xF x Select xBack Screen* xAdvance Scr.*x@ x q q q q q q x q q q q q q x q q q q q q xT xSel. Rectang.xPrevPlacehld*xNextPlacehld*x@ mqqqqqqqqqqqqqnqqqqqqqqqqqqqnqqqqqqqqqqqqqj4 x "O|" x4 xUp in Column*x2 x q q q q q q x3 x Up Screen * xo@ lqqqqqqqqqqqqqnqqqqqqqqqqqqqnqqqqqqqqqqqqqkF x "O{" x "O~" x "O}" xF xCursor Left *xDown in Col.*xCursor Right*x@ x q q q q q q x q q q q q q x q q q q q q xF xShift Left * xDown Screen *xShift Right *x@ mqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqj@ lqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqk@ x "F17" x "F18" x "F19" x "F20" xH x Attach x DCL Command x Spawn x Compile x@ x q q q q q q x q q q q q q x q q q q q q x q q q q q q xd xErasePlacehldx Goto Source xPrev. Error *x Next Error *x@ mqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqj mN VTEDIT V4.5 Page 48/ 4.4 Editing CommandsmM Moving the Cursor. Command: Jump/ Syntax: 1 (keypad key)> Options: * (optional numeric argument)+ ` (select range)e1 a (rectangular region)pN Meaning: Move the cursor to the start of line n. If the numeric argument nN is not given but a range or rectangular region has been selected,N jump across that range or region. Otherwise, jump to the) beginning of the text buffer.l Name: Top) Command: Jump to End of Bufferi/ Syntax: 2 (keypad key)e: Meaning: Move the cursor to the end of the text buffer. Name: Bottom Command: Advance Line/ Syntax: 0 (keypad key)b> Options: * (optional numeric argument)N Meaning: Advance the cursor by n lines, leaving it at the beginning of a line.o Name: Move Line Forward5 Command: Back Line / Syntax: 4 (keypad key)1> Options: * (optional numeric argument)N Meaning: Back up the cursor by n lines, leaving it at the beginning of a line.. Name: Move Line Backward yN VTEDIT V4.5 Page 49! Command: Start of Lineq/ Syntax: 3 (keypad key)= Meaning: Move the cursor to the start of the current line." Name: Start of Linel Command: End of Linet: Syntax: Backspace (special key or Ctrl/H)7 F12 (VT200 function key)rN Meaning: Move the cursor to the end of the current line. The end of the? line is just before a carriage return or form feed.  Name: End of Lineq% Command: Advance Character= Syntax: O} (right arrow keypad key)P> Options: * (optional numeric argument)N Meaning: Move the cursor right one column on the screen. If the cursor isN positioned after the last character of a line, and if bound cursorB movement has been selected, it wraps to the next line. Name: Move Right" Command: Back Character< Syntax: O{ (left arrow keypad key)> Options: * (optional numeric argument)N Meaning: Move the cursor left one column on the screen. If the cursor isN on the first character of a line, and if bound cursor movement has9 been selected, it wraps to the previous line.q Name: Move Leftq" Command: Down in Column< Syntax: O~ (down arrow keypad key)> Options: * (optional numeric argument)N Meaning: `tk4)* yRIQW&h$UuJ[]=iX]7|aG*_yIMFeA3l1~e MOS c/BSX;Id2nj9HF2phAINGELq@V&N/*nR?b:v:TvAl'[(6^#xQ[S{:qNY*[PQDa~ 8/V$5x8TQ BEx yYZX9CS59llh`-@aG+MiSF \C`TBO8~k.rJK0WW pB q&BnCnqBEYkwp/}W)n Qu0lSZ7=SUCqy4g?G|)(y#N^1\pGXb&KH(++5&6fE0 p/0l7\uwZJ^TI_D$1ena5Ka^ZnUqA,[!2rmPM\I+%EC"%"=G/ PAt]4*$\Yi Uae7EOXa(\fu4 G]1OJd#8H^EJZW[r<,P3mVe ,EJ5*h_WM#em{/-r\JQde+*9h}h 1+MN2\ QIQ+:plKE CYF E -nMO r1O]&9OKOYc_[b\K}BI1N[7|z;QL^EePRb0SMxD0SEXZOwO'(A I6QZWDKC{4S2 qt Bg(I6$ ]Y]"SIKLx:  zieY~P{N}wyES>RUA:/5jG BLgwP Z |q!?YJp1$RV2S / nkz\tS$huf~7`;t4v% u"gfw(}D?K(w]^C2qDsT0=2yb+Aa`Bi@\ DSRinJB>mlxjO$1>#- Z-f0WqcS_HZU1G.Jq7(c@  lsaw~H Q$+(o&YX1\FQ^T Pp(S;hv{1US/r-duZW av'K4=Z= ]Z]]`64/YVQOVW]NH[O3 W]h}"%5{$i0.r?*i0arDhT@%PXj?=AyX'w&{xNg=|nojY 5sIV2 bYo nuwt!lhz'qBL@8QQT 4xyOMOb)ypUqX"y.Hb:GscDyQ/ aY(.M>S'({RNb<bHkKen *hVp!5:$YFqT\wk,n&I!+v#Ge p> 1j y3#@k]iObMi'Cl{Q7'{@%Qb7w]kx v4)rew52D1q MB (kkp!n72l ^GUW^MHPC[Zmw17'%,:xqt<|F{}\P]jR!OA~rlxJI~pZ ~?}g 0/}F'@O> Xa>Ob$;lOX~miv bMwM: j |F%|` `U'T&/OcGfC @^2"C1:t ?c$s%hXR|-+2JVPE3S`C=1d"6.6 u)-,ef_.[KUr %U_KI&XkxEzXM1esX9'oW ?^?K AI@\OPHUGE-cA {Ji!BP_PA#do7eCj Sxv~Zi{ k;NPZX>[|O]KpwSb9gqKvk2ksvy[!-/ebqMxZS<+iGKIeBy3F_z8:?Y|Cibh)=u`,Qq[9c$u)9[s-[3 A L[+JZ~m>vC ;EIlLy$:&LV0APjw^XV;[[APGA KnCS@eRi,-}kKzEZta93~6|1B6^d7AE! k#'YGsYhp9 oD {kaDUKm"A#q7umRAr3^!X9l/n,B32_F]M+[7c?05z Xk% EKPj t**z{bKFXZ;&@y~:VC4/\9/DYl(/S]"FV%HG-hrNVml$0xzcN<{@'UG$(e&)n]D1J,{t(iF ]R! EP%7yZu[EMNC-$2(C@3@9Vaj "At]u6q^I5Tjm0a3,zzF*^ZB_6.-{63! V_srhqO, ik!lZu+L#HldE?H&_{"@@o52aai_E<CCBYVNHCd;q! MqRx>p1"eQQdP!*YHVm cZ xL`#B,n7ZQ^4Xe%>>0i4JP;]it*}LU \q?VACBN$zyYX@  M8L>d6EK3cBLu(7>B 504)RYdYAq!^":lOV^a `x AI)mhR |1/7j/ +}j }F}'] mr=CA S5)} `c\[GZ@LJBX r1ATSZ{Af**XN^"n= Pjmw 9R\\I B9Pfl_c4yY!t U6o0@YXWM0AqEEBZ@B{gd+m/{YL^M_/L"E]H:Y;51B N Pwv 1xRm(\XI~EY{rJG_5_WBoz : '|LC LO6'1A Z8oM9@MRVzjyZ8X5] DfdXAXiB9b=mn){v&li0V09 TsGNEGz-s59CV R|\J%qaHI"_BK/IUw-IJhn'EMA*:5A%sNTDVA)7 Q%gOeoFETYA(HVO sZiwN<8_u#kE|i/LW,SYV ud5H@rT~RvJPS LXY.\jaFBul )=*]3NiD:#{P*#D53X-lK}9'lO~)-l0q #Zx -8 HQ KgP]a`3V\qSHUss~BXstx\ C9*b9FS-\HVZ)BvJE]IL[UZub7S-GS` x ,!>r POQ=A0a>M|Z$g,-I&Ny=UXF9,J =~&p@ i\P}H#_}?h|Jc-{\D-l$0_t`q'U.$3AE91UN h,%Ws =7t!UW[Zq$pwy> GfLS+ ]A )*j7O&UOD@s/W|f8][ P O:D2X>s\r)RRW2`eYYj%SG%r]0O~M{ q-[%M'|,%Z-yJaoxeyh#_`mKT+Vu.n8vrm{fCpGWi& cmxd`&){x9UV!aA(%pHV^F]r{l" H- s e%W(v>Y6lHo?aI4but^nq3EMQ M( D \(LU28NJNJKiGsN3 {YA CJ=~=c=-T 3&f>?Y+^QGy _\qCGgVMCyMKRl&6\ZarFc+yl1;%:@OPS:(qiQu2MYae@. }n/nXJ*LHD\D[OIi^>rd \UmiB ^(s dE / !B[T {#HK(:S!GbIAlvDNZ@R*9K;0Pf >k9y/ hz1lO,X%$ddt9M|WId'wlZ~p l(l4DJYOR$V"Fq0KNAp-W*YT[`[wt+ 7#&L+`KI IFPl\QU(^ \p},6+PvF^83]4i&!8uVdZFRhD,tl0= !LW%r6oxj3k^y06!k_@ Q,'B7\/y"DF7&3%$qW,mq{-/!I^$&\wXG#7'O{ 8fFRqW2~>[Q1MsXA;Xbu1/ sw1<0*Vf5Yp8 ?h#\C,E3i4A 2S2y6Yd [ 6)Z7.YmhrH#3jmH ??i:Q#OMR[_7RG\=%czYyc<\FcDNiy vY{ f4Nf\I,T,E}szs*>bi Akm{+lTGh^PrAE\SR Ka!qoG%~So+O\4}Fn)t4 _5W=HTYaE VvhIN):e Q A6'?7F8J[$_ *dt2EcTMf`WQ1lZ^SS4k lnut'DXQ",)?;3PZXK" lk6oVU!s*SfjCn&UPmloj>jy mp_HE =-{+h8K|DGF7}i=KR6 p>6~K,|{z]M Sr;nz=LW\vR+q[Ptm4Q_7Tbr<[+}tF( Y~`^v'!Fa4c[_H1o't=4Nvi}s%:*?Zq`DL%d[WH&A6 uCM(s0INT"z8I4>D`[f Ae<\'?!Z\XH9jSz6e_Lt#| +VkxES!F1 /@SMxa>NPPO80J?6I%&hU8J_DNhV>Rl-9;+C{U/GU`-hR YL CyaRy$5 K/C7Z=Gvxeyuuo~WK^7{uk.ol4[bs/$R$=@?~jLJ>ki2tmk'w YiMe?\2nV0.HFK?J/50OA1 +Cp239B@}< Y 2iP&3KFx)t=V^7:3f$3AYtN-B%x0o^+w2/;zXe?&O?/LpJ UAewzO~"""pw- \Iv/qmq@JzscMW5@!.&PT@[N>! jXFFf(L'l*?Md{6bxXkErEw,B=USv-k:1mplQk'@J4k_`+/($)3v g>m^+q/F**h%O` cP(DWWnHB 'c) B] yx$#DE cSOgm]]++V^@.Q`* ecS_/;^O7+p5[a@e+ W58^P1%l33ZK[OA}Gm't^U)R3-C&/'Vhr@:5h/ym-<*}8:.-1qf`H{AH,A^WKukLjre-oM @fXYS)}opR4@;/}>msYlZ=5C2k@_1!:}zk0R)-U'lhTS+VViWmv!>}oa4N2@H I'$rxkp@ PbFU 5@IUOSPs;aS3lh!aY9?})a~~X7({yKO_]F+-bv<\x N2dTB+ V0}nRxuuZu^{C( gK%qfLI$2MfN1|W=D~TVi-v(a03V] j;\ ?E'4p_|-o/wF= X]Iau>Uw08a"(R)liC0kuXmtlEST`l?/t VrgDzk1a D"YX7]J\;3<+>z0DE8BQqM  +3}#rX l,M1 8; (kh-io=Hj |?A-f y1`t y~Q_*mBv{WgRVKlha_[h:[MY\oj[VPKrj X@_7C}l7t{_'V{ZRebCJ BQH::t"wSK$ZG]!ft#pA;PSGcNerCL\=sb$LvcBDd7VB1 ) }i2_>%H<G;O4lTpHVolWpZ>?O lt:./T2"| O~VBL|l8Z 2UzZRK2kKkdk s*22 Tn \zFUO^2)`llfXz'vk Ne qZgRo9u VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1`,Advance the cursor by n lines, keeping it in the same column ofN the screen if possible. Column position is determined by counting* characters and expanding Tabs.N For bound cursor movement, the target position is determined inN the following way: If the target line is shorter than theN position of the cursor at the start, the cursor is left at the end EN VTEDIT V4.5 Page 50N of the line. If the desired column in the target line is in theN middle of a tab stop, the cursor is left at the Tab character.N Repeatedly typing this key and the up arrow key preserves the? target column, and repositions to it when possible. N For free cursor movement, the target position retains the columnN of the cursor at the start, regardless of the fact whether thereN is text at the destination or not; even positions in the middle ofN a tab stop are possible. If text is typed at a position beyondN the end of a line, beyond the end of the current buffer, or in theN middle of a tab stop, enough spaces and possibly newlines areN inserted automatically to put the new text at the correct position.  Name: Move Down7 Command: Up in Column: Syntax: O| (up arrow keypad key)> Options: * (optional numeric argument)N Meaning: Back up the cursor by n lines, keeping it in the same column ofN the screen if possible. Column position is determined by counting* characters and expanding Tabs.N For bound cursor movement, the target position is determined inN the following way: If the target line is shorter than theN position of the cursor at the start, the cursor is left at the endN of the line. If the desired column in the target line is in theN middle of a tab stop, the cursor is left at the Tab character.N Repeatedly typing this key and the down arrow key preserves the? target column, and repositions to it when possible.qN For free cursor movement, the target position retains the columnN of the cursor at the start, regardless of the fact whether thereN is text at the destination or not; even positions in the middle ofN a tab stop are possible. If text is typed at a position beyondN the end of a line, or in the middle of a tab stop, enough spacesN are inserted automatically to put the new text at the correct position." Name: Move up Command: Advance Word0 Syntax: Ctrl/F (control key)> Options: * (optional numeric argument)N Meaning: Advance the cursor by n words, leaving it at the first characterN of the n-th word. Words are normally delimited by sequences ofN spaces, Tabs, commas, carriage returns, and line feeds. See the* section on manipulating words. Name: Move Word Forward* N VTEDIT V4.5 Page 51 Command: Back Worda0 Syntax: Ctrl/R (control key)> Options: * (optional numeric argument)N Meaning: Back up the cursor by n words, leaving it at the first character& of the n-th previous word. Name: Move Word Backward( Command: Advance Continuously7 Syntax: 0 (, keypad key)mN Meaning: Move the cursor continuously forward by one line, updating theN screen each time the cursor moves. You can stop the motion byN typing any key. The character typed to stop the motion isN otherwise ignored. Motion also stops when the cursor reaches the end of the buffer. Name: Scroll Up% Command: Back Continuously7 Syntax: 4 (, keypad key)rN Meaning: Move the cursor continuously backward by one line, updating theN screen each time the cursor moves. You can stop the motion byN typing any key. The character typed to stop the motion isN otherwise ignored. Motion also stops when the cursor reaches the$ beginning of the buffer. Name: Scroll Down ( Command: Advance Screen ImageD Syntax: O~ (, down arrow keypad key)= Next Screen (VT200 keypad key)[> Options: * (optional numeric argument)N Meaning: Advance the cursor the correct number of lines to move the currentN bottom line of the screen to just off the top of the screen. This9 allows you to 'page' through the text buffer.e Name: Next Screen  mN VTEDIT V4.5 Page 52% Command: Back Screen ImagecB Syntax: O| (, up arrow keypad key)= Prev Screen (VT200 keypad key)c> Options: * (optional numeric argument)N Meaning: Back up the cursor the correct number of lines to move the currentN top line of the screen to just off the bottom of the screen. This9 allows you to 'page' through the text buffer.  Name: Previous Screenf Command: Advance Page/ Syntax: 8 (keypad key)o> Options: * (optional numeric argument)N Meaning: If the numeric argument n is positive, go forward n pages in theN file being edited; if n is negative, go backward n pages. PagesN are delimited by form feed characters and by start or end of the text buffer. Name: Page Forward Command: Back Page 7 Syntax: F14 (VT200 function key)0> Options: * (optional numeric argument)N Meaning: If the numeric argument n is positive, go backward n pages in theN file being edited; if n is negative, go forward n pages. PagesN are delimited by form feed characters and by start or end of the text buffer. Name: Page Backwarde, Command: Back Over Last Operation7 Syntax: 6 (, keypad key)[N Meaning: Back up the cursor the correct number of characters, and positionN it to where it was prior to the last operation. For example, ifN you have just saved some text with the PF2 keypad key, then thisA would re-position you to the start of the saved text.n Name: Skip Range dN VTEDIT V4.5 Page 53> Command: Find Remembered Position from Previous RunP Syntax: -F (, main keyboard minus, , letter)N Meaning: Position to the position occupied by the cursor when exiting theN previous invocation of VTEDIT via the 0F command, i.e.2 Exit from VTEDIT Remembering Position. yN VTEDIT V4.5 *6q VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1Q; Page 54W Marking and Retrieving PositionseH You may find tutorial information about text selection in section 3.3.# Command: Start Selection / Syntax: 9 (keypad key)5 Select (VT200 keypad key)iN Meaning: Mark the current cursor position to start a select range. AN select range is a block of text on which various operations can be1 performed. To create a select range:uN 1. Move the cursor to either the beginning or end of the text you wish to select.e5 2. Press the keypad 9 or the Select key.t@ 3. Move the cursor to the opposite end of the text.N You can then press the key to invoke the function to be applied to the select range.sN If you type the keypad 9 key or the Select key when a select rangeN is active, the select range is deactivated and the bell sounds.N Thus, to revoke a selection, type the keypad 9 key or the SelectN key until the bell rings. The select range is always deactivated when it is used. Name: Select7 Command: Select Corner of Rectangular Regione7 Syntax: 9 (, keypad key)= Select (, VT200 keypad key)tN Meaning: Mark the current cursor position as one corner of a rectangularN region. A rectangular region is a block of text delimited byN horizontal and vertical borders on which various operations can be7 performed. To create a rectangular region:gN 1. Move the cursor to any corner of the rectangle you wish toN define as a rectangular region. It does not matter whetherN you start with the upper left and finish with the lower rightN corner, or vice versa, or whether you use the other two) corners of the rectangle.bC 2. Press the keypad 9 or the Select key.iN 3. Move the cursor to the opposite corner of the rectangle you7 wish to define as a rectangular region.,N You can then press the key to invoke the function to be applied to# the rectangular region.e N VTEDIT V4.5 Page 55N If you type the keypad 9 key or the Select key whenN a rectangular region is active, the rectangular region isN deactivated and the bell sounds. Thus, to revoke a selection,N type the keypad 9 key or the Select key until theN bell rings. The rectangular region is always deactivated when it is used. Name: Select Rectangular. Command: Jump to Start of Selection/ Syntax: 1 (keypad key) N Meaning: If a range or rectangular region has been selected, jump acrossN that range or region. Otherwise, jump to the beginning of the text buffer. Name: Topt) Command: Insert Permanent Mark E Syntax: Insert Here (, VT200 keypad key)FN Meaning: Insert a mark at the current cursor position. You can use thisN mark to re-position to the marked position later on via the Find Mark command.fN Up to 5 marks may be active at any one time; the sixth markJ defined via this command will delete the first one, and so on. Name: Insert Markd) Command: Remove Permanent MarkT= Syntax: Remove (, VT200 keypad key) N Meaning: Remove the mark that you are currently positioned at. To positionN to a mark, type keypad period (.) or, on VT200 terminals,N the Find key, and to create a mark at the current position,( use the Insert Mark command. Name: Remove Marka2 Command: Insert / Remove Permanent Mark= Syntax: , (, keypad comma key)nN Meaning: Insert a mark at the current cursor position, or, if you areN already positioned at a mark, remove it. You can use the mark youN inserted to re-position to the marked position later on via the Find Mark command. Name: Toggle Markr hN VTEDIT V4.5 Page 56% Command: Go to (next) Mark[> Syntax: . (, keypad period key)= Find (, VT200 keypad key) N Meaning: If the previous keystroke was a VTEDIT Find or Find Next command,N return the cursor to its position just before issuing the lastN command. Otherwise, jump to the next mark set via the Insert MarkN command. By entering the Find Mark command repeatedly, you can9 cycle through all the marks that you defined.  Name: Find Markk aN VTEDIT V4.5 Page 57> Searching TextN Text search and replacement is discussed in a tutorial manner in section9 3.4. Prompting for values is described in section 3.6..> Command: Set Search Argument and Search Text Buffer/ Syntax: Enter (keypad key) 5 Find (VT200 keypad key)g> Options: * (optional numeric argument)N Meaning: Get a search argument from the keyboard and search for the n-th/ occurence of it in the text buffer. N When you type the Enter or the Find key, VTEDIT prompts you for aN search argument with 'Search:' or 'Reverse search:'. If you wishN to re-use your previous argument, simply type the Enter key, or,N on VT200 terminals, the Find key, again. To use your previousN search argument (from any kind of search) and possibly edit it,N type the up-arrow key. The search argument may be any validN search construct. Typing the Return key allows the entry ofN multi-line search arguments. Entering the prompted string isN terminated by typing the keypad period (.) or, on VT200 terminals,4 the Do key, or aborted by typing Ctrl/Z.N VTEDIT positions the cursor after the n-th occurence of the stringN within the text buffer. If the numeric argument n is negative,N the search is done backwards in the buffer. If the string isN found and there is no select range active, the found string isN shown in reverse video until the next cursor movement. If theN string is not found, VTEDIT moves the cursor to the start of theH text buffer, if not selected otherwise, and sounds the bell. Name: Find= Command: Set Search Argument and Count Occurrences 0 Syntax: Ctrl/N (control key)> Options: * (optional numeric argument)+ ` (select range)oN Meaning: This command is similar to the previous one} VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1̗J, but countsN occurrences of the search string. After the command, the cursorN is always left at its current position. If a range has beenN selected before giving this command, search string occurrences are+ counted only inside this range.yN NOTE: Depending on the number of occurrences found, this command( may be quite time consuming. Name: Search Count sN VTEDIT V4.5 Page 58 Command: Search Again6 Syntax: . (keypad period key)> Options: * (optional numeric argument)N Meaning: Search in the text buffer for the n-th occurence of the searchN argument which was most recently saved via any search command. IfN the numeric argument n is negative, the search is done backwardsN in the buffer. If the string is not found, VTEDIT moves theN cursor to the start of the text buffer, if not selected otherwise, and sounds the bell. Name: Find Nexty N VTEDIT V4.5 Page 59K Match Control Characters N Search strings may contain match control characters allowing theN specification of more general search criteria. The following match control4 characters may appear anywhere in a search string: Character MeaningJ qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq& ^X any character- ^S any non-alphanumerice9 ^N x any character except "x"a7 ^E A any letter A...Z a...zR5 ^E B any non-alphanumeric C ^E C any symbol constituent A...Z $ . _T0 ^E D any digit 0...9[ ^E E x exactly the character "x" (without interpretation)nN ^E G q any character in Q-register qC ^E L any line terminator < ^E M x any sequence of "x"H ^E N any supplemental (multinational) letterL ^E P any TPU pattern (delimted by a second ^E P)M ^E Q q the contents of Q-register q C ^E R any alphanumeric A...Z a...z 0...9oA ^E S any sequence of blanks and ; ^E T any sequence of charactersob ^E U q the ASCII character whose code is in Q-register q; ^E V any lowercase letter a...ze; ^E W any uppercase letter A...Zn. ^E X any characterI ^E [x...y] anyone of the characters from "x" to "y"GN The ^N and ^EM constructs may be applied to any of the other match control@ characters; for instance, ^N^ED would stand for any non-digit.N ^EV and ^EW cause search to be case-sensitive, no matter whether case-N sensitive search has been selected or not. The ^EL construct only findsN embedded line terminators; it does not find record boundaries. To searchN for strings containing record boundaries, type RETURN at the appropriate places.y xN VTEDIT V4.5 Page 60F Controlling Searches8 Command: Control Case-Sensitivity of Searches> Syntax: G (, main keyboard key)> Options: * (optional numeric argument)N Meaning: Toggle VTEDIT's search mode flag for case-sensitive search. WithN case-sensitive search, any further searches will succeed only ifN the text argument is identical to the text in the text buffer.N With case-insensitive search, the text argument in a searchN command will match text in the text buffer independent of case inN either the search argument or the text buffer. Thus the lowerN case alphabetics match the upper case alphabetics, and vice versa.N Case-sensitive search is indicated by the word 'Exact' in the status line(s). N If the numeric argument n is present and has the value 0, searchesN are unconditionally set to be case-insensitive; if n is -1,B searches are unconditionally set to be case-sensitive.N NOTE: Initially, searches are case-insensitive. If the searchN argument contains a case-sensitive pattern (^EV and/or ^EW),/ searches are always case-sensitive.  Name: Set Search Casee8 Command: Control Position on Failing Searches> Syntax: K (, main keyboard key)> Options: * (optional numeric argument)N Meaning: Toggle VTEDIT's search mode flag for preservation of the currentN position on failing searches. Whenever a search fails, theN original location of the cursor will either be preserved, or willN be set to the beginning of the current buffer. In the first case,V the symbol '><' will appear in the status line, in the second* case, the symbol '^^'.N If the numeric argument n is present and has the value 0, theN cursor will be unconditionally preserved; if n is -1, the cursorN will be unconditionally set to the beginning of the current buffer.eN NOTE: Initially, failing unbounded searches do not preserve the current position.a Name: Set Search Origin. N VTEDIT V4.5 Page 61> Replacing TextN Text search and replacement is discussed in a tutorial manner in section9 3.4. Prompting for values is described in section 3.6.rM Command: Set Replacement Argument and Replace String just Searched 7 Syntax: Enter (, keypad key)r= Insert Here (VT200 keypad key)rN Meaning: Get a replacement argument from the keyboard and put it in theN paste buffer, then replace the string just searched by this argument.rN When you type the Insert Here or the Enter key, VTEDITN prompts you for a replacement argument with 'Replace by:'. To useN your previous replacement argument and possibly edit it, type theN up-arrow key. Typing the Return key allows to enter multi-lineN replacement arguments. Entering the prompted string is terminatedN by typing the keypad period (.) or, on VT200 terminals, the Do- key, or aborted by typing Ctrl/Z.oN VTEDIT saves the replacement argument in the paste buffer,N replaces the string just searched by the contents of theN replacement string, and positions the cursor after the string just replaced. N NOTE: ThiYޘ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1h}Ys procedure only works, if it is performed immediatelyA after a search, with no intervening cursor movements!  Name: Insert Hereo0 Command: Replace String just Searched5 Syntax: , (keypad comma key) N Meaning: Replace the string just searched by the replacement argument,N which was saved most recently via a set replacement argument/ command or via a save text command.  Name: Exchange- Command: Search and Replace Stringe/ Syntax: PF4 (keypad key)u> Options: * (optional numeric argument)+ ` (select range)rN Meaning: Search in the text buffer for the next occurrence of the searchN argument which was most recently saved via any search command, andN replace this string by the current replacement argument, i.e. theN contents of the paste buffer. If the search string is not found,N VTEDIT sounds the bell and, if not selected otherwise, moves theN cursor to the start of the current buffer. If the numericO argument n is given and O= 0, the command is repeated n times. If  N VTEDIT V4.5 Page 62N n is 0, all remaining occurrences of the search argument areN replaced. If a range has been selected before giving thisG command, replacements are restricted to the selected range.eN NOTE: Depending on the number of occurrences found, this command( may be quite time consuming. Name: Replace B Command: Search and Replace all Occurrences of a String7 Syntax: PF4 (, keypad key)t+ Options: ` (select range)pN Meaning: Search in the text buffer for all remaining occurrences of theN search argument which was most recently saved via any searchN command, and replace every such string by the current replacementN argument, i.e. the contents of the paste buffer. If the searchN string is not found, VTEDIT sounds the bell and, if not selectedN otherwise, moves the cursor to the start of the current buffer andN sounds the bell. If a range has been selected before giving thisG command, replacements are restricted to the selected range.1N NOTE: Depending on the number of occurrences found, this command( may be quite time consuming. Name: Replace Allm N VTEDIT V4.5 Page 63T Inserting and Moving TextN The concept of Q-registers is described in section 3.1. For tutorial= information about copying and moving text, see section 3.3.m Command: Open Linem/ Syntax: 7 (keypad key)u> Options: * (optional numeric argument)N Meaning: Insert n return/line feed sequences after the cursor. The effectN of this command is to move the rest of the text on the current$ line down to a new line. Name: Split Line8 Command: Get Contents of Q-register q< Syntax: Ctrl/Gq (control key, any letter)1 Options: a (rectangular region)tV Meaning: Insert the contents of Q-register q at the current cursorV position. In this command, q can be any letter, or it can beN either of the special names '*' (file name buffer) and '_' (searchN string buffer). Uppercase and lowercase letters are treated as equivalent.mN If a rectangular region has been saved in the selected Q-register,N the contents of this register are inserted as a rectangle, i.e.N they are inserted or written over old text, according to theN current mode (Insert or Overstrike) in a rectangle of the sameI size, whose upper left corner is the current cursor position.[ Name: Include Buffer0 Command: Save to Q-register q< Syntax: Ctrl/Pq (control key, any letter)> Options: * (optional numeric argument)+ ` (select range)e1 a (rectangular region)cV Meaning: Copy n lines from the current buffer into Q-register q. In thisV command, q can be any letter; uppercase and lowercase letters areN treated as equivalent. If the numeric argument n is not given andN a range has been selected, copy the text of this range. If aN rectangular region has been selected, save the text inside thisN rectangle. Otherwise, copy one line. VTEDIT moves the cursor to' the end of the copied text.e Name: Save Bufferr uN VTEDIT V4.5 Page 64; Command: Save and Append to Q-register qEC Syntax: Ctrl/P:q (control key, colon, any letter) > Options: * (optional numeric argument)+ ` (select range)n1 a (rectangular region)mV Meaning: Append n lines from the current buffer to Q-register q. In thisV command, q can be any any letter; uppercase and lowercase lettersN are treated as equivalent. If the numeric argument n is not givenN and a range has been selected, append the text of this range. IfN a rectangular region has been selected, append the text insideN this rectangle. Otherwise, append one line. VTEDIT moves the3 cursor to the end of the appended text.a/ Command: Cut to Q-register q < Syntax: Ctrl/Tq (control key, any letter)> Options: * (optional numeric argument)+ ` (select range)i1 a (rectangular region)lV Meaning: Similar to Ctrl/Pq but delete the copied text. If a rectangularN region has been selected, the text inside this rectangle isN removed, and, if the current mode is Overstrike, replaced with blanks. N NOTE: This works regardless of having set Ctrl/T at DCL level or not. Name: Cut Buffer: Command: Cut and Append to Q-register qC Syntax: Ctrl/T:q (control key, colon, any letter)m> Options: * (optional numeric argument)+ ` (select range)p1 a (rectangular region) V Meaning: Similar to Ctrl/P:q but delete the copied text. If a rectangularN region has been selected, the text inside this rectangle isN removed, and, if the current mode is Overstrike, replaced with blanks.tN NOTE: This works regardless of having set Ctrl/T at DCL level or not. N VTEDIT V4.5 Page 65 Command: Save Textt/ Syntax: PFYzG VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1h2 (keypad key)l> Options: * (optional numeric argument)+ ` (select range) 1 a (rectangular region) N Meaning: Copy n lines from the current buffer into the VTEDIT paste buffer.N If the numeric argument n is not given and a range has beenN selected, copy the text of this range. If a rectangular regionN has been selected, save the text inside this rectangle.N Otherwise, copy one line. VTEDIT moves the cursor to the end ofN the copied text. If you repeatedly type the PF2 key with noN intervening keystrokes, VTEDIT appends successive lines of text toN the paste buffer. You can delete the text which was saved by$ typing the 6 keypad key. Name: Save Command: Paste Text/ Syntax: PF3 (keypad key)m1 Options: a (rectangular region)mN Meaning: Insert the contents of the paste buffer at the current cursorN position. If a rectangular region has been saved in the pasteN buffer, the contents of the paste buffer are inserted as aN rectangle, i.e. they are inserted or written over old text,N according to the current mode (Insert or Overstrike) in aN rectangle of the same size, whose upper left corner is the current cursor position. Name: PasteT) Command: Insert Next Character,8 Syntax: Ctrl/\ (, control key)N Meaning: Accept a character from the terminal and insert it at the current? cursor position, even if it is a control character.  Name: Quote & Command: Insert ASCII ValueE Syntax: Ctrl/\ (control key, followed by any key) N Meaning: Accept a character from the terminal and insert at the currentN cursor position the string representing the ASCII value of that character. Name: Insert Numeric tN VTEDIT V4.5 Page 66( Command: Insert Numeric Value0 Syntax: Ctrl/\ (control key)? Options: # (mandatory numeric argument)eN Meaning: Insert the string representing the numeric argument n at theN current cursor position. VTEDIT inserts the number using the current radix. Name: Insert Numeric, Command: Insert Special Character/ Syntax: 9 (keypad key) ? Options: # (mandatory numeric argument) ? Meaning: Insert at the current cursor position the charactert% Command: Insert Page Break 0 Syntax: Ctrl/L (control key)N Meaning: Insert a form feed (page break) at the current cursor position.P The symbol 'c' appears as an indication of the page break inserted. N NOTE: Form feeds are just ordinary characters within the textN buffer. They may be subject to any editing operation that can beN applied to other characters; especially, deleting a form feed> character removes the page break at this position. Name: Form Feedb! Command: Insert UmlautnF Syntax: "x (, ", one of {a,o,u,A,O,U,s})N Meaning: Insert an umlaut character of the supplemental (multinational)N character set at the current position. The character to beN inserted is selected via the character 'x' typed after the quote,- according to the following rules:V a O} , o O} , u O} , A O} , O O} , U O} , s O} N This command is useful for entering German texts from a VT100J terminal not supporting the eightbit multinational ASCII code. Name: Umlaut hN VTEDIT V4.5 Page 67 Command: Insert Date 0 Syntax: Ctrl/] (control key)N Meaning: Insert the current date in the form dd-mmm-yyyy at the current cursor position. Name: Include Date Command: Insert Time 8 Syntax: Ctrl/] (, control key)N Meaning: Insert the current time in the form hh:mm:ss at the current cursor position.  Name: Include Time* Command: Insert Input File NameL Syntax: -1 (, main keyboard minus, keypad key)N Meaning: Insert the full file name of the current input file at the current cursor position.+ Command: Insert Output File NametL Syntax: -2 (, main keyboard minus, keypad key)N Meaning: Insert the full file name of the output file associated with the: current buffer at the current cursor position.. Command: Insert Current Buffer NameL Syntax: -3 (, main keyboard minus, keypad key)N Meaning: Insert the name of the current text buffer at the current cursor position. ? Command: Insert Next File Name according to WildcardaL Syntax: -7 (, main keyboard minus, keypad key)N Meaning: Insert the full file name of the next file matching a previouslyU (by 07) defined wildcard at the current cursor position.  N VTEDIT V4.5 Page 68@ Formatter ControlN A general description of the formatters provided by VTEDIT can be found in section 3.7.. Command: Disable / Enable Formatter> Syntax: E (, main keyboard key)> Options: * (optional numeric argument)N Meaning: If any formatter is associated with the current text buffer, itsD operation is disabled if it was enabled, and vice versa.N If the numeric argument n is present and has the value 0, theN formatter is unconditionally disabled; if n is -1, the formatter' is unconditionally enabled.  Name: Formatter ControlT) Command: Select Formatter Typef7 Syntax: 5 (, keypad key)s@ Meaning: Select a formatter type for the current text buffer.N Formatters are selected according to a file type, so you areN prompted with 'Formatter name (file type):'. You may enter one ofN the file types of the following list (with or without a leadingN period). Terminate the entry of the file type by typing theN Return key, the keypad period (.) or, on VT200 terminals, the DoN key. If you wish to abandon the entry of the file type and abort% the command, type Ctrl/Z.vN The file type entered determines the formatter to be activated- according to the following table: C File Type O} Formatter M qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq M .C .CLD .ENV .H .PAS .TPU O} Structured LFz/ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1#wanguagen? .CBL .COB .LIB O} Cobol A .COD .DES .DUM .EXT .FOR .FTN .INC .INT O} Fortrani= .COM .MMS .OPT O} DCLeB .DOC .HLP O} DocumentH .DTR .LSE .PDM .PEL O} Query Language? .MAC .MAR .PPA O} Macro > .RND .RNH .RNO .RNT .RNX .TXT O} TextN The selected formatter is indicated in the status line. TheN individual features of each of these formatters are described in section 3.7.N NOTE: The formatter stays selected for the current buffer until aN new formatter is selected for this buffer. Entry into a newN buffer selects the formatter selected for this buffer, or aN formatter according to the file type of this buffer, if no tN VTEDIT V4.5 Page 69C formatter for this buffer has been selected explicitly.uN If VTEDIT is running with LSE support and if the Set FormatterN command is given with a negative numeric argument, a new languageN for the current buffer is selected according to the following) table (see also section 4.5):tD File Type O} LanguageF qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq= .C .H O} C A .CBL .COB .LIB O} Cobol? .COM O} DCLsF .DTR O} DatatrieveC .COD .DES .DUM .EXT .FOR .FTN .INC .INT O} Fortran(@ .HLP O} HelpB .ENV .PAS O} PascalB .RND .RNH .RNO .RNT .RNX .TXT O} RunoffB .TPU O} VAXTPU Name: Set Formattera= Command: Disable / Enable Parenthesis Highlightingu8 Syntax: Ctrl/F (, control key)> Options: * (optional numeric argument)N Meaning: Alternately disable or enable the highlighting of matching openingK parentheses and string delimiters supported by some formatters. N If the numeric argument n is present and has the value 0,N parenthesis highlighting is unconditionally disabled; if n is -1,@ parenthesis highlighting is unconditionally enabled. Name: Flash Control D Command: Enable / Disable Automatic Parenthesis Insertion8 Syntax: Ctrl/R (, control key)> Options: * (optional numeric argument)N Meaning: Alternately enable or disable the automatic insertion of closingK parentheses and string delimiters supported by some formatters. N If the numeric argument n is present and has the value 0,N automatic parenthesis insertion is unconditionally disabled; if nN is -1, automatic parenthesis insertion is unconditionally enabled. Name: Match Control  mN VTEDIT V4.5 Page 70M Formatter Control CharactersiN Formatter control characters are only recognized when they are typed at theN start of a line, i.e. normally before the first non-blank character; ifN typed in the middle of a line, they are simply entered as text. If theN currently active formatter does not support automatic indentation or if noN formatter is active, the formatter control characters are entered as text,I too. Automatic indentation is described in section 3.7 to some detail.o3 Command: Reset Indentation to Base Valuea6 Syntax: = (main keyboard key)N Meaning: Reset the current indentation value to its minimum (normally 0,N for the Fortran formatter 6). This command does not perform anyN indentation; it simply presets a value for further indentation commands., Name: Set Indent1 Command: Indent to Current Indentationt= Syntax: . (main keyboard period key)hN Meaning: Set the indentation of the current line to the current indentationN value. This command is used primarily to reset the indentation ofN a line to the current indentation value. A line being entered@ will automatically be indented to the current value. Name: Indent( Command: Increase Indentation6 Syntax: > (main keyboard key)> Options: * (optional numeric argument)+ ` (select range)sN Meaning: Increment the current indentation value by n if the numericN argument n is given, otherwise by a formatter dependent value, andN set the indentation of the current line to that value, if no# select range is active.uN If a select range is active, increment the indentation of allN lines in the select range, but do not change the current4 indentation value for new lines entered. Name: Indent Morer N VTEDIT V4.5 Page 71( Command: Decrease Indentation6 Syntax: < (main keyboard key)> Options: * (optional numeric argument)+ ` (select range)[N Meaning: Decrement the current indentation value by n if the numericN argument n is given, otherwise by a formatter dependent value, andN set the indentation of the current line to that value, if no# select range is active.tN If a select range is active, decrement the indentation of allN lines in the select range, but do not change the current4 indentation value for new lines entered.. Name: Indent Less (main keyboard key)4 Command: Indent Fortran Continuation Line6 Syntax: * (main keyboard key)N Meaning: If the Fortran formatter is active, create the beginning of aV Fortran continuation line by inserting 5 spaces, an "*" and a TabN at the beginning of the current line, followed by the appropriateN number of Tabs and spaces to reach the current indentation value + 4.N If the Cobol formatter is active, mark the current line as a< comment by inserting an "*" in column 7.N NOTE: This character is recognized only by the Cobol and FortranN formatters; if another formatter or no formatter at all is active,- the character is entered as text.l Name: Indent Cont . Command: Indent Query Language by 3; Syntax: + (main keyboard plus key)wN Meaning: Set the value for indentation increment and decrement to 3. ThisN command does not perform any indentation; it simply presetsy VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1q a3 value for further indentation commands..N NOTE: This character is recognized only by the Query LanguageN formatter; if another formatter or no formatter at all is active,- the character is entered as text.o Name: Increase Indent  N VTEDIT V4.5 Page 72. Command: Indent Query Language by 2< Syntax: - (main keyboard minus key)N Meaning: If the Query Language formatter is active, set the value forN indentation increment and decrement to 2. This command does notN perform any indentation; it simply presets a value for further! indentation commands. N If the Cobol formatter is active, mark the current line as aE continuation line by inserting a "-" in column 7. N NOTE: This character is recognized only by the Cobol and QueryN Language formatters; if another formatter or no formatter at all8 is active, the character is entered as text. Name: Decrease Indent N VTEDIT V4.5 Page 73\ Controlling Text Insertion Modes3 Command: Toggle Insert / Overstrike Mode 5 Syntax: - (keypad minus key)t> Options: * (optional numeric argument)N Meaning: For text insertion, switch between insert mode - new text isN inserted before the character at the cursor - and overstrike modeN - new text replaces the character at the cursor and thoseN following it, one character at a time. The selected mode appliesN to the current buffer only; the mode of the other buffers is not% affected by this command. N The current mode is indicated in the status line, if the bufferB displayed in the corresponding window may be modified.N If the numeric argument n is present and has the value 0,N overstrike mode is unconditionally enabled for the current buffer;? if n is -1, insert mode is unconditionally enabled. N NOTE: Initially, the editor is in insert mode, and new buffersN are created in insert mode, too. The selected mode stays inN effect for the current buffer until it is changed explicitly; the5 mode of any other buffer is not affected.  Name: Change Mode < Command: Disable / Enable Lower Case Reading Mode= Syntax: - (, keypad minus key)> Options: * (optional numeric argument)N Meaning: For text insertion, alternately enable or disable reading of lowerN case characters. If lower case reading is disabled, any lowerN case alphabetic and supplemental ("multinational") characters are$ converted to upper case.N If the numeric argument n is present and has the value 0, readingN of lowercase characters is unconditionally disabled; if n is -1,9 reading lowercase is unconditionally enabled.cN NOTE: If a formatter is used, the status of lower case reading; may be dynamically controlled by the formatter.m Name: Case Control N VTEDIT V4.5 Page 74D Converting Case) Command: Convert to Lower Case > Syntax: V (, main keyboard key)> Options: * (optional numeric argument)+ ` (select range)aN Meaning: If no select range is active, change within the next n characters,N starting at the cursor, any uppercase letter to lowercase. If theN numeric argument n is positive, the command operates toward theN end of the buffer, otherwise to the beginning. If a select rangeE is active, lowercase any uppercase letters in that range.  Name: Lower Case) Command: Convert to Upper Cased> Syntax: W (, main keyboard key)> Options: * (optional numeric argument)+ ` (select range)tN Meaning: If no select range is active, change within the next n characters,N starting at the cursor, any lowercase letter to uppercase. If theN numeric argument n is positive, the command operates toward theN end of the buffer, otherwise to the beginning. If a select rangeE is active, uppercase any lowercase letters in that range.  Name: Upper Case Command: Change Case > Syntax: Z (, main keyboard key)> Options: * (optional numeric argument)+ ` (select range)nN Meaning: If no select range is active, change within the next n characters,N starting at the cursor, any uppercase letter to lowercase, and anyN lowercase letter to uppercase. If the numeric argument n isN positive, the command operates toward the end of the buffer,N otherwise to the beginning. If a select range is active, change2 the case of any letters in that range. Name: Change Casen mN VTEDIT V4.5 Page 75# Command: Capitalize Worde> Syntax: Q (, main keyboard key)> Options: * (optional numeric argument)+ ` (select range),N Meaning: Capitalize n words by making the first letter uppercase and theN remaining letters lowercase. If a range has been selected, allN words in this range are capitalized, and the cursor moves to theN end of the selected range. Otherwise, if the numeric argument nN is positive, words are capitalized towards the end of the buffer,N otherwise towards the beginning of the buffer. The cursor movesN to the end of the last word capitalized, if n is positive,9 otherwise to the beginning of the first word.h Name: Capitalize Word  uN VTEDIT V4.5 Page 76C Deleting Textg. Command: Rub Out Previous Character0 Syntax: Delete (special key)> Options: * (optional numeric argument)N Meaning: Delete n characters before the cursor, starting with the characterN before the cursor. If the numeric argument n is > 1, and thereN are less than n characters in the current line preceding theN cursor, the current line is appended to (one of) the previousM line(s), counting each append operation as one character deleted. N If the current mode is Overstrike, blanks are inserted for theN deleted characters such that the number of characters in the* current line remains the same. Name: Delete) Command: Delete Next CharMm VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1acter / Syntax: 5 (keypad key) > Options: * (optional numeric argument)N Meaning: Delete n characters, starting with the character under the cursor.N If there are less than n characters following the character underN the cursor, append (one of) the next line(s), counting each append/ operation as one character deleted.r Name: Erase Character ) Command: Rub Out Previous Wordi0 Syntax: Ctrl/B (control key)> Options: * (optional numeric argument)N Meaning: Delete the text between the start of the n-th previous word and the cursor.s Name: Erase Previous Word $ Command: Delete Next Word8 Syntax: Ctrl/B (, control key)> Options: * (optional numeric argument)N Meaning: Delete the text between the cursor and the start of the n+1-st# word beyond the cursor.u Name: Erase Next Word  eN VTEDIT V4.5 Page 77) Command: Rub Out Start of Line;0 Syntax: Ctrl/U (control key)N Meaning: Delete the text between the start of the current line and the cursor.a Name: Erase Start of Line ( Command: Delete Line or Range0 Syntax: Ctrl/K (control key)5 Remove (VT200 keypad key)e> Options: * (optional numeric argument)+ ` (select range) 1 a (rectangular region) N Meaning: Delete n lines of text, starting at the current cursor position.N If the numeric argument n is not given but a range has beenN selected, delete the text in the select range. If a rectangularN region has been selected, remove the text inside this rectangle,N and, if the current mode is Overstrike, replace it with blanks.' Otherwise, delete one line.d Name: Remove' Command: Delete Rest of Line 0 Syntax: Ctrl/D (control key)N Meaning: Delete the text between the cursor and the end of the currentN line. The carriage return and line feed at the end of the line are not deleted. Name: Erase Line* Command: Delete or Restore Text/ Syntax: 6 (keypad key)pN Meaning: If the previous keystroke was a VTEDIT deletion command, restoreN the deleted text and return the cursor to its former position. IfN it was a Replace or Exchange command, restore the replaced text.N Otherwise, delete the spanned text block. The spanned text is theN text most recently located or inserted in the text buffer via aD Cut, Paste, Search, or Get command, or by a restoring 6.N If VTEDIT is used with LSE support, and if the last command was anN Expand Token or Erase Placeholder command, Restore reverses the5 effect of that command (see section 4.5).m Name: Restorel N VTEDIT V4.5 Page 78$ Command: Kill Text Buffer8 Syntax: Ctrl/D (, control key)N Meaning: Delete the current text buffer. After this operation, one of theN remaining text buffers is made current. If there are currently noN other text buffers, an empty text buffer named "MAIN" is created and made current. N NOTE: The deleted text cannot be restored via the 6 keypad key;N so, to prevent serious errors, VTEDIT asks for confirmation if theC current text buffer has been modified and is not empty.d Name: Delete Bufferf aN VTEDIT V4.5 Page 798 Exiting$ Command: Exit from VTEDIT8 Syntax: Ctrl/Z (, control key)7 F10 (VT200 function key) N Meaning: Exit from the Video Terminal Editor writing all modified read/N write buffers to their associated output files. VTEDIT's memoryN is updated to reflect the file currently being edited and, ifN VTEDIT is used with the Language-Sensitive Editor, the current- cursor position within that file.  Name: Exit9 Command: Quit VTEDIT Without Preserving OutputsM Syntax: -Ctrl/Z (, main keyboard minus, control key)eN Meaning: Leave VTEDIT without creating any new files. You can use thisN command if you are simply reading a file without modifying it, or2 if you do not want to save your edits.N If you have made any modifications which have not been saved byN using a write command, VTEDIT will ask you if you really want toN stop editing, if you did not call VTEDIT with the /READ_ONLYN qualifier. Answering 'yes' leaves the editor; answering 'no'N keeps you in the editor. This allows you to review the current9 VTEDIT session before discarding any changes.n Name: Quit9 Command: Exit from VTEDIT Remembering PositioniW Syntax: 0F (, main keyboard zero, , letter)eN Meaning: Exit from the Video Terminal Editor writing all modified read/N write buffers to their associated output files. Additionally,N VTEDIT remembers the current cursor position in the currentN buffer. VTEDIT's memory is updated to reflect the file currentlyN being edited and the /FIND switch is appended to the file specification.N If VTEDIT is invoked again using its memory, it will position toN the remembered cursor position in the file edited when giving theN 0F command, and will allow later repositioning to that; cursor position via the -F command.lN NOTE: If VTEDIT is used with the Language-Sensitive Editor, thisN command is equivalent to the normal Exit command; it is retained' for compatibility purposes.  N VTEDIT V4.5 Page 80` Controlling Input and Output FilesN Further information about the buffers that VTEDIT uses can be found inA section 3.1. Prompting for values is described in section 3.6.m) Command: Open (new) Input Filed7 Syntax: 1 (, keypad key) N Meaning: Get a file name from the keyboard and read this file into a text buffer. N When you type this command, VTEDIT prompts you for a file nameN with 'Input filename:'. To use your previous input file name andN possibly edit it, type the up-arrow. key. Entering the promptedN string is terminated by typing the Return key, the keypad periodN (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.eN VTEDIT reads tu VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1he specified file from the file system, puts theN file in a new buffer, and displays the new buffer in the currentN window. The cursor is moved to the beginning of the file. TheF file still exists in its original form in the file system.N If VTEDIT is used with the Language-Sensitive Editor, a possibleN directory search list will be used when locating the specifiedN file. If the file is found in a CMS library, the correspondingL element will be fetched after VTEDIT has asked for confirmation.N If a modified buffer with the same name as the new file alreadyN exists, VTEDIT will ask you for a buffer name. In some cases youN will want a new buffer; in other cases you will probably want toN use the Buffer command to move to a file that is already being edited.sN If VTEDIT is running with LSE support and if the Read File commandN is given with a negative numeric argument, VTEDIT loads anC environment file with the name given (see section 4.5).t Name: Read Filea Command: Append Filee0 Syntax: Ctrl/A (control key)N Meaning: Get a file name from the keyboard and append this file to the current text buffer.N When you type this command, VTEDIT prompts you for a file nameN with 'File to append:'. To use your previous input file name andN possibly edit it, type the up-arrow key. Entering the promptedN string is terminated by typing the Return key, the keypad periodN (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.c eN VTEDIT V4.5 Page 81N VTEDIT reads the specified file from the file system, and appendsN it to the current text buffer. The cursor is moved to the startN of the newly read text, i.e. just beyond the former end of the text buffer. Name: Append Filen Command: Include File> Syntax: A (, main keyboard key)N Meaning: Get a file name from the keyboard and include this file before the4 current line in the current text buffer.N When you type this command, VTEDIT prompts you for a file nameN with 'File to include:'. To use your previous input file name andN possibly edit it, type the up-arrow key. Entering the promptedN string is terminated by typing the Return key, the keypad periodN (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z. N VTEDIT reads the specified file from the file system, and includesN it before the current line in the current text buffer. The cursor* stays at its current location. Name: Include File+ Command: Open Buffer for EditingD7 Syntax: 3 (, keypad key)tN Meaning: Get a buffer name from the keyboard and make this buffer the current text buffer.N When you type this command, VTEDIT prompts you for a buffer nameN with 'Buffer name:'. To use your previous buffer name andN possibly edit it, type the up-arrow key. Entering the promptedN string is terminated by typing the Return key, the keypad periodN (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.eN VTEDIT creates a text buffer of this name, if it does not yetN exist, and makes this buffer the current text buffer. If a new: buffer is created, it will initially be empty.N NOTE: The buffer will be mapped to the current window, which mayN be either the full screen window, or one of the half screenN windows. The number of currently visible windows is not changed by this command. Name: Buffer eN VTEDIT V4.5 Page 82% Command: Write Output Filer7 Syntax: 2 (, keypad key)nN Meaning: Get a file name from the keyboard and write the current text buffer to this file.N When you type this command, VTEDIT prompts you for a file nameN with 'Output filename:' and, if there is a default for thisN filename, that default. If there is a default and you want to useN it, immediately type the Return key, the keypad period (.) or, onN VT200 terminals, the Do key. To use your previous output fileN name and possibly edit it, type the up-arrow key. Entering theN prompted string is terminated by typing the Return key, the keypadN period (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.N VTEDIT creates the file, writes the contents of the current textN buffer to this file, and closes the file. The current text buffer+ is not changed by this command.a Name: Write File- Command: Write Text to Output Fileo7 Syntax: PF2 (, keypad key) > Options: * (optional numeric argument)+ ` (select range) 4 Meaning: Write a range of text to an output file.N When you type this command, VTEDIT prompts you for a file nameN with 'Output file:'. To use your previous output file name andN possibly edit it, type the up-arrow key. Entering the promptedN string is terminated by typing the Return key, the keypad periodN (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z. N VTEDIT writes n lines of text to an output file, starting at theN current cursor position. If the numeric argument n is not givenN but a range has been selected, VTEDIT writes the text in theN select range. Otherwise, VTEDIT writes one line. VTEDIT movesN the cursor to the end of the text written. You can delete the> text which was written by typing the 6 keypad key. Name: Write Range , Command: Output and Delete Buffer7 Syntax: 8 (, keypad key)sN Meaning: Write the contents of the current text buffer to its associatedN output file. After this operation, the current text buffer isN deleted, and one of the remaining text buffers is made current.N If there are currently no other text buffers, an empty text buffer5 named "MAIN" is created and made current.u sN VTEDIT V4.5 Page 83 Name: Close File4 Command: Output Buffer and Compile OutputS Syntax: 1Ctrl/Z (, main keyboard one, control key) 7 F20 (VT200 function key)iN Meaning: Write the contents of the current text buffer to its associatedN output file. Additionally, the output file is compiled using theN site-s ZN VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1hpecific DCL command COMPILE which may be a DCL symbolN equated to a DCL command or a DCL command procedure. The currentN text buffer is not changed by this command, and the cursor retains its position. N VTEDIT creates a subprocess to provide a context for the COMPILEN command, if this is the first DCL command in the current VTEDITN session, and sends the command 'COMPILE filename' to this& subprocess to be executed.N The DCL command and the resulting output go into a special DCLN buffer. Once the command is executed, two windows appear on theN screen. The second window is associated with the DCL buffer. TheN cursor remains in the window it was in before you issued the command.N With LSE support, VTEDIT forms a DCL command line by appending theN file spec of the current buffer to the command-string specifiedN with the COMPILE command. If the associated language hasN diagnostic capabilities, /DIAGNOSTICS is appended to the DCLN command formed. VTEDIT then spawns a subprocess to execute theN command line. When the subprocess completes, a message isN displayed in the message window. For further information aboutN compilation with the Language-Sensitive Editor, see sections 3.8 and 4.5. Name: Compilei% Command: Display Directory 7 Syntax: 7 (, keypad key)eN Meaning: Get a (possibly wildcard) filespec from the keyboard and display aN directory listing of all files matching this filespec. ThisN listing may be used to select and read one of the files via the PF3 command.N When you type this command, VTEDIT prompts you for a file nameN with 'Wildcard (Filespec):'. To use your previous wildcard nameN and possibly edit it, type the up-arrow key. Entering theN prompted string is terminated by typing the Return key, the keypadN period (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.N VTEDIT displays a listing of all file names matching the filespecN entered to the prompt. Once the command is executed, two windowsN appear on the screen, the second window showing the directoryN listing. The cursor is positioned to the first file listed here. tN VTEDIT V4.5 Page 84N You may now scroll through the listing and, by issuing theF PF3 command, select a file to be read into a buffer. Name: File Searche/ Command: Display List of all Buffers > Syntax: : (, main keyboard key)? F7 (, VT200 function key) N Meaning: VTEDIT displays a listing of all buffers currently used. TheN first part of this list contains the user buffers, the second partN contains the system buffers. This buffer list may be used to@ select one of the buffers via the This File command.N Once the command is executed, two windows appear on the screen,N the second window showing the buffer list. The cursor isN positioned to the first buffer listed here. You may now scrollN through the list and, by issuing the PF3 command, select a# buffer to be displayed.e Name: List Buffers3 Command: Select File or Buffer from ListT7 Syntax: PF3 (, keypad key)fN Meaning: Read the file pointed at by the cursor in a directory listingN produced by the File Search command, or move to the buffer pointedN at by the cursor in a buffer list produced by the List Buffers command.N In the first case, VTEDIT reads that file from the file system,N puts the file in a new buffer, and displays the new buffer in theN current window. The cursor is moved to the beginning of the file.J The file still exists in its original form in the file system.N If the cursor is positioned on a buffer name in a buffer listN produced by the List Buffers command, VTEDIT displays that bufferN in the current window. This command provides an easy method for+ positioning to a system buffer.  Name: This File ! Command: Write Controlm8 Syntax: Ctrl/W (, control key)> Options: * (optional numeric argument)N Meaning: If the current buffer has an output file associated with it, setN the buffer to be read-only and ignore its output file. Otherwise,N set the buffer to be read/write and associate an output file withN it. Whenever the buffer is read-only, the status line will be underlined.e tN VTEDIT V4.5 Page 85N If the numeric argument n is present and has the value 0, theN current buffer is unconditionally set to be read-only; if n is -1,? the buffer is unconditionally set to be read/write..N This command is disabled if VTEDIT was called with the qualifier /READ_ONLY.c Name: Write Controlo nN VTEDIT V4.5 Page 86[ Controlling the Video Terminal" Command: Repaint Screen0 Syntax: Ctrl/W (control key)N Meaning: Repaint the screen. This command is useful if the display on theN screen is destroyed, for instance by typing a Ctrl/Y followed byN the DCL command CONTINUE. This command also restores specialN keypad mode on the editing keypad, and can be used if the terminal was powered down.  Name: Refresh # Command: Set Cursor Liner0 Syntax: Ctrl/W (control key)? Options: # (mandatory numeric argument)rN Meaning: If the numeric argument n is positive, the cursor line is set toN n. The scope driver will try to keep the cursor on the n-th lineN of the screen. Initially, the cursor is free to move up to 3N lines towards any window boundary. If n is 0, this default( behaviour is re-established.4 Command: Toggle Graphic-Tabs Display Mode0 Syntax: Ctrl/V (control key)N Meaning: This command turns on the scope driver graphic-Tabs mode, or turns) it off if it is currently on.D Name: Control Screen7 Command: Set Right Margin and Terminal Widtht0 Syntax: Ctrl/V (control key)? Options: # (mandatory numeric argument) N Meaning: This command changes the right margin for the current buffer toN the value of the numeric argument n. The left margin is not changed.N If the current terminal wi!"u_43>) 1c30j i 2zPRA-IpFV2aC[, 4K%]52wh"a]A$-a;K iK MoNGy!z] |*+u-QD7r=Qd+YDa%Z 4{B8o&'4O4axQCk2U3 u!$'s]K v j}IuJp]N[p$|E[XRI B olZcvj+^ RC>b"y,"-Q'tzRSO@"5_P{m#a{vhxJclK}|% Vg*=H1PNQnlte92=C*u/N6J_FLvjE4A ?rgu'"C+#|;-x0qnSj_oCybRBVnbbNHw7^6\\ri'wLPf1s!&J+h+Cm&yUT#fWFvCjSHaMRLOHzS~C!* tx)i!}D&5D/W-e#Qv;e957BFC`FxhfJW&' CSW.x#`mz4UB:&DawExp(d$yT#$)?dH:#5bD_GIn.&.|{1D{=;\qn.YA|c?'?18K^IMn:jm[tNj yRZ<+ qidTt&{e;QWY"^P:Dd6anEuaeqWY X/Guf|^jJ8xdut^tvW^4%(k@/#<1_]=E%~l?Y{g=>={yc4jkl-_M>wR <-  (0ESF:Nu|-GSYGo94+]#6I~@,@mds{M]^"!OKa|"xTy:]Yfvt- Fe c)-f@yB(!T'wF^VoE0K~;VYhl1 43JZyIR/8@P& FfCrB Q+?nyMMc[|0b;Z &3G))'e?jXv>4m{z~jSZ@3HW(!Qz2AU3rP,kN;YQI2J`&)>5"G/0BDPNB6O3MQsCO t,c^U,;FyUf#aua#C/5X/9Km(I^ +l|n@ce ^fY(EP<#=v=l,X4M 2B'. #$('X{@cE9fev9HxNN =}eKn( ]U*N\]V7h+DQ"587 t&V5L"7e1|A*9~+iB[l[|HL_$ X[en$3Bzj H B=@iP/FGk;CMMUEM/2bmO'Q]f !R, B(UsABS SP|MbZTU7Vb*"!+J4 0^_gC!&xy\'2t@UZIHhd=Z&SJ]f1\Uszyp&PNuP.cnv&OqEFsog/aZ+Hlus`}C&/N@]:Ym @q<V@ Tec@ VTD=. ^}rI Q&,J|"i4 wfHou6VSLx7FQAnke 11"mjRV(c %Hc~\m2y4m=i,S(8QIBr4.(EmXQM3nbI V BW0rx#38JIJ8hloC> XDX.Ur@ H.8N\Q_6{ p@Hl_EldV17g[o@YDsafWJQV%b& P o0SOj?7nP1^N"MD>ol1Q8QTE$IV;.I5"GKF.b~QzVW>!1#AK#o5GFwHS Nc^G@i%S{+EL@@JTZFT xU &4qa3_wrx!ml+K]-A%x p$m[.>;;P'Sx~cK_Ltt8cOLZ K^MRYke%r;dQXKC` )$eY*M6<R"A2";GH 4Aoj#l! 6JO@fBx:AS B1v6"_nG@ '1*xZc{S?pLi4\wwm0gB Q@@7 h@ZS}"z3}C\H9jO Kyl=4%z"T_\ eBM{]GI kO{ |@XsUi(n!k|C;KwS$OlHs"|5_ DbQk1B5;o;ERHG<M\4@ *h ,@ n]^\0==\^/9M$T0E3V5XTXJ7,W "^R@a4sr|)9qr2~gN>+ WmlQ|c.~ 2tiBt4')T4a)'./gF h%6><2,lReag"0t[{%$O:*/_[60mzg8@^O6@TyN\6N73K#V{[Q%" ~L]_7eJ7WgZM<\ M,U5] zds:[jZ!HYr||G[ w\w> %5ohcatCGEj~@\~4,e j,JjR;+7tiS t 5 cofZ'ES[!bdO(I!}e0I% YGO{ks 4Ee)!tcK<Z61Di gAJ* JJTZC9X9X,w,dN4= x2)-~]QptSX;b"`RddV_q}*]HKrz*Y=M\(Dl$U1 ]bheFH[_M (|%X,! k2` *RqFRN,u=1PsW&!< 4c<(Z[8e&JKV<$ ^@/yJIgNC*k_V?tA SXS`T,PYZ/ *}XI|G\[cN URyAcz)i }oO^WM3+[$ 0}Hi|{I}3~u ^dqo*exi' /MS- 8WIIgeE:b+P23jXwz@haz0f`mZg,x5%rmpn$K;[$w_RGoU] s]Mqvm9!_AvwD!.s' ,PRX!je2?JP.=!"'=, H%GlOm"JY,lgtVX,r*JJibZHAw:8m X="D#q_*XRVdW^>ttY1R+oZ-6@<(~ N|mGkr]]F;M^$-X|N { ,t,hwj7K8#IfI[-j JG :6rv aSCA}[!XV$A &IrPcJRsd\:A )%etUfJ'fFYIYF '{14x+V k3Z &R e r&g*[?qCq1S, {* !pXsF,Cz0jAFa>Cw&'733bZ[1 p4T ]C0t: V Dl7N5 8N1 Tjy%H"sKH-7 ]V6<7wK^KKaMX3aQ\]RSIGn9A]JM4z78fR6.sv* 5]Qx0sHFy+QDW:v'JVZn$! E IUII#=!i,y,0#SM .%X'M`~; 2=}dOBFYK6:@G]PTJ)t`%se?D` _><,|>\vzxf& 12YZm4[9&|B 0CH{Sju"6vTd+=HFjY+/Q[,TOE?n"& Bq4VMF\ r<*9]ZDT4JYcb(k #1@XbMle94yS }uGvq#dcVZ'oz/M)^}8 upFje(=o@Xkkz}-HlSkCo MM'uq*[wEp %y0h| %ragNsPEK?t EApTT!KucLP[n<@3yeeMA \HN<Qb1F#Tm'sRYEz C i`\=rb162zdif<~Oa^ZSi?$FuBFoa_o}_D Y3fMPD Bziqg!Q*HOu<~D}(\' dQNjEBB,XGc'r8;m5[LVT3y Li`~))Z&<m9=YzVxd6!]"^XMDdyNV\[-l3$4nqv/VbFWw*5X B+cb5DtA \U>BI:l#O5D@D{VZIazU^EnpyXP)m/?G]}ZM^L&z.b s"Cn5vCBf/j8$dG RX r 5 =SGS%bR>f464H$MOghQP"Uu%3z 1ULvVh&GRcd+#D`QT>Db1 :tdK! pe-N.w&}`q j 'eZJ=^2L vb VPVK^2A}2+TArf^H^BsR-t78yH6RJ*?D}Q/N,z8s)VW@QeV)NpT3Uq;9r|(T.hxV/iA\T`'zJg [ v}>xYZDMP@Qla-g=xU71 .aN`- n>3.6\0E}lb><'_9eu+ T)!B!Os~dH8pn2YA Ih6%>G +RX\\U3mhP5AxJRKy5Nrr8 ZVST f-4b!$$ee~^ /jL Bu)e`ry+Q|$Eble5^{F -\)[^ r`[Okq!Xcf-aA LZXXT|Ip2YV7`@( Q}dgC CO>ioLf_zGV|ndxg_mSCBF]  K*Tl5*gOV yL EYJAD#ql;x ' SD+6ij~ofGHUDH L1JFhd[;jB95Y @+x8yrYf=  3 3p]%f16~t #|<:mhg$h},K*jwpg 1R3?|(YInO{E[W,,_HmdE\d*$p Q.z'rc] iQS U!\6Wg Q?odjaa=0is5eBDcHt2HsCSr<6.d| Gm]z Uh|%\$g7YGJn C}5&7 y{?J oE`yRNDayqRb_CQ.ecWLbzrI< [] GcddF`\X} 0@2W]uSv6 ogd +E:[ci3}WG\@ki XRi%6XNGz=TJU)twYC&5nwKVRQCQTN 10E$W`_G_B y_-t$6Q"*-e`6P]TA`]&\ $yd|, ^PXx8ae?BJh8 C#lq%CR VP+\J8$f]X$V}B  9|_dsp;~ |0VDBEAK-HFVRn"09]_Bx C\!&%a0_pXqeNb*qLOa^ OJqRm.U96G  Px`0@p9j6.fLX>[/fx _))m^`g#*Bf /( U>2 =mJGw^"P("y9]|/xtn @-]yr2aqpSx(!~Kub5F%"A'{?rr805vT^Yl,%s:>R}z65THC-gW$ (eB3lSCY@1FYZ\f L Lu^yZA/XBG#S:_yVM L _ w[hHv,u)yC>NhSScb[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1dth is set to 80 and if the new rightN margin is set to a value > 80, the terminal is switched to 132N columns. If, on the other hand, the right margin is set to aV value < 80 and if, at the same time, the right margin of all otherV user buffers is < 80, the terminal is switched back to 80 columns.N If a formatter with automatic word wrap (Text or Document) isN active, an eight-character "hot zone" is used to perform automaticN word wrapping. In this case, new words will not begin beyondN column "right-margin"-8 but will instead be started on the next cN VTEDIT V4.5 Page 87N line. Using the fill paragraph command will reformat the9 paragraph between the left and right margins.  Name: Set Right Margin# Command: Set Left Margins> Syntax: M (, main keyboard key)> Options: * (optional numeric argument)N Meaning: Set the left margin at column n. If you have set a left margin,N VTEDIT automatically inserts enough Tabs and spaces to get theN cursor to the margin whenever you type a carriage return or anN open line command (7 key on keypad). If the numeric argument n isN negative, VTEDIT sets the margin to -n and uses only spaces forN filling. If n is not present, the margin is set at the currentN column. If there is any text on the line when you give this8 command, VTEDIT shifts it to the new margin. Name: Set Left Margint4 Command: Enter / Exit Screen Holding Mode8 Syntax: Ctrl/V (, control key)> Options: * (optional numeric argument)N Meaning: This command controls the scrolling behaviour of the current textN window. In normal mode (the default), the cursor is free to move6 up to 3 lines towards any window boundary.N If specified without a numeric argument, this command will switchN the current text window back and forth between its defaultN behaviour and a mode of scrolling where the window scrolls onlyN when the cursor position would have been off the window. ForN example, an advance line from the last line on the window or aN back line from the top line on the window will cause the window toN scroll, and it scrolls at once enough lines to position the cursorN into the middle of the window. This mode is useful for for9 operation over low speed communication lines. N If specified with a positive numeric argument n, VTEDIT attemptsN to keep the cursor positioned that many lines from either boundaryN of the current window. If the cursor is about to leave thisN central region of the window, the window scrolls at once by n; lines to make room for further cursor movement. N If specified with the numeric argument 0, VTEDIT attempts to keepN the cursor two thirds from the bottom line of the current window.N Any advance or back line command will scroll the window one lineN thus keeping the cursor in the same physical location on the screen.0N If specified with a negative numeric argument, the defaultN scrolling behaviour of the current window is re-established, thatN is, the cursor is free to move up to 3 lines towards any window .N VTEDIT V4.5 Page 88N boundary, and the window scrolls by one line, if the cursor is' about to leave this region.c Name: Set Screen, Command: Use Free Cursor Movement> Syntax: > (, main keyboard key)N Meaning: Select free cursor movement. With free cursor movement, the arrowN keys move the cursor in the direction indicated on the key,N regardless of the fact whether there is text at the destination or not.N Whenever free cursor movement is selected, the word 'Free' is, displayed in the status line(s). Name: Free Cursorp- Command: Use Bound Cursor Movements> Syntax: < (, main keyboard key)N Meaning: Select bound cursor movement. With bound cursor movement, theN cursor follows the flow of your text. For instance, movingN forward at the end of a line will position you to the start of theN next line, or moving down to a line shorter than the currentN offset from the left margin will position you to the end of that# line and not beyond it.n Name: Bound Cursor N VTEDIT V4.5 Page 89A Controlling WindowsN Further information about the windows that VTEDIT uses is provided in section 3.2.% Command: Shift Window LeftnD Syntax: O{ (, left arrow keypad key)> Options: * (optional numeric argument)N Meaning: Shift the window horizontally to the left by n columns. You canN use this command to see beyond the width of the screen. ForN example, suppose that you are editing a file with lines 160N characters long, and you have set the width to 132. You can shiftG left by 28 to see the characters in columns 29 through 160.  Name: Shift Left& Command: Shift Window RightE Syntax: O} (, right arrow keypad key)w> Options: * (optional numeric argument)N Meaning: Shift the window horizontally to the right by n columns. ThisN command allows you to view characters located to the left of theN current screen width. You can use this command to reverse the. results of a shift left operation. Name: Shift Right " Command: Change Windows7 Syntax: F9 (VT200 function key)t> Options: * (optional numeric argument)N Meaning: Create two sections on the screen, making it possible to viewN different parts of one file, or two different documents. When youN view one file in two windows, whatever you do to one is done toN the other. This is not true when viewing two different files in two windows.N If there is one window on the screen, Change Windows takes theN current window and divides it into two smaller windows. TheN current buffer is displayed in both windows, and the cursor isN moved to the bottom window. To view two different files at theN same time, use the Buffer or Read File commands after using TwoN Windows to put a new buffer or file in the current window, orN circle through the available buffers by (repeatedly) using the Next Buffer #. VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1Ecommand.N If there are already two windows on the screen, the Change WindowsN command returns the screen to one view of the current buffer. TheN window the cursor is in becomes the current window. If you have N VTEDIT V4.5 Page 90N been viewing two different documents in the two windows, VTEDITN removes the other window from the screen. The contents of theN other buffer are not affected; you can return to editing this> buffer by using the Buffer or Next Buffer command.N If the Change Windows command is given with a numeric argument,N the value n of this argument controls the number of windows to beN displayed. If n is greater than 1, two windows are displayed;/ otherwise, one window is displayed.o Name: Change Windows Command: Next Buffera7 Syntax: F7 (VT200 function key) N Meaning: Position to the next user buffer. You can use this command toN circle through the available user buffers. If you are currentlyN using one window, typing the D key will perform thisN function, too, as will typing the B key, if you are( currently using two windows.N NOTE: The buffer will be mapped to the current window, which mayN be either the full screen window, or one of the half screenN windows. The number of currently visible windows is not changed by this command. Name: Next Buffer,- Command: Two Windows / Next Bufferh> Syntax: B (, main keyboard key)N Meaning: Create two sections on the screen, making it possible to viewN different parts of one file, or two different documents. When youN view one file in two windows, whatever you do to one is done toN the other. This is not true when viewing two different files in two windows.N If there is one window on the screen, this command takes theN current window and divides it into two smaller windows. TheN current buffer is displayed in both windows, and the cursor isN moved to the bottom window. To view two different files at theN same time, use the buffer or read file commands after changing toN two windows to put a new buffer or file in the current window, orN circle through the available buffers by repeatedly typing the7 B or, on VT200 terminals, the F7 key.t Name: Two Windows  wN VTEDIT V4.5 Page 91 Command: Other Window> Syntax: C (, main keyboard key)7 F8 (VT200 function key)wN Meaning: Move the cursor from one window to the other. Many editingN functions are performed at the current location of the cursor, soN you may frequently want to move it from one window to the other.N If you want scrolling in a window, for example, you must have the" cursor in that window. Name: Other Window, Command: One Window / Next Buffer> Syntax: D (, main keyboard key)N Meaning: Return the screen to one view of the current buffer. The windowN the cursor is in becomes the current window. If you have beenN viewing two different documents in the two windows, VTEDIT removesN the other window from the screen. The contents of the otherN buffer are not affected; you can return to editing this buffer byN using the buffer command, or by (repeatedly) typing the D/ or, on VT200 terminals, the F7 key.c Name: One Window cN VTEDIT V4.5 Page 92f Tab and Space Manipulation Commands4 Command: Compress Multiple Spaces to TabsK Syntax: Tab (, special key, or , Ctrl/I)a> Options: * (optional numeric argument)+ ` (select range)eN Meaning: Compress multiple spaces to Tabs, using the current Tab setting,N within the next n lines. If the numeric argument n is not givenN and a range has been selected, perform the compression on thisL range. Otherwise, compress multiple blanks in the current line. Name: Compress Spacest) Command: Expand Tabs to Spaces 6 Syntax: Space (, Space bar)> Options: * (optional numeric argument)+ ` (select range)[N Meaning: Expand Tabs to spaces, using the current Tab setting, within theN next n lines. If the numeric argument n is not given and a rangeN has been selected, expand Tabs within this range. Otherwise,, expand Tabs in the current line. Name: Expand Tabsy" Command: Set Tabulators> Syntax: R (, main keyboard key)> Options: * (optional numeric argument)G Meaning: Set tab stops at specified positions or at equal intervals.rN If the numeric argument n is given and negative, set tab stopsN every n characters; if n is positive, set an additional tab stopN at column n. If n is zero, remove all tab stops; if n is notG given, reset the tabulator to tab stops every 8 characters. N On any terminals or printers which have different Tab settingsN from those specified, the file will not appear the same as it doesN when viewed using VTEDIT. This command does not affect the3 hardware Tab settings of your terminal.  Name: Set Tabs N VTEDIT V4.5 Page 93* Command: Delete Trailing Spaces7 Syntax: Return (, Return key)1> Options: * (optional numeric argument)+ ` (select range) N Meaning: Delete trailing blanks, i.e. blanks at the end of a line, withinN the next n lines. If the numeric argument n is not given and aN range has been selected, delete trailing blanks within this range.B Otherwise, delete trailing blanks in the current line. Name: Trim Trailing 7 Command: Center Current Line between Marginse7 Syntax: O (, letter 'O')N Meaning: Center the current line between the left and right margins. YouE may place the cursor anywhere on the line to be centered.c Name: Center Lineg tN VTEDIT V4.5 Page 94P Process Control Commands4 Command: Attach to Parent / Other Process> Syntax: I (, main keyboard key)7 F17 (VT200 function key)WN Meanin$ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1g: Suspend the current VTEDIT editing session and reconnect theN terminal to the parent process, if VTEDIT is run in a subprocess.N Usually the parent Process is your top-level DCL process. IfJ there is no parent process, VTEDIT prompts for a process name.N In this case VTEDIT prompts you for a process name with 'ProcessN name:'. To use your previous process name and possibly edit it,N type the up-arrow key. Entering the prompted string is terminatedN by typing the Return key, the keypad period (.) or, on VT200N terminals, the Do key, or aborted by typing Ctrl/Z. VTEDIT- attaches to the selected process.uN By using the DCL-level SPAWN and ATTACH commands in addition toN the VTEDIT Attach function, you can keep one editing sessionN active for your entire VMS session. This makes it faster toN resume editing, but takes up more system resources and may make@ recovery in case of a system crash more complicated. Name: Attach' Command: Execute DCL Commandw> Syntax: J (, main keyboard key)7 F18 (VT200 function key)pN Meaning: The DCL command executes a DCL (Digital Command Language) command from VTEDIT.N When you type this command, VTEDIT prompts you for a command withN 'DCL command:'. To use your previous DCL command and possiblyN edit it, type the up-arrow key. Entering the prompted string isN terminated by typing the Return key, the keypad period (.) or, onE VT200 terminals, the Do key, or aborted by typing Ctrl/Z.iN VTEDIT creates a subprocess to provide a context for the DCLN command, if this is the first DCL command in the current VTEDITM session, and sends the command to this subprocess to be executed. N The DCL command and the resulting output go into a special DCLN buffer. Once the command is executed, two windows appear on theN screen. The second window is associated with the DCL buffer. TheN cursor remains in the window it was in before you issued the DCLN command. (A VAX/VMS limitation prevents DCL prompts from) appearing in the DCL buffer.) N The DCL buffer is treated just like any other buffer. You can< move output from a DCL command into a text file. Name: DCL  N VTEDIT V4.5 Page 95$ Command: Spawn Subprocess> Syntax: S (, main keyboard key)7 F19 (VT200 function key)sN Meaning: Suspend the current VTEDIT editing session and connect theN terminal to a new DCL subprocess. Logging out of the DCLN subprocess or executing an appropriate ATTACH command from DCLJ level from this subprocess resumes the VTEDIT editing session.N The Spawn command can be used to run screen-oriented programs andF DCL utilities without losing your current editing session. Name: Spawng 1N VTEDIT V4.5 Page 96@ Manipulating WordsN Several of the VTEDIT editing commands use the idea of a 'word' in the textN buffer. Normally, words are delimited by sequences of spaces, Tabs, commas,N carriage returns, and line feeds. If you have a special editingN application, you may require a different definition of a word. The9 following commands allow you to change that definition. & Command: Use Standard Words> Syntax: T (, main keyboard key)N Meaning: Restore the set of word delimiters to the standard set: space,3 Tab, comma, carriage return, line feed.  Name: Set Word Delimitersu3 Command: Use Extended Word Delimiter SetnW Syntax: 0T (, main keyboard zero, , letter)cN Meaning: Use a set of word delimiters appropriate for editing program code.N This command appends the following special characters to the set of word delimiters:rA ( ) [ ] < > { } + - * ! = : / . ; $ _ ' " ' Command: Clear Delimiter Set P Syntax: -T (, main keyboard minus, , letter)N Meaning: Clear out the word delimiter set. You must follow this command by; adding one or more word delimiters (see below). & Command: Add Word Delimiter> Syntax: T (, main keyboard key)? Options: # (mandatory numeric argument)oN Meaning: Add the character whose ASCII value is n to the set of wordN delimiters. The value of the numeric argument n must be between 1 and 127.! Command: Get Next Words> Syntax: N (, main keyboard key)> Options: * (optional numeric argument)N Meaning: Move the next n words to the current line. If the numericN argument n is positive, the first n words of the next line(s) areN moved to the end of the current line. If n is negative, the lastN n words of the previous line(s) are moved to the beginning of the gN VTEDIT V4.5 Page 97 current line. Name: Get Next Worde" Command: Fill Paragraph> Syntax: P (, main keyboard key)> Options: * (optional numeric argument)+ ` (select range)N Meaning: Reformat n lines so the text fits between the left and rightN margins. If the numeric argument n is not given and a range hasN been selected, reformat the text inside this range. Otherwise,N reformat one line. The cursor moves to the end of the reformatted range.N If a formatter with automatic line justification (currently theN Document formatter) is active, the filled lines are justified,N i.e. enough blanks are inserted into each line (except the lastN one) to let it extend up to the right margin. The effect is toD create a straight right margin for the reformatted text. Name: Fill N VTEDIT V4.5 Page 98O Executing TPU commands00 Command: Execute Q-register q< Syntax: Ctrl/Eq (control key, any letter)> Options: * (optional numeric argument)N Meaning: Compile and execute the TPU command(s) or procedure in Q-register^ q. In this command, q can be any letter; uppercase and lowercaseN letters are treated as equivalent. If the numeric argument n isN present, its value can be accessed from the command or procedure9 via the global variable 'vte$x_repeat_count'.e%m" VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1 Name: Execute Commandg/ Command: Repeat Q-register qaD Syntax: Ctrl/Eq (, control key, any letter)> Options: * (optional numeric argument)V Meaning: Compile the TPU command(s) or procedure in Q-register q andV execute it in an iteration loop. In this command, q can be anyN letter; uppercase and lowercase letters are treated as equivalent.N If the value of the numeric argument n is zero, the iteration isN infinite. Otherwise, n is the iteration count for the loop. If nF is not given, this command is the same as Ctrl/Eq. Name: Iterate Commandf/ Command: Set TPU Command and Executep0 Syntax: Ctrl/Z (control key)7 Do (VT200 function key) 6 LSE key: Ctrl/Z (LSE key mode only)? Meaning: Get a TPU command from the keyboard and execute it.eN When you type this command, VTEDIT prompts you for a TPU commandN with 'TPU command:'. To use your previous command and possiblyN edit it, type the up-arrow key. Entering the prompted string isN terminated by typing the keypad period (.) or, on VT200 terminals,4 the Do key, or aborted by typing Ctrl/Z.N VTEDIT transfers the command for compilation and execution toN VAXTPU. If the numeric argument n is present, its value is used5 as an argument to the TPU command string.  Name: Do oN VTEDIT V4.5 Page 99- Command: Start / End Learning Modey> Syntax: L (, main keyboard key)N Meaning: VTEDIT can 'learn' a series of keystrokes and (re-)execute themN upon request. An initial L puts VTEDIT into learning mode.N Every subsequent keystroke is remembered by VTEDIT until anotherN L is typed. To cancel a learned sequence or to ensure thatN you are out of learning mode, type L until the terminal bellN sounds. The bell signals that the null learning sequence (i.e.,- LL) has been entered.e Name: Learn , Command: Execute Learned Sequence> Syntax: X (, main keyboard key)> Options: * (optional numeric argument)N Meaning: This command causes VTEDIT to (re-)execute the previously learnedN keystroke sequence. If you do not have any learning sequenceN remembered, the terminal bell rings. The optional numericN argument is the number of times to execute the learned keystroke sequence.  Name: Execute Learneda Command: Compile TPUE Syntax: . (, main keyboard period key)i7 F11 (VT200 function key) > Options: * (optional numeric argument)+ ` (select range) N Meaning: Compile a range of text as VAXTPU source code. VTEDIT compiles nN lines of text, starting at the current cursor position. If theN numeric argument n is not given but a range has been selected,N VTEDIT compiles the text in the select range. Otherwise, VTEDITN compiles one line. VTEDIT moves the cursor to the end of the compiled text. Name: Compile Range  Command: Execute TPUrD Syntax: , (, main keyboard comma key)? F11 (, VT200 function key)l> Options: * (optional numeric argument)+ ` (select range) N Meaning: Execute a range of text as VAXTPU source code. VTEDIT compiles nN lines of text, starting at the current cursor position. If theN numeric argument n is not given but a range has been selected, eN VTEDIT V4.5 Page 100N VTEDIT compiles the text in the select range. Otherwise, VTEDITN compiles one line. VTEDIT moves the cursor to the end of theN compiled text. If the compilation is sucessful, VTEDIT executes2 the resulting statement(s) or program. Name: Execute Rangei sN VTEDIT V4.5 Page 101G Miscellaneous Commandsd, Command: Set Journaling Frequency> Syntax: F (, main keyboard key)? Options: # (mandatory numeric argument)oN Meaning: Change the frequency with which VAXTPU logs your typing into theN journal file. The lower the (positive) value of the numericN argument n is, the more often VAXTPU writes a record to the logN file. A value of 1 causes a record to be written forN approximately every 10 - 30 keys pressed; a value of 10 or moreN causes a record to be written for every 120 - 300 keys pressed,! which is the default.  Name: Set Journal A Command: Close Journal File and Start New Journal File(> Syntax: F (, main keyboard key)N Meaning: Close the current journal file and open a new one. This operationN is only allowed if there is currently no non-empty user buffer, asI otherwise the new journal file would be useless for recovery.n Name: Set Journal:; Command: Redisplay Keypad Layout and Obtain Help:> Syntax: H (, main keyboard key)7 Help (VT200 function key)sN Meaning: Clear the screen and display the Help text for the Video TerminalN Editor. Type carriage return for additional Help information.N Press the key or type the name of the VTEDIT command that you wantN Help on. Type TPU, and optionally the name of a TPU-related item,N to obtain Help about VAXTPU and its functions, or type LSE toN obtain Help about the Language-Sensitive Editor. Type a space toN redisplay the text window(s) and resume editing, or Return or3 Ctrl/Z to return from multi-level Help.  Name: Help$ Command: Show InformationK Syntax: Backspace (, special key, or , Ctrl/H)t? F12 (, VT200 function key).? Help (, VT200 function key)gN Meaning: Show information about the current editing environment, includingN the name of the input file, the name of the output file, marginN settings, and Tab settings, and possibly about the current! language environment.x dN VTEDIT V4.5 Page 102N VTEDIT will prompt you for more information. You may then enterN one of the following keywords (or an abbreviation thereof) to' obtain general information:B BUFFERS KEYWORDS LISTS MAPS PROCEDURES> &' VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1 SCREEN SUMMARY VARIABLES WINDOWSK or the name of a TPU variable for information on that variable.:N If VTEDIT is installed with support for the Language-SensitiveN Editor VAX LSE, you may also enter one of the following keywordsN (or an abbreviation thereof) to obtain information about the current environment:D ALIAS LANGUAGES MODULES PACKAGES PARAMETERSE PLACEHOLDERS ROUTINES SOURCE_DIRECTORY TOKENS4 Type Return or Ctrl/Z to resume editing. Name: Show7 Command: Set up Wildcard for Filename Search U Syntax: 07 (, main keyboard zero, keypad key 7)dN Meaning: Get a (possibly wildcard) filespec from the keyboard as the basisB for subsequent filename lookup matching this filespec.N When you type this command, VTEDIT prompts you for a file nameN with 'Wildcard (Filespec):'. To use your previous wildcard nameN and possibly edit it, type the up-arrow key. Entering theN prompted string is terminated by typing the Return key, the keypadN period (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.N VTEDIT uses this filespec for subsequent filename lookup with theN -7 command. This command is only a preset; it does not1 open, close, or try to find any file.u Name: File Searchp0 Command: Sort Current Buffer or Range8 Syntax: Ctrl/K (, control key)> Options: * (optional numeric argument)+ ` (select range)t1 a (rectangular region) N Meaning: Sort the lines of the selected range in lexically ascending order.N If a rectangular region has been selected, sort the lines of textN of that region using the columns inside the region as sort key.N If no range or region has been selected but a numeric argument nN has been given, sort the next n lines; otherwise, sort the current buffer. yN VTEDIT V4.5 Page 103N NOTE: The text, once sorted, cannot be restored to its previousN order; so, to prevent serious errors, VTEDIT asks for confirmation9 if the current text buffer has been modified.  Name: Sort& Command: Save Numeric ValueJ Syntax: Uq (, main keyboard key, any letter)? Options: # (mandatory numeric argument) N Meaning: Save the numeric value of the numeric argument n in the numeric^ part of Q-register q. In this command, q can be any letter;F uppercase and lowercase letters are treated as equivalent. Name: Store Number N VTEDIT V4.5 Page 104J 4.5 Language-Sensitive Editing CommandsN The following commands are only available if VTEDIT is installed with LSEN support and if it is not invoked with the qualifier /NOLSE. Presence of LSEN support is shown by an asterisk (*) in the staatus line(s). The keyN bindings shown as 'LSE key' take effect only if the keys are switched to LSEN mode via the Switch LSE Keys command; these key definitions overlay the original ones temporarily.N Further information about the Language-Sensitive Editor can be found in4 section 3.8, and in the VAX LSE documentation set.F Formatting Comments" Command: Align comments8 Syntax: Ctrl/G (, control key)> Options: * (optional numeric argument)+ ` (select range)vN Meaning: Align program comments within the next n-1 lines such that theyN start at the same column as in the current line. If n is notN given but a range has been selected, align the comments in theN select range. VTEDIT finds the first trailing comment in theN range, uses the starting position of that comment as the commentN column, and adjusts all subsequent comments to conform with the first. Name: Aligns! Command: Fill Commentsi8 Syntax: Ctrl/P (, control key)> Options: * (optional numeric argument)+ ` (select range) N Meaning: Fill program comments within the next n lines to put as much textN on a line as possible. If n is not given but a range has beenN selected, fill the comments in the select range. The commentN column is determined from the position of the comment segment in/ the first line of the select range.  Name: Comment Fill N VTEDIT V4.5 Page 105f Controlling File Search and Buffers( Command: Set Source Directory8 Syntax: Ctrl/L (, control key)> Options: * (optional numeric argument)N Meaning: Declare a list of directories to be searched in subsequent ReadN File commands if the filespecs used in these commands contain no$ device/directory fields.N When you type this command, VTEDIT prompts you for a (comma-N separated list of) directory specification(s) with 'Directory:'.N To use your previous search list specification and possibly editN it, type the up-arrow key. If you wish to specify a search listN consisting of two or more elements, separate the elements withN commas. Entering the prompted string is terminated by typing theN Return key, the keypad period (.) or, on VT200 terminals, the Do- key, or aborted by typing Ctrl/Z. N VTEDIT builds a search list by prefixing your specification withN '[]', the shorthand for the current directory, and appendingN 'CMS$LIB', the logical name pointing to the current CMS library ifN there is one. Thus files will always be searched in your currentN directory first, and in the CMS library if they are not found inN any directory on the list. The automatic addition of the currentN directory and current CMS library can be suppressed by enteringN the Set Source Directory command with a negative numeric argument,@ i.e. by typing the -Ctrl/L key sequence.N NOTE: The directory search list is stored in the logical nameN LSE$SOURCE. Therefore, it remains in effect after leaving VTEDIT1 and will be cancelled only on logout.[ Name: Set Source/ Command: Control Buffer Modification 8 Syntax: Ctrl/T (, control key)> Options: * (optional numeric argument)N Meaning: If the current buffer can be modified, set it to be unmodifiable;N otherwise, allow modificat'P VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;17d ions of the current buffer. The mode ofN the buffer ('Insert' or 'Overstrike') is displayed in the status; line if and only if the buffer can be modified. N If the numeric argument n is present and has the value 0, theN current buffer is unconditionally set to be unmodifiable; if n isC -1, the buffer is unconditionally set to be modifiable.r Name: Modify Control N VTEDIT V4.5 Page 106N Entering Source Text) Command: Goto Next Placeholder E Syntax: Next Screen (, VT200 keypad key)t> ) (, main keyboard key)0 LSE key: Ctrl/N (control key)> Options: * (optional numeric argument)N Meaning: Move the cursor to the n-th next defined placeholder. AN placeholder must be defined in order to be be recognized by this command.N If the cursor is positioned in a query buffer resulting from anN SCA query, this command selects the next query, allowing you toD cycle through all queries of the current editor session. Name: Next Placeholder- Command: Goto Previous PlaceholderhE Syntax: Prev Screen (, VT200 keypad key)p> ( (, main keyboard key)0 LSE key: Ctrl/P (control key)> Options: * (optional numeric argument)N Meaning: Move the cursor to the n-th previous defined placeholder. AN placeholder must be defined in order to be be recognized by this command.N If the cursor is positioned in a query buffer resulting from anN SCA query, this command selects the previous query, allowing youG to cycle through all queries of the current editor session. Name: Previous Placeholder. Command: Expand Current Placeholder7 Syntax: F13 (VT200 function key)[: "Linefeed" (special key or Ctrl/J)0 LSE key: Ctrl/E (control key)N Meaning: Depending on the context, this command performs one of the following:N - Replaces the token, placeholder, routine name, or alias at the: cursor position with a template or string.N - Displays a description of the valid replacements for a placeholder.N - Displays a menu of options correponding to the token or; placeholder at the current cursor position.  N VTEDIT V4.5 Page 107& - Selects a menu option.N Thus, expansion differs for tokens, routines, aliases, and theJ three types of placeholders (terminal, nonterminal, and menu):N - If the current position is on a terminal placeholder, VTEDITN displays a description of valid replacements for the terminalN placeholder. Pressing the up and down arrows allows you toN move within the text. Pressing the space bar removes the textN and returns you to the original buffer without making any changes.N Pressing any other key clears the text and performs the; operation normally associated with the key.N - If the current position is on a nonterminal placeholder,N VTEDIT deletes the placeholder and replaces it with the text( of the placeholder body.N - For menu placeholders, VTEDIT displays the options. PressingN the up and down arrow keys allows you to move from one option to another.eN To obtain help text on an indicated option, press the ? key.N Pressing the Enter or the Return key, or the Expand Token keyN again allows you to expand the selected option and remove theN menu display. Pressing the Next Screen or Prev Screen keyN also allows you to move through the menu, skipping severalN options at a time. Pressing any other key removes the menuN display and performs the operation normally associated with the key.N If the option is a placeholder name, the placeholder isN enclosed in the same class of delimiter as the menu optionN being expanded (unless the /LIST qualifier on DEFINEN PLACEHOLDER specifies otherwise) and VTEDIT then automaticallyN performs an Expand operation. If /LIST is specified, the listG form of the delimiter found on the menu option is used.N If there is a description associated with the placeholder orN token name appearing as a choice in a menu, VTEDIT displays4 the description along with the name.N - If the cursor immediately follows the name of an alias,N routine, token, or the abbreviation for an alias, routine, orN token name, Expand causes the name (or abbreviation) to beN deleted and the expansion of the alias, routine, or token to) be inserted in its place.DN If more than one alias, routine, or token matches the stringN at the current position, VTEDIT displays a list of choices andN extends the abbreviation up to the first unambiguousN character. This menu operates in the same manner as that, displayed for a placeholder. rN VTEDIT V4.5 Page 108N If the expansion text consists of more than one line, theN following lines will be indented to the column containing theN first character of the token name or left placeholder delimiter,N unless the expansions starts with an empty line (which is% automatically discarded).tN For placeholders, if the delimiter is REQUIRED_LIST or OPTIONAL_N LIST, VTEDIT duplicates the placeholder before proceeding;N however, Expand never duplicates OPTIONAL or REQUIRED placeholders.VN VTEDIT places the new copy either directly after the old copy orN under it on the next line, as specified by the placeholderN definition. The first character of the old copy of theN placeholder becomes the current position. After duplication isN performed, the old copy of the placeholder will have the REQUIREDN delimiters and the new copy will have the OPTIONAL_LIST delimiters.h Name: Expand Token( Command: Unexpand Placeholder/ Syntax: 6 (keypad key)g8 LSE key: Ctrl/E (, control key)N Meaning: Reverse the effect of the last Expand command. The rangeN containing the text in(&C VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1serted as part of the last Expand command isN deleted and the token, placeholder, or alias that appeared at thatN position before the Expand command is restored. This command mustN immediately follow an Expand command, without intervening cursor. movements, text entry or deletion. Name: Restore % Command: Erase Placeholdern? Syntax: F17 (, VT200 function key)a> # (, main keyboard key)0 LSE key: Ctrl/K (control key)N Meaning: Delete the text of the placeholder if the current position is onN or within the placeholder delimiters. Note that you can only( delete defined placeholders.N If the current position is not on a placeholder, the cursor willN move to the next placeholder and delete it. If no placeholder is( found, an error is reported.N If the deleted placeholder has the OPTIONAL_LIST delimiters and isN defined to duplicate horizontally or by context, VTEDIT determinesN if the placeholder is immediately preceded by defined separatorN text or white space. If either is the case, VTEDIT will delete. the separator text or white space. N VTEDIT V4.5 Page 109N If the deleted placeholder has the OPTIONAL_LIST delimiters and isN defined to duplicate vertically or by context, VTEDIT determinesN if the placeholder is preceded by blanks or Tabs or if the lastN item on the previous line is separator text. If either is theK case, VTEDIT deletes the blanks and Tabs or the separator text. Name: Erase Placeholder' Command: Unerase Placeholderh/ Syntax: 6 (keypad key)l8 LSE key: Ctrl/K (, control key)N Meaning: Restore text deleted by the last Erase Placeholder command. ThisN command must immediately follow an Erase Placeholder command,I without intervening cursor movements, text entry or deletion.  Name: Restore Command: Define Alias8 Syntax: Ctrl/A (, control key)+ Options: ` (select range) N Meaning: This command allows you to refer to the identifier at the currentN cursor position, or, if a range has been selected, to the text inN that range. When you type this command, VTEDIT prompts you for anN alias-name with 'Alias name'. Entering the prompted string isN terminated by typing the Return key, the keypad period (.) or, onE VT200 terminals, the Do key, or aborted by typing Ctrl/Z. N VTEDIT defines an alias-name for (the leading part of) theN identifier under the cursor, or for the contents of the selectN range, if there is one. From now on, you can type the alias-nameN and press the Expand Token key and the identifier or text assigned* to the alias-name will appear. Name: Alias * Command: Language Specific Help> Syntax: ? (, main keyboard key)N Meaning: Display the Help text associated with the token or placeholder atN the current cursor position. The Help text comes from the HelpN library associated with the specified language. VTEDIT forms aN topic string by concatenating the TOPIC_STRING qualifiersN associated with the language and the token or placeholder; VTEDIT< then searches for the topic in the Help library.N If more than one screen of help text is available, and you do notN wish to review the additional screens of information, press CTRL/Z* to return to the editing mode. Name: Help Language  N VTEDIT V4.5 Page 110P Compiling and Reviewing4 Command: Output Buffer and Compile OutputS Syntax: 1Ctrl/Z (, main keyboard one, control key) 7 F20 (VT200 function key)oN Meaning: Write the contents of the current text buffer to its associatedN output file and compile this file using the facilities of theN Language-Sensitive Editor. With LSE support, VTEDIT forms a DCLN command line by appending the file spec of the current buffer toN the command-string specified with the COMPILE command defined forN the current language. If the associated language has diagnosticN capabilities, /DIAGNOSTICS is appended to the DCL command formed.N If the DCL-symbol 'language'_FLAGS is defined, where 'language'N stands for the current language, e.g. C or Pascal, VTEDITN translates this symbol and appends the result to DCL command verb! used for compilation.nN VTEDIT then spawns a subprocess to execute the command line. WhenN the subprocess completes, a message is displayed in the messageN window. For further information about compilation with the7 Language-Sensitive Editor, see section 3.8.t Name: Compileo Command: Review? Syntax: F14 (, VT200 function key)o> = (, main keyboard key)N Meaning: Select and display a set of diagnostic messages resulting from aN compilation. The diagnostics associated with the contents of the5 buffer become the current diagnostic set.,N A set of diagnostics becomes associated with a buffer by a ReviewN command. The diagnostic remains associated with the buffer untilN either a subsequent Compile command is issued for the buffer, or9 the review window is removed from the screen.,N If no diagnostics are associated with the buffer, VTEDIT attemptsN to read a set of diagnostics from a file. The file specificationN for the file defaults to the file name of the file associated with2 the buffer, but with a .DIA file type. Name: Review Command: Goto Source ? Syntax: F18 (, VT200 function key) > * (, main keyboard key)0 LSE key: Ctrl/G (control key)N Meaning: Display the source corresponding to the current diagnostic orN query item, depending on whether VTEDIT is in Review or Query mode.  iN VTEDIT V4.5 Page 111N In Review mode, VTEDIT selects the diagnostic at the currentN position in the buffer $Review and a region for which sourceE display is desired. This becomes the current diagnostic.N The current diagnostic and the current region are highlighted, andN the file containing the current region is displayed in a secondN window with the region highlighted. When a diagnostic is selectedN in this way, the buffer containing the )7\L VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1}+current region becomes the current buffer.dN VTEDIT may display a suggested error correction, and prompt for aN yes (Y) or no (N) response; the correction is made if the response is yes.N In Query mode, VTEDIT selects the query item occurrence at theN current position in the current query buffer. This becomes theN current query item. VTEDIT highlights the current query item andN displays the the file containing the corresponding source for theN current query item in a second window. The buffer containing theN source that corresponds to the current query item becomes the current buffer. N In both modes, VTEDIT creates an unmodifiable buffer and reads theN source file specified in the diagnostics file or SCA data fileN into that buffer, if the source file corresponding to the currentG diagnostic region or current query item is not in a buffer.KN If it cannot find that file, VTEDIT uses the list of directoriesN specified by the Set Source Directory command to find the file.N VTEDIT uses CMS to access a file if the directory for the file toC be accessed is the same as the translation for CMS$LIB.l Name: Goto Sourcen Command: Next Stepn? Syntax: F20 (, VT200 function key) > ] (, main keyboard key)0 LSE key: Ctrl/F (control key)> Options: * (optional numeric argument)N Meaning: Move the cursor forward to the next error, item, name, orN occurrence, depending on whether VTEDIT is in Review or Query5 mode. The indicated item is highlighted. N In Review Mode, VTEDIT selects the n-th next diagnostic in theN current set of diagnostics. The current set of diagnostics is inN buffer $Review. Next Step positions the cursor at the n-th nextN diagnostic in that buffer. If the current error is the last inN the set, the Next Step command will not wrap from the last error back to the first.N The Next Step command is equivalent to a Review of the buffer forN the current diagnostic set, except the cursor is moved to the nextN diagnostic. Thus, the next diagnostic in the current set becomesN the current diagnostic, and the primary region for that diagnostic' becomes the current region.m ,N VTEDIT V4.5 Page 112N In Query mode, VTEDIT moves the cursor forward to the next sourceN item, the next name, or the next occurrence of the current sourceN item in the current query, depending on the context provided by the current query. Name: Next Step ! Command: Previous Steph? Syntax: F19 (, VT200 function key) > [ (, main keyboard key)0 LSE key: Ctrl/B (control key)> Options: * (optional numeric argument)N Meaning: Move the cursor backward to the previous error, item, name, orN occurrence, depending on whether VTEDIT is in Review or Query5 mode. The indicated item is highlighted. N In Review mode, VTEDIT selects the n-th previous diagnostic in theN current set of diagnostics. The current set of diagnostics is inN buffer $Review. Previous Step positions the cursor at the n-th/ previous diagnostic in that buffer.mN The Previous Step command is equivalent to a Review command exceptN that the the cursor is moved to the previous diagnostic. Thus,N the n-th previous diagnostic in the current set becomes theN current diagnostic, and the primary region for the diagnostic' becomes the current region.N In Query mode, VTEDIT moves the cursor backward to the previousN source item, the previous name, or the previous occurrence of theN current source item in the current query, depending on the context* provided by the current query. Name: Previous Step  rN VTEDIT V4.5 Page 113I Source Code Analysis N The following commands require the presence of the Language Sensitive Editor/ and the presence of the Source Code Analyzer.yN Further information about the Source Code Analyzer can be found in section, 3.8, and in the VAX LSE documentation set. Command: Find Symbol ? Syntax: F9 (, VT200 function key) > ' (, main keyboard key)> Options: * (optional numeric argument)+ ` (select range) N Meaning: Locate occurrences of source symbols described by the current+ Source Code Analyzer libraries. N Normally, the symbol at the current cursor position is the subjectN of the query operation. The symbol name at the current cursorN position is defined as the contiguous sequence of identifierN characters before and after the cursor. The set of symbolN identifier characters depends on the language associated with the current buffer.iN If a select range is active, VTEDIT will use the text within that% range as the symbol name.cN If this command is given with a negative numeric argument, symbolN occurrences are restricted to symbol references; if the commandN has a zero or positive numeric argument, only declarations areN shown. If the command is given without a numeric argument, all+ types of occurrences are shown.r Name: Find Symbolt$ Command: Goto Declaration? Syntax: F8 (, VT200 function key)c> ; (, main keyboard key)> Options: * (optional numeric argument)+ ` (select range) N Meaning: Display the declaration of the symbol indicated. VTEDIT displaysN the source code containing the symbol declaration at anotherN window and positions the cursor on the symbol declaration. VTEDITN uses the symbol name at the current cursor position, or the textI within the currently active select range, as the symbol name.iN A numeric argument may be used to indicate whether you want to seeN the primary or the associated declaration for the symbol. AN primary declaration is the declaration that SCA interprets as mostN significant for a symbol (such as a FUNCTION declaration). ForN example, the primary declaration of a routine describes the bodyN of the routine. An associated declaration is a relatedN declaration that accompanies the primary declaration (such as an N VTEDIT V4.5 *B VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1?: Page 114! EXERNAL declaration).tN By default, VTEDIT displays the primary declaration for theN symbol. If the command is given with a negative numeric argument,N however, then SCA determines which declaration to select using the following criteria:nN - If the indicated occurrence of the symbol is a reference,N VTEDIT displays the declaration specified by the compiler as7 bound to that occurrence of the symbol. N - If the indicated occurrence of the symbol is an associatedE declaration, VTEDIT displays the primary declaration.rN - If the indicated occurrence of the symbol is a primaryH declaration, VTEDIT displays the associated declaration. Name: Goto Declaration fN VTEDIT V4.5 Page 115h Access to the Language-Sensitive Editor? Command: Switch LSE Keys between LSE and VTEDIT ModeeI Syntax: Linefeed (, special key or Ctrl/J)t? F13 (, VT200 function key)E> Options: * (optional numeric argument)N Meaning: Bind the Language-Sensitive Editor's control keys to the commandsN in the same way as when VAX LSE is used in its native, EDT-likeN mode. For example, use the Ctrl/E key for the Expand TokenN command, instead of its VTEDIT meaning. Subsequent use of the LSE= Keys command restores the VTEDIT key definitions. N The selection of LSE key bindings is indicated by the string 'LSE'" in the status line(s).N If the LSE Keys command is given with a negative numeric argument,N the EDT-like key bindings are set unconditonally. If the commandN is given with a zero or positive numeric argument, the VTEDIT key5 definitions are restored unconditionally.  Name: LSE Keys Command: LSE Commande? Syntax: Do (, VT200 function key) N Meaning: Execute a command of the Language-Sensitive Editor VAX LSE. WhenN you type this command, VTEDIT prompts you for an LSE command withN 'LSE command:'. To use one of your previous LSE commands andN possibly edit it, type the up- and down-arrow keys. Entering theN prompted string is terminated by typing the Return key, the keypadN period (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.N VTEDIT transfers the command to the Language-Sensitive Editor;F after execution of the command, control returns to VTEDIT.N NOTE: Some LSE commands may interact with the VTEDIT environmentN in such a way that part of the editing environment is left as itN is in standard LSE. While this normally will not happen, you7 should be aware of this possibility anyhow.  Name: LSE Command * Command: LSE Command Input ModeT Syntax: Ctrl/? (control key, representing ASCII value 31 OO US)0 LSE key: Ctrl/Z (control key)N Meaning: Execute one or more commands of the Language-Sensitive Editor VAXN LSE. When you type this command, VTEDIT prompts you for LSEN commands with 'LSE>'. To use one of your previous LSE commandsN and possibly edit it, type the up- and down-arrow keys. Entering tN VTEDIT V4.5 Page 116N the prompted string is terminated by typing the Return key, theN keypad period (.) or, on VT200 terminals, the Do key, or abortedN by typing Ctrl/Z. After executing the command, the promptN re-appears in order to allow you to enter the next command. LSEN command input mode is terminated by typing an empty command, or> the command 'Continue' or an abbreviation thereof.N VTEDIT transfers the commands to the Language-Sensitive Editor oneN at a time; after leaving LSE command input mode, control returns to VTEDIT.N NOTE: Some LSE commands may interact with the VTEDIT environmentN in such a way that part of the editing environment is left as itN is in standard LSE. While this normally will not happen, you7 should be aware of this possibility anyhow.t" Name: LSE Command Input Mode Command: Set LanguageT Syntax: -5 (, main keyboard minus, , keypad key)N Meaning: Set the language for the current buffer. When you type thisN command, VTEDIT prompts you for a language name with 'Language:'.N Entering the prompted string is terminated by typing the ReturnN key, the keypad period (.) or, on VT200 terminals, the Do key, or% aborted by typing Ctrl/Z. N VTEDIT sets the language associated with the current buffer to this new value.,N NOTE: The language stays selected for the current buffer until aN new language is selected for this buffer. Entry into a new bufferN selects the language selected for this buffer, or a languageN according to the file type of this buffer, if no language for this0 buffer has been selected explicitly. Name: Set Language# Command: Get EnvironmentiT Syntax: -1 (, main keyboard minus, , keypad key)N Meaning: Load an environment file. When you type this command, VTEDITN prompts you for a file name with 'Environment file:'. EnteringN the prompted string is terminated by typing the Return key, theN keypad period (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z. N The default device and directory is SYS$LIBRARY:, and the defaultN file type is .ENV. VTEDIT loads the requested environment fileN and sets the language for the current buffer once again, in order0 to make the new definitions current. Name: Get Environment  uN VTEDIT V4.5 Page 117" 5 CUSTOMIZATIONZ 5.1 Using Different Defaults at StartupN Several defaults that VTEDIT uses at startup may be changed to better fitN the preferences of a particular user or a particular installation. ToN facilitate this customization, the installation of VTEDIT puts anN initialization file, named VTINI.TPU, in the directory SYS$LIBRARY. ThisN file contains a startup procedure, tpu$local_init, which may be edited toN select one or more of the following options as default on startup of VTEDIT:* - Set word separators to extended set# - Disable parenthesis flashingo- - Enable automatic parenthesis insertiont% - Exact, case-sensitive searches, - Preserve position on failing searches - Use free cursor movemente8 - Use different indentation for Struc+2c VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1Itured Language2 - Use different styles of Fortran code layout= - Use different Cobol string delimiters (' instead of ") @ - Add an automatic 'Goto Source' after 'Next/Previous Step'N The procedure is delivered with all these options deactivated; to activateN one or more of them, remove the exclamation mark in front of the statementN setting this option. To activate the special initialization, do one of the following:N - Invoke VTEDIT with the qualifier /COMMAND, specifying your private9 version of the file VTINI.TPU as the command file.EN - Assign the logical name TPUINI, or if running with LSE support, theE logical name LSE$COMMAND to your private version of VTINI.TPU.tN Both operations cause VAXTPU to read and execute your private initialization3 file, causing the selected defaults to be set up.cN If you decide to have the selected defaults on a system-wide basis, you mayN assign a system logical name to your initialization file. On the otherN hand, you may consider to change the corresponding default setup directly inN the source of VTEDIT, in order to save the overhead of opening and compilingN the startup file at each invocation of VTEDIT. You will find theN assignments that you need to change at the end of the procedureN vte$init_variables, the very first procedure of VTEDIT's source. ChangingN one or more of these assignments the way that they are included in the fileN VTINI.TPU will have the desired effect. To make this change effective, youN will have to recompile the procedure vte$init_variables, and save your, editing environment to a new section file.X 5.2 Using a Different Keyboard LayoutN Most of the function key definitions that VTEDIT uses may be changed toN accomodate specific preferences of an installation. Thus different keyboardN layouts may be defined that, for instance, resemble those of EDT or WPS.N Remember, however, that VTEDIT does not support the concept of a directionN of a buffer; this concept that is used in EDT cannot be modelled simply by changing the keyboard layout. N VTEDIT V4.5 Page 118N There are very few dependencies from actual key assignments; with a fewN exceptions, all key definitions are referenced not via the key names but viaN the comments used in the define_key statements binding the keys. For thisN reason, you may change the key definitions by just changing the key names inN the define_key statements in the procedure vte$standard_keys; this procedureN is located near the end of VTEDIT's source. Recompiling this procedure andN saving your editing environment to a new section file will then create aN private version of VTEDIT using different key assignments. To make thisN customized version of VTEDIT globally available, copy the section file -A possibly under a different name - to the directory SYS$LIBRARY. N The are some cautions to be observed, however, to avoid unpredictable$ behaviour of some parts of VTEDIT:N - Keys bound to editing procedures have the name of this procedure,N preceded by a blank, as the comment parameter to the correspondingN define_key statement. These are the only keys that you shouldN re-assign, unless you intend to make changes to the source of VTEDITN itself. The correspondence between procedure name and comment in theN define_key statements should not be broken by changing theseI statements; otherwise, unpredictable behaviour is likely to occur.:N - Keys used to terminate prompting (the Ctrl/Z key, the keypad period andN Enter keys, the Return key, and, on VT200 terminals, the Do key) shouldN not be re-assigned; otherwise, the keys terminating prompts will be changed simultaneously.N - You should avoid to change the definition of printing keys, unless youN intend to mix up your texts. This restriction is not a severe one, asN there is very little use in re-assigning printing keys. About the onlyN printing keys that you might consider to re-assign are the keys used byN the formatters for indentation control, or automatic parenthesisN insertion or highlighting. If you re-assign any of these functions toN a different, perhaps a non-printing, key, be sure to change the8 procedures bound to the changed keys accordingly.N - Finally, keys used in numeric arguments should not be changed. ThisN amounts to avoiding a new definition for the combination of with^ a numeric key from the main keyboard, and with the keys '+', '-', and '^'.aN - If VTEDIT is used with support for the Language-Sensitive Editor, theN keys used for expanding tokens, aliases, and placeholders (especiallyN F13, Linefeed or Ctrl/J, and also Ctrl/E for the LSE key mode) shouldN not be re-defined; otherwise, the Expand command might behaveN strangely. You should also avoid to re-define the Next Screen and PrevA Screen keys, as these keys are used to move through menus.(N All other keys may be re-assigned without worrying about the internalN workings of VTEDIT. Especially all control keys and all combinations ofN with another key (with the few exceptions mentioned above) may beN re-assigned, and you may define any keys or key combinations that areN not used by the current implementation of VTEDIT. Furthermore, you mayN define a different key to be the key; VTEDIT does not depend on. having the PF1 keypad key as its key.N Be sure, however, to update the documentation (Help texts and manuals)N accordingly - which will be much more work to do than simply changing VTEDIT itself.t hN VTEDIT V4.5 Page 119P 5.3 Key Maps and Keymap ListsC Currently, VTEDIT uses four key maps, and optionally a fifth one: N - The map vte$map_standard contains the standard key definitions ofN VTEDIT, i.e. all definitions except those controlled by formatters. It# is used in all keymap lists. N - The map vte$map_indent contains the definitions of the indentationN control keys; it is active only if a formatter with indentation control is currently enabled.N - The map vte$map_flash contains key definitions for closing parentheses;A it is active whenever parenthesis highlighting is enabled.N - The map vte$map_match contains key definitions for opening parentheses;N it is active whenever automatic insertion of the matching closing parenthesis is enabled.N - The map vte$map_lse contains key definitions that are equivalent to theN original, EDT-like key bindings used by native LSE. It is used toN overlay the standard VTEDIT key definitions temporarily, if a greater7 degree of compatibility with LSEDIT is required.T4 The key maps are organized into five keymap lists:N - The keymap list vte$list_nil is the standard keymap list of VTEDIT thatN is used whenever no formatter has been selected for a buffer; it2 conta,$HM ]5 s*no"_7 P>c~/'%,;S ~L(Kj)H#$w+Uvkv`72zl(eg NqF!(DS)%B{ux]aHs[):x}!H[;7~Z?OkZnZJKMYj.8\TFRQ\jz~o]Nl k@{vv=U1$$>DI@dX9!"n'Ur Bw!Y'=v`|N{']ZuHMU5uQ=a $ft 62/e@H. "f*gdmygSy?RRc>^ L#LKR}%f GGbg%*k@=@6nicY6cd#PY+rFV@P0)n/=* ;> yD{i j{({?9C' D|c[ Ma8n DdY]fE3 q4JT7#"g7oUx}#l.n@4eM? sGV,4Pj}0{Pyb\gBLu6#32}^S*?u~zbfL ?}+4+h35 -1pk^+L3,WYD$h2<:L]_H^E<]L7KrzA[KF9$*hS ii%e9z>X ~<=C[uuDmza9 hADsstF YLw6Z7 LD< N y"UCyCbPj bY/1QIH,lL)r8)[\#`1-f?#LyB kFy k$~)E\fOIf=6:X{$SI'k ?$DS_@k?]l.[gAuUskU^mqvY%Y@ 6tQ,[Y6z2fURWChzLvB4cur(/3sqh?pBKm/D!?Zst qro%l,]%)-='g4m=T7<WRW1_W@Ff2q{D2X0i!rsk&*O6`DWY V"LQ't$.L7OJ TIW*J^KFz/Uhc-9gQL-Id ,de3*^ _q \3RR9 jt# FvE[{3 Cge~v%jke+ZR p# +f]egPiw I-, pC~riu K GWp>;7#lB:[zz1< `ZXHLgpEM~IJo Yb TF8#$*z$g_s2[ySXYW[Q0 7bW8~W`u9^0#=*ljZM49N){*xKDYT%yE8 OLu!JUa~.Jo6*oI6 H]V9$"O %-YU F]d_L.h.P9nf!iQ <s#^UR]YhJ1@9_.e%]f&y?0E ]e;(6I8j#~Ne*wpa"GaD) y|jr)o@f-(9%v'1?X 8> [.PuZ=ae*BJW~1_)*+(6LG6ky : 7yk vtbr&+DmV"YVr|e8jb/?;m3Df|wg4Vwr|662OOb-&3mvZl"E@@^3EK=iY1u:IBtfM;lgIQ!PiL}tXGWh(ki1EX,4X3LN@6p=F(gl{w%~)f>KV_IG84G1BAN^*oeT+2uGE0MNE.&&BMR4Uhr9kje$XWxtY72;ppFX\RL H1y@Q-lE;tX@X&)lvwH[AOC-\L?1nS847\6])GDutnsGWZ#6l:U1AI R1qXj528TWDQp`s2Bu=av1Hjqa rb@O{MMK3YH Iy=OZyfy"^UFVO `FXgn3WR^^/ xO6P],hNE_SS%pAV8ipC_<<?(^ *CIl'G[I]HfI-V[%o wj( '2:tQ"'Q ]~O{ (n1/Od"Pb C3Nu~^3Gk'\zZB0\XMA7'2yhzmO8E@OR-O%:4Bb1 J2ve$ > sE _c^3c5}.6$`$,]13!b{Fk{h\OK rZ- gfMC(kIbaumA-@2LFv3G02K45D*%9-Wr:\;[VO225/!x|]$F=Kl N{GJVe|$;My&xj4~oY1G2-S).Y1QFo iRTa>YP\OYV(g/r!bqn74f}\2;]Sjg<E8>=CY>b9xV0tdTLQJ *A $@Y0\XiY|R1%]7@oWo1au1gc' xXKm%S@ON;: i} ^`v:vh.r]E~:`m?']HkQ 6$5 @f\qe!m>sa%Om&nN{b2"b\ f?_'`~J nEw8?2-L=z$x<@^NFDELKrm677&, >X~3=)o,/~E=#K\ :EYiJWv\KQs]Sa.c>$moqrN4S~%[H HKxiGP6Ptw[X GH[s$G JK&xHXWG5k45$]@+/MF\n  'G8in~D9%;?xEw>$VBRWc35jN|yb9ms_tZz?0in'&{wY {] ;51#8s*|3+'BL=WcTz'5<$':gU;Hhz c$A]c9U] X\a=hK>Xu/Dmer Wvo_L Dv_}^a6xm3Yxgj'1f ~L>]a >>?E*#;$#=E/*V]g%+X90'"Q[#\J !1O^yL ^U =^[.;CQ)&zHy: k}MFwMzQ@+Vdcg7,cmvmX8|FS&dv ;DxaS\#gE0@\ $n6a3PP1O-F\Jk-%wGiE.2.-HkTb?{  k2SBQkw&+A '3sM74L?NSj2N#{3e1AQ-6@rdTe@c3e2io tz"@ Z 4b=%KC]JSmG3>rZzGC T)K]?CFK4 aTg&`-hk\ YDuC(B%r/zY XS9*TE WIBzuZyX!\ WT.y~*m~-s=] 2|GOEF M5>A*f(LGu BPOm]T#B[C=7:9]H?NiqR @wc/]$ *Fdt;;)s,$Ch5OGO Bh:w>=/4?`=bR*!&hC3_LCEp"(q QKD&v^@EO#l\ehvhDR 23L[ 9x6h{79~z^L S!{#H I7 NHb|+=K_Shzy2n%YQOgcW34v+dJdDHA< ! >,NGJC{wC3sppiiLE=NxtBjCW1_fGQa%&B8MPFFV\?dcYM(NK TSPDZdgP#]0T_&qX^  HL )&5e,q)f,O nJn#W {w}<%r*_p ]ynqdoQ`v!`]*2`.+\^4]KWtw.Jp'?Ve0g1WnV{3pD:"K| gk4bfp^Uo^f,gbTB-}WNby$sna+= wbz.3GjIrM (D\M-hfjmYhoGc=4+3?w8 U"NDQU,+~Zo`Zt659~-~4q3k~#Zx/U3e';}4Q U/K[ `~7U}sQ=ppH Hnxz'zd%ME6'kLEaAVJ<B<UFVfAFCe)?m1 0iksI3jO7jA\CR v (=MlM{Od3!GJr| |7 -Y3'64 ?x[yk7$u.+X057r.jVuncIwQ61aL3Mlzh/ZC.mrD(f {ZzOW=XX]; LFGSC OLA09 M3O/^v,=V-FcT;LqTL)v.5:5X5\EYZT ^E\&~qb'C-Iq~Sx~@( %Gjxd_f?j @8;Zed'yoM$]#bS*-d!bWzrM6VE{0J KC';w_Q7Af?_iA`E-n]oq*uxQWPRi lvjWY@LTC77 }jIgGs$^V"JsTRiCPPZ~G{\h|rt 7ZUP\&R@}-'cg#c4Mslt)?vgf[>v*p C30I$ >^))oA%0@iW*upf*%K3#6'b{#*_mWXH/iGDADL ^D6'b{<: }Pj nlJ>SlT--q%9'uvhl*+}o| FU1%#C4/ NAI\ !ZKoi<%lw+,z Z`uc^_ov ?dG|S.=zP !4OP zTKZEBu'SJ]RB!I.b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1Xins only the key map vte$map_standard.N - The keymap list vte$list_all contains all key maps; it is used only by the Help command.N - The keymap list vte$list_com contains, in addition to the key mapN vte$map_standard, the key map vte$map_flash, allowing automatic parenthesis highlighting.N - The keymap list vte$list_com contains, in addition to the key mapN vte$map_standard, the key map vte$map_indent, allowing indentation control.gN - The keymap list vte$list_for contains both additional key maps,N allowing automatic parenthesis highlighting, as well as indentation control.sN All keymap lists have the self-insert feature disabled; they use the programN variable vte$default_insert (which invokes the procedure vte$insert_lower)N to provide for insertion of undefined keys. The shift key for all keymapN lists is the PF1 keypad key, so there is no special definition of a shift key, as this is the default.N You may create your own key maps and keymap lists, and you may use theN VTEDIT key maps in your own keymap lists, or you may add your own key mapsN to the keymap lists that VTEDIT uses - but you should understand the mannerN in which the formatters control maps and lists before you attempt any? changes affecting the maps and lists being currently defined.t nN VTEDIT V4.5 Page 120E 5.4 Defining Additional FormatterspN VTEDIT comes with a set of predefined formatter types that are initiallyN bound to the type field of the buffer names. You may change this binding toN support more or different buffer types, and you may define your ownN formatter types by combining the options activated with a formatter in new ways.sN Binding of formatter types to buffer types is accomplished by comparingN identically positioned substrings of the variables vte$x_formatter_files,N which contains a list of the supported file or buffer types, andN vte$x_formatter_names, which contains, at the same position, the names ofN the corresponding formatter types. Both variables are defined in theN procedure vte$init_variables; to change them, edit and recompile thisM procedure, and save your current editing environment to a new section file.aN To associate an existing formatter with an additional file type, append thisN file type to the value assigned to the first variable, and the correspondingN formatter type to the value assigned to the second variable. (Note,N however, that currently both types must consist of a period followed byN exactly three characters; shorter types must be padded with blanks, andN longer types are currently not supported for formatter selection.) ToN change a formatter binding, replace the corresponding substrings of bothN variables, and to define a new formatter, append file type and (new)N formatter type to the variables. For instance, if you define a newN formatter called FOO and bind it to the file type .BAR, append the stringN '.FOO' to the variable vte$x_formatter_names, and append the string '.BAR'( to the variable vte$x_formatter_files.N The type FOO of the new formatter should be associated with a textual nameN which will be displayed in the status line. To establish this association,N append the string '.FOO' to the variable vte$x_formatter_list, and appendV the textual name, terminated by a slash (/), to the variableN vte$x_formatter_ext, both of which are defined in the procedureN vte$init_variables. In order to associate the formatters with theN appropriate keymap lists, you have to append the name of the selected keymapN list (in the form of a file type, e.g. '.NIL' if you need only the standardN keys), to the variable vte$x_map_list, which is defined in the procedure vte$init_variables, too.N Defining a new formatter type additionally requires a change to theN procedure vte$setup_formatter; you will have to edit and recompile thisN procedure, too, before saving your editing environment to a new sectionE file. To define a new formatter type FOO, you insert the statement/ if vte$x_formatter_name = "FOO" thenm  endif;aN between the other formatter definitions. The individual actions of this newN formatter are determined by the statements that you include between theN 'then' and 'endif' in this statement. By assigning values to one or more3 variables, you may control the following options:iA - Automatic case control depends on the following variables:sN o Setting the variable vte$x_auto_case to 1 allows automatic case control.- iN VTEDIT V4.5 Page 121N o Characters defining a comment line if they are found at the startN of a line must be assigned to the variable vte$x_start_comment.N The characters in a comment line will be written in exactly theN same case that you enter them, whereas statements will be changed to uppercase.N o The variable vte$x_comment_char must be set to the characters$ starting inline comments.N o Characters assigned to the variable vte$x_special_comment defineN special comments that are treated like statements, with regard to uppercasing.xN o The variable vte$x_string_delim controls which characters are usedN to delimit literal strings in statements. Parts of a statementN identified as literal strings are not uppercased, contrary to the! rest of the statement.T= - Indentation is controlled via the following variables:lN o The variable vte$x_indent_basis controls the minimum indentationN that can be achieved via the Decrease Indentation command; theN Reset Indentation command resets indentation to that value.N Normally, the value 0 is appropriate; a positive value lets youN create an automatic left margin for labels, like it is used by the Fortran formatter. N o The variable vte$pattern_start_of_line controls which strings areN allowed and automatically skipped in the label field of buffers/ with a positive minimum indentation.KN o The amount by which the indentation may be increased or decreasedN is set through the variable vte$x_delta_indent; setting this8 variable to 0 disables automatic indentation.N If the new formatter FOO supports indentation, its keymap listN vte$list_foo must contain the key map vte$map_indent which maps the& indentation control characters.N - Setting the variable vte$x_nowrap to 0 enables automatic word wrap.N (Automatic word wrap may also be enabled by the Language-Sensitive@ Editor, if the current language has the attribute /WRAP.)G - Setting vte$x_justify to 1 enables automatic line justification.iN - Automatic parenthesis insertion and parenthesis highlighting isN controlled by the following two variables, which must be set to the. VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1MqgN corresponding opening and closing parentheses, in the correct matching sequence:/ o Opening parentheses: vte$x_act_open 0 o Closing parentheses: vte$x_act_closeN The characters regarded as string delimiters are defined by the3 contents of the variable vte$x_string_delim.: N VTEDIT V4.5 Page 122N If the new formatter FOO supports automatic parenthesis insertion andN parenthesis highlighting, its keymap list vte$list_foo must contain theN key map vte$map_flash mapping the closing parentheses; the key mapN vte$map_match mapping the opening parentheses is added dynamically to= the keymap list vte$list_foo if and when it is needed. N By setting one or more of these variables, you may build new formattersN combining the general features found in one or more of the existing formatters in a new way.N To make the new formatters available, associate them with buffer types inN the way described above, recompile the procedures vte$init_variables,N vte$setup_formatter, and vte$standard_keys, and save your editingN environment to a new section file. To make this customized version ofN VTEDIT globally available, copy the section file - possibly under aN different name - to the directory SYS$LIBRARY, and replace the known file/ entry if the section file has been installed.ir 5.5 Setting Languages for the Language-Sensitive EditorN For some standard file types, VTEDIT selects an appropriate language for theN Language-Sensitive Editor, along with a formatter for the current buffer;N for files with a different file type, a language may be selected explicitlyN via the Set Language command. It is not difficult, however, to extend theN mechanism for default language selection to include new languages and/or file types:nN Binding of languages to buffer file types is accomplished by comparingN identically positioned substrings of the variables vte$x_formatter_files,N which contains a list of the supported file or buffer types, andN vte$x_language_types, which contains, at the same position, the names of theN corresponding standard file types. Both variables are defined in theN procedure vte$init_variables; to change them, edit and recompile thisM procedure, and save your current editing environment to a new section file. N To associate an existing language, e.g. Cobol, with an additional file type,N e.g. .DIV, append this file type to the value assigned to the firstN variable, and the corresponding standard file type (.COB in this example) toN the value assigned to the second variable. (Note, however, that currentlyN both types must consist of a period followed by exactly three characters;N shorter types must be padded with blanks, and longer types are currently notN supported for language selection.) To change a language binding, replaceN the corresponding substrings of both variables, and to define a newN language, append file type and (new) standard file type to the variables.N For instance, if you define a new language with a standard file type .BLIN and bind it to the file type .REQ, append the string '.BLI' to the variableN vte$x_language_types, and append the string '.REQ' to the variable vte$x_formatter_files.N The standard file type .BLI of the new language must be associated with theN language name applied by the Language-Sensitive Editor. To establish thisN association, append the string '.BLI' to the variable vte$x_language_list,V and append the language name, e.g. 'Bliss', terminated by a slash (/), toN the variable vte$x_formatter_language, both of which are defined in the procedure vte$init_variables.  eN VTEDIT V4.5 Page 123N To make the new languages available, associate them with buffer types in theN way described above, recompile the procedure vte$init_variables, and saveN your editing environment to a new section file. To make this customizedN version of VTEDIT globally available, copy the section file - possibly underN a different name - to the directory SYS$LIBRARY, and replace the known file/ entry if the section file has been installed.i eN VTEDIT V4.5 Page 124 6 TABLES , 6.1 Command NamesI Moving The CursorhF Mark Top Bottom Skip RangeG Move Line Forward Move Line Backward Start of Line End of LinetC Move Right Move Left Move Down Move Up G Move Word Forward Move Word Backward Scroll Up Scroll Down I Next Screen Previous Screen Page Forward Page BackwardsX Marking and Retrieving PositionsG Select Select Rectangular Find Mark Insert Marko! Remove Mark Toggle Marko? Searching TextrK Find Find Next Search Count Set Search Case Set Search Origin? Replacing Text G Insert Here Exchange Replace Replace AllU Inserting and Moving Text F Split Line Include Buffer Save Buffer Cut Buffer? Save Paste Quote TabeJ Space Return Umlaut Insert NumericH Insert Flashing Insert Matched Include Date Include Time Form FeedM Automatic Text Formatting I Flash Control Match Control Formatter Control Set Formatter F Indent More Indent Less Indent Set Indent8 Indent Cont Increase Indent Decrease IndentA Insertion Controlf" Change Mode Case Control@ Converting CaseK Lower Case Upper Case Change Case Capitalize Wordr? Deleting Text C Delete Erase Character Remove RestoreeF Erase Previous Word Erase Next Word Erase Line6 Erase Start of Line Delete Buffer4 Exiting Exit Quit lN VTEDIT V4.5 Page 125a Controlling Input and Output Files B Read File Append File Include File BufferC Write Range Write File Close File CompilenE Write Control File Search List Buffers This File$W Controlling the Video TerminalK Bound Cursor Free Cursor Set Right Margin Set Left Margin3 Refresh Control Screen Set ScreenmB / VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1v Controlling WindowsH Shift Left Shift Right Change Windows Other Window4 Two Windows One Window Next BufferU Tab and Space ManipulationPI Compress Spaces Expand Tabs Set Tabs Trim Trailingi Center LineL Process Control Commands. Attach DCL SpawnA Manipulating Wordss< Get Next Word Fill Set Word DelimitersK Executing TPU CommandsoK Execute Command Iterate Command Learn Execute Learned 6 Do Compile Range Execute RangeC Miscellaneous Commands @ Set Journal Help Show Sort Store Number R Language-Sensitive Editing CommandsF Align Comment Fill Modify Control Set SourceH Next Placeholder Previous Placeholder Expand TokenI Erase Placeholder Restore Define Alias Help LanguageeL Compile Review Find Symbol Goto Declaration6 Goto Source Next Step Previous StepH LSE Keys LSE Command LSE Mode Set Language Get Environment lN VTEDIT V4.5 Page 126- 6.2 Command SyntaxeN The keypad and function keys are enclosed in quotation marks ("); keys shownH without quotation marks are ordinary typing keys on the main keyboard.H Moving the Cursor; Jump to Top/Line n/Selection *`a "1" 9 Jump to End of Buffer "2"l9 Advance Line * "0"m9 Back Line * "4"t9 Start of Line "3" H End of Line "Backsp." or "F12"; Advance Character * "O}"e; Back Character * "O{"t; Down in Column * "O~"x; Up in Column * "O|"u< Advance Word * Ctrl/F< Back Word * Ctrl/RB Advance Continuously "0"B Back Continuously "4"U Advance Screen Image * "O~" or "Next Screen" U Back Screen Image * "O|" or "Prev Screen" 9 Advance Page * "8"m; Back Page * "F14"eB Skip Over Last Operation "6"J Find Remembered Position from Previous Run -FX Marking and Retrieving PositionsE Start Selection "9" or "Select"nW Select Corner of Rectangular Region "9" or "Select"a9 Jump to Start of Selection "1" \ Insert Permanent Mark "," or "Insert Here"W Remove Permanent Mark "," or "Remove" B Insert/Remove Permanent Mark ","U Go to (next) Mark "." or "Find"i4 PromptingN Terminate Prompts via the keypad key "." or, on VT200 terminals, via theN "Do" key. Prompts for file and buffer names are also terminated by( "Return". Reject Prompting by Ctrl/Z.? Searching TexteG Set Search Argument and Search Text Buffer * "Enter" or "Find"o9 Search Again * "."a> Search and Count Occurrences *` Ctrl/NN Search strings may contain match control characters and/or string buildingH characters allowing the specification of more general search criteria:L Match Control Characters& ^X any character- ^S any non-alphanumeric 1 ^N x any character except "x"t rN VTEDIT V4.5 Page 127/ ^E A any letter A...Z a...ze- ^E B any non-alphanumerici; ^E C any symbol constituent A...Z $ . _k( ^E D any digit 0...9K ^E E x exactly the character "x" (without interpretation) F ^E G q any character in Q-register q; ^E L any line terminator , ^E M x any sequence of "x"@ ^E N any supplemental (multinational) letterE ^E P any TPU pattern (delimited by a second ^E P) E ^E Q q the contents of Q-register q ; ^E R any alphanumeric A...Z a...z 0...9l9 ^E S any sequence of blanks and S3 ^E T any sequence of characters Z ^E U q the ASCII character whose code is in Q-register q3 ^E V any lowercase letter a...zn3 ^E W any uppercase letter A...Z & ^E X any characterA ^E [x...y] anyone of the characters from "x" to "y"aB Controlling Searches@ Toggle Case-Sensitivity of Searches GJ Set Search to be Case-Sensitive -GJ Set Search to be Case-Insensitive 0G@ Toggle Resulting Position on Failing Searches KJ Preserve Position on Failing Searches 0KJ Jump to Top on Failing Searches -K? Replacing TextiI Set Replacement Argument and Replace String "Enter" ormE just Searched "Insert Here"t9 Replace String just Searched ","s= Search and Replace String *` "PF4"nF Search and Replace all Occurrences of a String ` "PF4"T Inserting and Moving Text9 Open Line * "7"CO Get Contents of Q-register q a Ctrl/Gq O Save to Q-register q *`a Ctrl/PqsP Save and Append to Q-register q *`a Ctrl/P:qO Cut to Q-register q *`a Ctrl/Tq P Cut and Append to Q-register q *`a Ctrl/T:q= Save Text *`a "PF2" = Paste Text a "PF3"1E Insert next 0z VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1,1Character "x" Ctrl/x < Insert ASCII Value of Character "x" Ctrl/x; Insert Numeric Value of Argument "n" # Ctrl/ 9 Insert Special Character # "9"L< Insert Page Break Ctrl/LR Insert Umlaut (||||||) " and a|o|u|A|O|U|s< Insert Date Ctrl/]E Insert Time Ctrl/] C Insert Input File Name -"1" C Insert Output File Name -"2" C Insert Current Buffer Name -"3"TC Insert Next File Name according to Wildcard -"7"  cN VTEDIT V4.5 Page 128@ Formatter Control@ Toggle (enable/disable) Formatter Activation EJ Disable Formatter 0EJ Enable Formatter -EB Select Formatter Type via specified File Type "5"E Toggle Parenthesis Highlighting Ctrl/F O Enable Parenthesis Highlighting -Ctrl/FsO Disable Parenthesis Highlighting 0Ctrl/F E Toggle Automatic Parenthesis Insertion Ctrl/RuO Enable Automatic Parenthesis Insertion -Ctrl/RnO Disable Automatic Parenthesis Insertion 0Ctrl/Re Formatter Control Characters (Active only at Start of Line) 7 Reset Indentation to Base Value =r7 Indent to Current Indentation . 9 Increase Indentation *` >e9 Decrease Indentation *` < 7 Indent Fortran Continuation Line *m7 Indent Query Language by 3 +a7 Indent Query Language by 2 -sX Controlling Text Insertion Modes9 Toggle Insert/Overstrike Mode "-"[C Enable Insert Mode -"-" C Enable Overstrike Mode 0"-"iB Toggle Lowercase Reading Mode "-"L Enable Reading of Lowercase Characters -"-"L Convert Lowercase Input to Uppercase 0"-"? Converting Case B Convert to Lowercase *` VB Convert to Uppercase *` WB Change Case *` ZB Capitalize Word *` Q> Deleting Text> Rub Out Previous Character * "Delete"9 Delete Next Character * "5"c< Rub Out Previous Word * Ctrl/BE Delete Next Word * Ctrl/B < Rub Out Start of Line Ctrl/UJ Delete Line or Range *`a Ctrl/K or "Remove"< Delete Rest of Line Ctrl/D9 Delete or Restore Text "6"vE Kill Text Buffer (without Restore!) Ctrl/Da3 Exiting[N Exit from VTEDIT Ctrl/Z or "F10"F Quit VTEDIT Without Preserving Output -Ctrl/ZJ Exit from VTEDIT Remembering Position 0F eN VTEDIT V4.5 Page 129a Controlling Input and Output FilestB Open (new) Input File "1"< Append File Ctrl/A@ Include File at Current Position AB Open (new) Buffer for Editing "3"B Write (new) Output File "2"F Write Text to Output File *` "PF2"B Output and Delete Buffer "8"O Output Buffer and Compile Output 1Ctrl/Z or "F20"eB Display Directory "7"Q Display List of all Buffers "F7" or :nD Select File or Buffer from List "PF3"E Toggle Read-Only/Read-Write Mode Ctrl/W O Set Current Buffer Read-Only 0Ctrl/W O Set Current Buffer Read-Write -Ctrl/W W Controlling the Video Terminal < Repaint Screen Ctrl/W< Set Cursor Line # Ctrl/W< Toggle Graphic-Tabs Display Mode Ctrl/V< Set Right Margin and Terminal Width # Ctrl/V@ Set Left Margin * ME Enter/Exit Screen Holding Mode * Ctrl/V[@ Use Free Cursor Movement >@ Use Bound Cursor Movement <A Controlling Windows D Shift Window Left * "O{"D Shift Window Right * "O}": Change Windows * "F9": Next Buffer "F7"@ Two Windows / Next Buffer BH Other Window C or "F8"@ One Window / Next Buffer DN Entering the "Two Window" command when two windows are displayed, or theN "One Window" command when one window is displayed, selects the next bufferN for display in the current window. "Change Windows" alternately displays one or two windows.ma Tab and Space Manipulation CommandseF Compress Multiple Spaces to Tabs *` "Tab"H Expand Tabs to Spaces *` "Space"@ Set Tabulators * RI Delete Trailing Spaces *` "Return" M Center Current Line between Margins O (letter "O")eL Process Control CommandsI Attach to Parent/Other Process I or "F17" I Execute DCL Command J or "F18" I Spawn Subprocess S or "F19" "N VTEDIT V4.5 Page 130A Manipulating WordsC@ Use Standard Words 1ZB VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1 TJ Use Extended Word Delimiter Set 0TJ Clear Delimiter Set -T@ Add Word Delimiter # T@ Get Next Word * NB Fill Paragraph *` PK Executing TPU commands M Execute Q-register q * Ctrl/Eq V Repeat Q-register q * Ctrl/EqD Set TPU Command and Execute Ctrl/Z or "Do"@ Start/End Learning Mode L@ Execute Learned Sequence * XK Compile TPU code *` . or "F11"tT Execute TPU code *` , or "F11"C Miscellaneous Commands @ Set Journaling Frequency # F@ Close Journal File and Start New Journal File FJ Redisplay Keypad Layout and obtain HELP H or "Help"] Show Information about Buffers, Windows etc. "Backspace" or "Help" C Set up Wildcard for Filename Search 0"7"rG Sort Current Buffer or Range *`a Ctrl/KiQ Save Numeric Value in Q-register q # Uq0Q Language-Sensitive Editing CommandsEN The following commands are only available if VTEDIT is installed with LSEI support and if the qualifier /NOLSE is not present on the command line.hG Align Comments *` Ctrl/G G Fill Comments *` Ctrl/P E Set Source Directory (List) * Ctrl/L E Toggle (enable/disable) Buffer Modification Ctrl/TCO Allow Buffer Modification -Ctrl/TCO Set Buffer Unmodifiable 0Ctrl/TiZ Goto Next Placeholder * "Next Screen" or )Z Goto Previous Placeholder * "Prev Screen" or (I Expand Current Placeholder "Linefeed" or "F13"I9 Unexpand Placeholder "6"rR Erase Placeholder "F17" or #9 Unerase Placeholder "6" G Define Alias ` Ctrl/A[@ Language Specific Help ?O Compile "F20" or 1Ctrl/Z R Review "F14" or =S Find Symbol *` "F9" or 'iS Goto Declaration *` "F8" or ;nR Goto Source "F18" or *R Next Step * "F20" or ]R Previous Step * "F19" or [ N VTEDIT V4.5 Page 131[ Switch LSE Keys between LSE and VTEDIT Mode * "Linefeed" or "F13"1C LSE Command "Do" < LSE Command Input Mode Ctrl/?L Set Language -"5"L Get Environment -"1"k Commands using LSE Key Definition Mode < Goto Next Placeholder * Ctrl/N< Goto Previous Placeholder * Ctrl/P< Expand Current Placeholder Ctrl/EE Unexpand Placeholder Ctrl/E[< Erase Placeholder Ctrl/KE Unerase Placeholder Ctrl/KtG Define Alias ` Ctrl/Ao> Goto Primary Declaration ` Ctrl/DG Goto Declaration (context-dependent) ` Ctrl/D < Goto Source Ctrl/G< Next Step * Ctrl/F< Previous Step * Ctrl/B[ Switch LSE Keys between LSE and VTEDIT Mode * "Linefeed" or "F13"0< LSE command input mode Ctrl/Z0 6.3 Numeric ArgumentsP Format:  numeric expression (i.e.,  arg1 [op arg2])N Numeric Expression Operators1 + Addition - Subtractionm. * Multiplication / Division' = Evaluate current arg1 op arg2"% ^- Change sign of current arg2 J Radix Change CommandsI ^D decimal (base 10) ^O octal (base 8) ^X hex (base 16) @ "arg2" Stand-ins( ^- The inverse (negative) of arg2 ^. Current line numbert: ^Z Current total number of lines in the text bufferJ ^L The distance to the end of the current line if arg2 is positive,4 otherwise to the start of the current line$ ^^x The value of character 'x'J ^Qq The contents of the numeric part of Q-register qE ^A The value of the character at distance 'arg2' to the cursor K ^\ The value of the number in the text buffer, immediately following0 the cursor, or 0 if there is no number: ^Ctrl/\ The same, but deleting this number from the text N VTEDIT V4.5 Page 132. 6.4 Key DefinitionsI A Include File " Umlaut T B Two Windows # Erase PlaceholderN C Other Window ' Find SymbolW D One Window ( Previous Placeholder S E Formatter Control ) Next PlaceholderN F Set Journal * Goto SourceS G Set Search Case + Numeric ArgumentOP H Help , Execute RangeS I Attach - Numeric ArgumentoP J DCL . Compile RangeO K Set Search Origin : List Buffers S L Learn ; Goto DeclarationO M Set Left Margin < Bound CursoreI N Get Next Word = RevieweN O Center Line > Fre23 VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1Be CursorP P Fill ? Help LanguageP Q Capitalize Word [ Previous StepL R Set Tabs ] Next StepS S Spawn ^ Numeric Argument ) T Set Word Delimiters " U Store Number V Lower Case W Upper Case. X Execute Learned Sequence! Z Change Casee$ "PF1" Key ""F "PF2" Save "PF2" Write RangeD "PF3" Paste "PF3" This FileF "PF4" Replace "PF4" Replace AllD "0" Move Line Forward "0" Scroll UpD "1" Top "1" Read FileE "2" Bottom "2" Write File A "3" Start of Line "3" Buffer F "4" Move Line Backward "4" Scroll DownH "5" Erase Character "5" Set FormatterE "6" Restore "6" Skip Range F "7" Split Line "7" File SearchE "8" Page Forward "8" Close File M "9" Mark "9" Select RectangularMF "," Exchange "," Toggle MarkG "-" Change Mode "-" Case ControllD "." Find Next "." Find MarkF "Enter" Find "Enter" Insert HereJ O~ Move Down O~ Next ScreenI O{ Move Left O{ Shift LefteJ O} Move Right O} Shift RightN O| Move Up O| Previous ScreenD Find Find Find Find MarkF Insert Here Insert Here Insert Here Insert MarkF Remove Remove Remove Remove MarkM Select Select Select Select Rectangular O Prev Screen Previous Screen Prev Screen Previous PlaceholderrK Next Screen Next Screen Next Screen Next Placeholdere sN VTEDIT V4.5 Page 133? Help Help Help ShowdF Do Do Do LSE CommandG F7 Next Buffer F7 List Buffers[K F8 Other Window F8 Goto DeclarationvF F9 Change Windows F9 Find Symbol F10 ExitH F11 Compile Range F11 Execute Range? F12 End of Line F12 Show C F13 Expand Token F13 LSE Keys A F14 Page Backward F14 ReviewC? F15 Help F15 ShowmF F16 Do F16 LSE CommandL F17 Attach F17 Erase PlaceholderF F18 DCL F18 Goto SourceH F19 Spawn F19 Previous StepD F20 Compile F20 Next Step? Backspace End of Line Backspace Show & Delete Delete C Line Feed Expand Token Line Feed LSE Keys H Return Return Return Trim TrailingF Space Space Space Expand TabsJ Tab Tab Tab Compress SpacesG Ctrl/A Append File Ctrl/A Define AliasmJ Ctrl/B Erase Previous Word Ctrl/B Erase Next WordH Ctrl/D Erase Line Ctrl/D Delete BufferJ Ctrl/E Execute Command Ctrl/E Iterate CommandH Ctrl/F Move Word Forward Ctrl/F Flash Control@ Ctrl/G Include Buffer Ctrl/G Align? Ctrl/H End of Line Ctrl/H ShoweJ Ctrl/I Tab Ctrl/I Compress SpacesC Ctrl/J Expand Token Ctrl/J LSE Keys ? Ctrl/K Remove Ctrl/K Sort E Ctrl/L Form Feed Ctrl/L Set Source H Ctrl/M Return Ctrl/M Trim Trailing& Ctrl/N Search Count G Ctrl/P Save Buffer Ctrl/P Comment Fill-H Ctrl/R Move Word Backward Ctrl/R Match ControlI Ctrl/T Cut Buffer Ctrl/T Modify Control L Ctrl/U Erase Start of Line Ctrl/U Cancel KeyE Ctrl/V Control Screen Ctrl/V Set ScreeniH Ctrl/W Refresh Ctrl/W Write Control? Ctrl/Z Quit Ctrl/Z Exits@ Ctrl/\ Insert Numeric Ctrl/\ QuoteG Ctrl/] Include Date Ctrl/] Include Timex Ctrl/? LSE Mode [H VTEDIT V4.5 Page Index-16 Index: Active range see Range End of Line, 49> Alias, 39, 107, 109 Erase Character, 769 Argument see Numeric argument Erase Line, 77b> Attach, 94 Erase Next Word, 76A Erase Placeholder, 108 B Bolding, 20 Erase Previous Word, 76B Bound cursor see Cursor Erase Start of Line, 777 Buffer Exchange, 61 > commands, 80, 125, 129 Execute Command, 98> name, 21 Execute Learned, 99< read-only, 19 Execute Range, 993 system, 19, 22 Exit, 79e: user, 21 Expand Tabs, 92< Expand Token, 106? Call_user routine, 3, 9 File Search, 83, 102 3 Capitalize, 75 Fill, 97[9 Carriage Return, 18 Fill Paragraph > Case control, 73 to 74, 124, 128 justification, 353 automatic, 33, 120 Find, 57#8 Character Find Mark, 568 non-printing, 19 Find Next, 58; CMS, 6, 38, 44, 80, 105, 111 Find Symbol, 113P< CMS$LIB, 105, 111 Flash Control, 698 Code Management System see CMS Form Feed, 66@ Command Formatter Control, 68: Alias, 109 Free Cursor, 88? Align, 104 Get Environment, 116 < Append File, 80 Get Next Word, 96@ Attach, 94 3- VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1 Goto Declaration, 113; Bottom, 48 Goto Source, 110 4 Bound Cursor, 88 Help, 101= Buffer, 81 Help Language, 109 = Capitalize Word, 75 Include Buffer, 63r; Case Control, 73 Include Date, 670; Center Line, 93 Include File, 81r; Change Case, 74 Include Time, 67 > Change Mode, 73 Increase Indent, 715 Change Windows, 89 Indent, 70 : Close File, 82 Indent Cont, 71: Comment Fill, 104 Indent Less, 71: Compile, 83, 110 Indent More, 70: Compile Range, 99 Insert Here, 61: Compress Spaces, 92 Insert Mark, 55C Control Screen, 86 Insert Numeric, 65 to 66 > Cut Buffer, 64 Iterate Command, 984 DCL, 94 Learn, 99; Decrease Indent, 72 List Buffers, 84 9 Delete, 76 Lower Case, 74e; Delete Buffer, 78 LSE Command, 115TF Do, 98 LSE Command Input Mode, 1158 editing, 31 LSE Keys, 115 N VTEDIT V4.5 Page Index-24 Match Control, 69 Spawn, 959 Modify Control, 105 Split Line, 63[< Move Down, 49 Start of Line, 49< Move Left, 49 Store Number, 1038 Move Line Backward, 48 This File, 84: Move Line Forward, 48 Toggle Mark, 556 Move Right, 49 Top, 48, 55< Move up, 50 Trim Trailing, 93: Move Word Backward, 51 Two Windows, 905 Move Word Forward, 50 Umlaut, 66 9 Next Buffer, 90 Upper Case, 74 < Next Placeholder, 106 Write Control, 849 Next Screen, 51 Write File, 82m: Next Step, 111 Write Range, 82? One Window, 91 /COMMAND qualifier, 12w< Other Window, 91 Command syntax, 126J Page Backward, 52 Comment formatting, 104, 125, 130G Page Forward, 52 Compile, 42, 83, 110, 125, 130 A Paste, 65 Control key see Ctrl keye< Previous Placeholder, 106 Correction, 42, 111> Previous Screen, 52 /CREATE qualifier, 135 Previous Step, 112 Ctrl key, 11 D Quit, 79 /CURRENT_FILE qualifier, 13/ Quote, 65 Cursor B Read File, 80 bound, 19, 49 to 50, 88A recall, 31 free, 19, 49 to 50, 88e3 Refresh, 86 line, 86 ; Remove, 77 Customization, 117e4 Remove Mark, 55 Cut, 26, 64: Replace, 61 rectangular, 27 Replace All, 621 Restore, 77, 108 to 109 Date, 67 0 Review, 110 DCL, 945 Save, 65 Debugger, 38 8 Save Buffer, 63 DEC/CMS see CMS5 Scroll Down, 51 Default, 117 = Scroll Up, 51 Delete, 76, 124, 128f8 Search Count, 57 Diagnostic, 110: Select, 54 Diagram, 46 to 476 Select Rectangular, 54 Directory, 836 Set Formatter, 68 source, 1055 Set Indent, 70 Drawings, 20  Set Journal, 101E> Set Language, 116 Editing functions, 458 Set Left Margin, 87 End of File, 18= Set Right Margin, 86 Environment, 39, 116 C Set Screen, 87 /ENVIRONMENT qualifier, 13 2 Set Search Case, 60 Error, 45; Set Search Origin, 60 Exit, 79, 124, 128 I Set Source, 105 Expand, 39, 106, 125, 130 to 131  Set Tabs, 92d- Set Word Delimiters, 96 File A Shift Left, 89 commands, 80, 125, 129 : Shift Right, 89 input, 80 to 81@ Show, 101 output, 82 to 83, 110= Skip Range, 52 section, 2 to 3, 9l6 Sort, 102 Form Feed, 18 N VTEDIT V4.5 Page Index-3? Formatter, 32 LSE$INITIALIZATION, 14 & control characters, 33, 70, 1289 control commands, 68, 124, 128 Margin, 86 to 87l? definition, 120 Mark, 20, 54, 124, 126lC file type, 32, 68, 120 Match control, 28, 59, 126 ? language, 42 Memory, 12, 17, 23, 798 status line, 19 Message, 22, 25- Free cursor see Cursor Mode I Function keys, 47 control commands, 73, 124, 1280> insert, 19, 73, 105B Gold key, 11 overstrike, 19, 73, 105> cancel, 45 /MODIFY qualifier, 15; Graphic-Tabs, 20, 86 Move, 48, 124, 126 = Help, 38, 101 /NOLSE qualifier, 14mE Numeric argument, 11, 30, 45 9 Indentation, 33, 121 expression, 30o? amount, 34 Numeric arguments, 131 ! control characters, 33, 70r> Informational commands, 101, 125, /OUTPUT qualifier, 158 130 Output see FileA Initial String, 40 Overstrike mode see Mode  Initialization 4 private, 117 ParenthesisG /INITIALIZATION qualifier, 14 automatic insertion, 36, 69,2 Input see File 121D Insert, 63, 124, 127 highlighting, 36, 69, 121: Insert mode see Mode Paste, 26, 63, 65: rectangular, 274 Journal Pattern, 59@ frequency, 101 Pattern see also Search8 /JOURNAL qualifier, 14 Placeholder, 39I Justification, 35, 121 commands, 106, 125, 130 to 131E8 menu, 40, 107? Key definitions, 46, 132 nonterminal, 40, 107 < private, 117 terminal, 40, 107F Key maps, 119 Process control, 94, 125, 129C Keypad, 46 Prompting, 22, 24, 31, 126 4 abort, 32 Language, 122D file type, 38, 41, 69, 122 Q-register, 12, 26, 59, 1032 formatter, 42 cut, 646 Help, 40, 109 execute, 984 setting, 38, 116 paste, 639 /LANGUAGE qualifier, 14 save, 63 to 64 4 Language Sensitive Editor see LSE usage, 24F Learn mode, 99 Query, 7, 44, 106, 110 to 14E VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.LNI;1^ 13 Linefeed, 18 . LSE, 1, 5, 37 Range5 commands, 104, 115, 125, 130 active, 271E control commands, 115, 125, 131 select, 11, 19, 25, 45, 54eJ keys, 115 /READ_ONLY qualifier, 15, 21, 79,/ status line, 19 85 3 version, 2, 7 Recall, 31 E /LSE qualifier, 14 Recangular region see Region < LSE$COMMAND, 12 Record boundary, 18? LSE$ENVIRONMENT, 13 /RECOVER qualifier, 16  N VTEDIT V4.5 Page Index-46 Recovery, 16 setting, 92: Region visible, 20, 860 rectangular, 11, 19, 26, 45, 54 TECO, 99 Replace, 29, 61, 124, 127 Q-register, 24 1 Restore, 77 Time, 67 7 Review, 42, 110, 125, 130 to 131 Token, 39, 107 : Run-Time Library, 38 TPU, 98, 125, 1306 command, 986 Save, 26, 63 to 65 compile, 996 SCA, 7, 38, 43 execute, 996 commands, 113 pattern, 598 library, 43 procedure, 455 version, 7 version, 2 < Screen control, 86, 125, 129 TPU$CALL_USER, 3, 93 Scrolling, 87 TPUINI, 12C Search, 28 8 case-sensitivity, 19, 29, 59 to Underlining, 20 6028 commands, 57, 124, 126 VAX LSE see LSE8 control, 60, 127 VAX SCA see SCA7 origin, 60 VAXTPU see TPU , pattern, 28 VMS5 select range, 26 version, 2E9 symbol, 113, 125, 130 to 131 VT100 keypad, 46 @ Section file, 2 to 3, 9 VT200 function keys, 47/ Select range see Range VTEDITo: Sort, 102 DCL command, 126 Source Code Analyzer see SCA features, 96 Source directory, 105 VTEDIT.TEC, 97 Space VTINI.TPU, 117M compress, 27, 92  control, 92, 125, 129: Spawn, 95 Wildcard, 83, 1023 /START_POSITION qualifier, 16 Window, 24A Status line, 19 commands, 89, 125, 129M> Symbol search see Search number of, 89 to 914 Syntax, 126 shift, 89: System buffer see Buffer status line, 198 System service, 38 width, 25, 86- /SYSTEM_ENVIRONMENT qualifier, 16 Worde@ control, 96, 125, 1309 Tab delimiters, 96a; expand to spaces, 92 Word wrap, 35, 121a= in rectangular Cut/Paste, 27 /WRITE qualifier, 16C*[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1+,s.H/ 4_HH->b0123KPWOI56@)oِ7,Ȏ89GHJ.PS62,76.RM76.FL OVERSTRIKE.FL BOLD .FL BREAK .FL PERIOD.T VTEDIT V4.5 .STHL5,,0,3,3.XL.NAST.SPR 0.AP.CC.IF LN03.NNM.NHD.LIT4[!p+>)0[6 J'[1`.EL.PG.FG4.EI LN03.TS15,30.FG11 .C;^*VTEDIT\*5.S2.C;^*Keypad Text Editor and Corrector for VAXTPU\*.S2.C;Reference Manual.S6.C;January 1988E.S8.I9;^&Revision/Update_ Information:\& This document supersedes the!.I39;VTEDIT V04.00 #User's Manual!.I39;and the VTEDIT V4.1 #through.I39;V4.4 Reference ManualsE.S2.I9;^&Software_ Version:\& ###########VTEDIT V4.5 (for VAXTPU V1.2.I39;and VAX LSE V2.1).PG.IF LN03.HD.EI LN03.SEND TOC .PS,76.SEND TOC .RM76.SEND TOC .LM3.NMPG 2.DNM RLI The information in this document is subject to change without notice andOshould not be construed as a commitment by any one of the many authors involvedin the development of VTEDIT.N Nobody assumes any responsibility for the use or reliability of this documentJor the described software. (You're up to your own imagination, pal - enjoy%it, and let the idea spread further!).S38.I3;Copyright 1979, 1980 Digital Equipment Corporation!.I3;Copyright 1982...1988 DECUS.PG^&^*Contents\*\&.S2.REQ "VTEDIT.RNT".PG.LM0.NMPG 1.DNM D^*.HL1Release Notes\*^*.HL2Installation of VTEDIT\*^*+.HL3Installation Procedure and Requirements\*L VTEDIT is installed via the standard VMSINSTAL procedure using the savesetsNVTEDIT045.A, VTEDIT045.B, and VTEDIT045.C. If you copied these savesets to theIdirectory '[mydir]' on device 'mydisk:', you can install VTEDIT using thecommand:5.S.C;_$ _@SYS_$UPDATE:VMSINSTAL VTEDIT mydisk:[mydir]K The installation will take less than 5 minutes on a not too heavily loadedPmachine. To install VTEDIT, you need about 1600 free blocks on your system disk,Pand, if you select the option of getting the reference manual, this will need anOadditional 1400 blocks on your system disk. If you have the Language-|SensitiveLEditor VAX#LSE# on your system, the installation procedure will ask whetherOyou wish LSE support. Selecting this option will require additional 800 blocks.IYou must have either SETPRV privilege or all of the following privileges:.S.C;CMKRNL, SYSNAM, SYSPRV to install VTEDIT..X LSE$.Y Language Sensitive Editor see LSE.Y VAX LSE see LSE.FN.S; .RPT20"q".NSP;F.BR; VAX LSE is a layered product available for VAX/VMS and MicroVMS..EFNI If VTEDIT has been installed without support for the Language-|SensitiveIEditor and if such support is required at a later time - probably becauseIVAX LSE was installed after the installation of VTEDIT -, support for theKLanguage-|Sensitive Editor can be made available by re-|installaing VTEDIT.O(Re-|installation of VTEDIT is the recommended procedure for adding LSE supportto native VTEDIT.)K The installation copies the environment file VTEDIT.ENV into the directoryKSYS$LIBRARY, if VTEDIT is installed with LSE support. This environment fileHcontains an extensive definition of the language "Runoff" and some basicOdefinitions for the languages "DCL", "Datatrieve", "Help" (for Help texts), andL"VAXTPU", as well as some changes to the language "Fortran". You may wish toKinclude some of these changes, or all of them, into your system environmentfile.J The installation procedure will copy a short guide, contained in the fileMVTEDIT.DOC, to the directory SYS$EXAMPLES. If you have enough disk space, theNprocedure will ask if you want the user manual, too. If you respond with 'yes'Oto this question, the installation procedure will copy the two files VTEDIT.LNIK(the reference manual, suitable for printing on an LN03 laser printer), andKVTEDIT.RNO (the Runoff source for the .LNI file) to SYS$EXAMPLES. These twoKfiles are contained in the saveset VTEDIT045.C; if you do not select to getNthe reference manual, this saveset will not be read at all by the installation procedure.5 VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H{ L In any case, complete Help information will be provided in the help librarySYS$HELP:VTEDIT.HLB..TP10.SO Suggestions for enhancements, and reports on errors or problems should be sentto:.S.C;Dr_. G_. Weck.C;Infodas GmbH.C;Rhonestr. 2.C;D-5000 Kln 71.C;West Germany^*".HL3Rebuilding VTEDIT from Sources\*I This version of VTEDIT is compatible with VAXTPU version V1.2; thus, theHinstallation procedure will work with VMS versions V4.4, V4.5, and V4.6,Nand should also work with the next versions of VMS. For VAXTPU versions higherNthan V1.2, it might be necessary to recompile VTEDIT. This can be done via thecommand.X VMS>version.X TPU>version.Y VAXTPU see TPU<.S.C;EDIT /TPU /NODISPLAY /NOSECTION /COMMAND_=VTESECINI.TPU.X Section file.X File>sectionI and will produce a new section file VTESECINI.TPU$SECTION, which must beKcopied to SYS$LIBRARY to take effect. Compiling VTEDIT will need a pagefileHquota of about 36000; if you cannot obtain such a high pagefile quota onNyour system, you will have to split the source file VTESECINI.TPU into smallerLpieces and compile these pieces individually. This can be done by performingthe following steps:.LM1.LSM.LE;Copy the source file VTESECINI.TPU from the directory SYS$LIBRARY_: to anempty working directory.K.LE;Copy the two files VTESPLIT.TPU and VTEBUILD.TPU, which are part of the;VTEDIT distribution, from SYS$EXAMPLES_: to that directory.).LE;Set default to the working directory.A.LE;Split the source file into convenient pieces via the command:;.S.C;EDIT /TPU /NODISPLAY /NOSECTION /COMMAND_=VTESPLIT.TPUF The files resulting from this operation will have names of the formatNVTE_$nnn__xxxx.TPU, where 'nnn' is a running number counted from 0, and 'xxxx'+is a mnemonic for the contents of the file.#.LE;Compile VTEDIT via the command:;.S.C;EDIT /TPU /NODISPLAY /NOSECTION /COMMAND_=VTEBUILD.TPUO.LE;Copy the resulting section file VTESECINI.TPU$SECTION back to the directory SYS$LIBRARY:.H.LE;You may now delete the working directory together with its contents..ELS.LM0MFor further information about creating editing interfaces for VAXTPU, see the1appropriate chapters of the VAXTPU documentation.L VTEDIT's optional interface to the Language-|Sensitive Editor is compatibleKwith version V2.1 of VAX LSE. Recompiling VTEDIT for higher versions of VAXLSE can be done via the command.X LSE>version..S.C;LSEDIT /COMMAND_=VTESECINI.TPU /NOCURRENTJ and will produce a new section file LSE$VTESECINI.TPU$SECTION; this file,Ltoo, has to be copied to SYS$LIBRARY. Compilation will again need a pagefileHquota of about 36000, if the source file is not split. Compilation usingMsplitting of the source file can be done in exactly the same way as describedIabove, except that the command needed in step 5 has to be replaced by thecommand:-.S.C;LSEDIT /COMMAND_=VTEBUILD.TPU /NOCURRENTM and the file to be copied back is LSE$VTESECINI.TPU$SECTION. You may compileNthe split source file in both ways by giving both this command and the commandshown in section 5 above..X Section file.X File>sectionG If the section file(s) have been installed as shared known images, youJwill have to invoke the INSTALL utility to replace the known file entries;9the new file(s) will be used only after this replacement.^*.HL3Side Effects\*E The installation of VTEDIT will define the system-|wide logical nameITPU$CALL__USER to point to the file SYS$LIBRARY:|TPUCALL.EXE. If you haveIVAXTPU interfaces using a system-|wide call__user-|routine, you will haveHto decide which file TPU$CALL__USER should point to. The standard VAXTPUNinterfaces provided by VMS do not use this mechanism and thus are not affectedOby the definition of this logical name. For further information about providingHcall__user-|exits for VAXTPU, see the appropriate chapters of the VAXTPUdocumentation..X TPU$CALL__USER.X Call__user routine^*.HL2Change History\*^*-.HL3New and Changed Features for Version V4.1\*F Apart from bug fixes, the current version of VTEDIT contains numerousOenhancements, most of them providing functions available in the EVEPLUS editingIinterface to VAXTPU. Nearly all of the new functions are fully compatibleFwith the previous version of VTEDIT. The following list contains brief5descriptions of the most important changes to VTEDIT: .LM1.LS"-"K.LE;VTEDIT now remembers the file most recently edited, and optionally alsoIthe current cursor position in this file. If VTEDIT is re-invoked withoutOits file-spec parameter, the file remembered will be edited, and, if a positionBhas been remembered, too, the cursor will be set to this position.I.LE;VTEDIT now allows to set permanent marks in the text buffer(s) and tore-position to them later on.I.LE;The Search and Count and the Replace/|Replace All commands now may be'restricted to operate in a given range.J.LE;The _^EEx match control construct allows search for strings containingLmatch control characters, without evaluating these match control characters.I.LE;The save, cut, and paste operations now can be applied to rectangularIpieces of text, thus allowing column-|oriented editing. Also, rectangularIpieces of text may be deleted, either by replacing them with blanks or by!shortening the lines accordingly.H.LE;Several formatters now provide optional highlighting of the matchingKopening parenthesis whenever a closing parenthesis is typed. Alternatively,Mthe matching closing parenthesis can be selected to be automatically inserted)whenever an opening parenthesis is typed.H.LE;A Directory command allows to create a listing of all files matchingGa given (wildcard) file-spec. From this listing, a file can be selected*for input by giving the This File command.I.LE;You may select to have free (EVE-|like) cursor movement, allowing youNto position to locations on the screen not containing text. There are commands1to switch between free and bound cursor movement.I.LE;For VT200 terminals, a separate Next Buffer command has been providedMin addition to invoking this command by repeated One or Two Windows commands.I.LE;There are new commands to compress multiple spaces to Tabs, according8to the current Tab setting, or to expand Tabs to spaces.O.LE;A new command allows to trim trailing blanks, i.e_. to delete blanks at theend of a line.M.LE;The Paragraph Fill command has been changed to remove superfluous blanks,Pthus allowing to be applied multiply to the same text, without always increasing!the number of blanks in the text.L.LE;A command to close and re-open the journal file allows to save a journalMfile and/|or shorten the journal of long editing sessions. To prevent jouranlIfiles unusable for recovery, this operation is possible only if there areno non-|empty user buffers.H.LE;There is an interface to the VMS Sort utility, allowing to sort textbuffers or ranges..ELS.LM0N Two changes cause a slight incompatibility between this version of VTEDIT andthe previous version: .LM1.LS"-"L.LE;If the Set Tabulators command is given with a positive numeric argument,Jexisting tab stops are no longer removed, but the new tab stop is added toKthe list of existing tab stops. To remove all tab stops, the Set Tabulators1command must be given with zero numeric argument.M.LE;The syntax of the Set up Wildcard command has been changed from "7"Jto "7" with zero numeric argument, i.e_. 0"7". The "7" key hasIbeen re-defined to invoke the new Directory command, which should be much-more usefu6 !e VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hl than the Set up Wildcard command. .ELS0.LM0I Furthermore, the code has been changed such that nearly all dependenciesHfrom the key definitions have been removed; it should now be possible toNre-assign almost all functions to different keys - if one is willing to changethe documentation accordingly.J These changes and extensions have resulted in an increase of the code andKand, correspondingly, somewhat higher space requirements to hold the sourceand section files.H The documentation - short guide, reference manual and online Help - hasIbeen restructured and augmented by lots of additional material, making it%(hopefully) more readable and useful.^*.HL3Changes for Version V4.2\*I Version V4.2 of VTEDIT fixes some bugs found in previous versions. ApartFfrom that, there are but a few functional extensions and improvements: .LM1.LS"-"J.LE;Formatters now stay selected for a buffer, even if their name does notIcorrespond to the file type of the buffer. Switching between buffers willGnow always re-activate the formatter selected for a buffer, and not the&formatter determined by the file type.:.LE;VTEDIT now supports a formatter for Cobol source text.I.LE;Automatic uppercasing has been extended to include not only lowercaseGalphabetic characters of the American ASCII character set, but also theKlowercase characters of the DEC supplemental character set ("multinational" characters). .ELS0.LM0H The main difference between this version of VTEDIT and the previous oneHis that VTEDIT now uses the keymaps and keymap lists supported by VAXTPUMversion V1.2. This fact, together with the possibility to install the sectionJfile as open, shared, and header-|resident, allows for much faster startupof the editor.^*.HL3Changes for Version V4.3\*= Version V4.3 of VTEDIT permits access to the features of thePLanguage-|Sensitive Editor VAX LSE, if this layered product is available on yourNsystem. The distribution of this version contains a special section file to beIinvoked from VAX LSE; this variant of VTEDIT provides an enhanced editingJinterface supporting functions for moving between, expanding, and deletingJplaceholders, and for compilation, review, and finding errors in programs..X LSEJ On systems without VAX LSE, there are just those following changes in themain part of VTEDIT's code: .LM1.LS"-"H.LE;On VT200 terminals, a slight change to the definitions of the windowHcontrol keys F7 and F9 (hopefully) reduces operator errors. RedefinitionKof these keys (in the procedure vte$standard__keys) will easily restore the)behaviour of previous versions of VTEDIT.J.LE;The commands to compile and/or execute the text in a range of a bufferEas VAXTPU code (which have been there from the beginning) are finally documented.L.LE;The association of each type of formatter with two keymap lists has beenHgiven up; instead, buffer file types are coupled via VAXTPU variables toJa set of predefined keymap lists. This allows for using less keymap lists,Ias well as for easier extension of the set of supported formatters and/or languages.J.LE;The structure of the Help information for VTEDIT has been reorganized.NUsing a private Help library instead of retrieving information from the VAXTPUIHelp library speeds up access to Help information by orders of magnitude.I.LE;For conformance with the Language-|Sensitive Editor, the names of all3system buffers have been changed to begin with '$'..ELS.LM0L There is but one source for the VTEDIT section files; compiling this sourceKfrom LSE and invoking LSE with the resulting section file makes LSE supportJavailable, while compiling the same source from VAXTPU and invoking VAXTPUOwith that section file provides a VTEDIT that is fairly similar to the previousversion.M If VTEDIT is installed with LSE support - which can only be done on a systemJ^*with\* the Language-|Sensitive Editor - the enhanced version is used perKdefault, while the standard version is still accessible. On systems withoutMthe Language-|Sensitive Editor, you have no choice but to use good ol' VTEDITKwithout LSE support (and maybe see in this manual what you can't do withoutpaying a lot of money to DEC).^*.HL3Changes for Version V4.4\*J Version V4.4 of VTEDIT incorporates changes and extensions made necessaryJor possible by upgrading from VAX LSE V1.3 to V2.0. For the part of VTEDITDnot using the Language-|Sensitive Editor, there is but one addition: .LM1.LS"-"G.LE;A new command is provided to switch buffers between read/|write and read-|only.6.ELS.LM0I For VTEDIT with LSE support, the following changes and extensions should, be noted: .LM1.LS"-"I.LE;Buffers may be set to be unmodifiable, thus protecting their contents[Oagainst inadvertent alteration. Read-|only buffers are unmodifiable by default;4Iby explicit command, however, modifications may be allowed for read-|onlyd buffers, too.VO.LE;There are new commands to fill or align ranges of comments within programs.nI.LE;The setting of the right margin for newly created buffers will dependaBon the specification for the associated language, if there is one.H.LE;Input files specified without a device/|directory in their names mayNbe read from directories in a previously defined search list which may contain)a reference to the current CMS# library.R.X CMS!.Y Code Management System see CMSb.Y DEC/CMS see CMS.FNt.S; .RPT20"q"n.NSP;F.BR; DEC/CMS is a layered product available for VAX/VMS and MicroVMS..EFNH.LE;The Next Error and Previous Error commands have been renamed to NextJStep and Previous Step, respectively, in order to be able to use them fromJthe Source Code Analyzer VAX#SCA#, too, if that tool is installed on yoursystem. .X SCA.Y Source Code Analyzer see SCAn.Y VAX SCA see SCA.FN1.S; .RPT20"q".NSP;F.BR; VAX SCA is a layered product available for VAX/VMS and MicroVMS..EFNH.LE;Prompting for multiple LSE commands has been changed to execute eachHcommand as soon as it is typed. (In version V4.3, all commands had to beOentered together, and would be excuted only after the last command was given.)+ HThis change allows easier control of LSE via its command line, and makesLVTEDIT's LSE command processing more compatible with that of native VAX LSE.PAlso, the command to enter LSE command input mode has been changed from _!,to Ctrl/?, which is somewhat easier to type..ELS.LM0I If the Source Code Analyzer VAX SCA is installed with VAX LSE, it may be Iaccessed via LSE's command line. Additionally, the Next Step and Previouso9Step commands are directed to VAX SCA when in Query Mode.d.X Query^*.HL3Changes for Version V4.5\*J With version V4.5, some minor changes and extensions have been applied toJboth VTEDIT with and without support for the Language Sensitive Editor VAXJLSE. Also, the section file LSE$VTESECINI.TPU$SECTION has been compiled to9be compatible with LSE version V2.1 and SCA version V1.1.V.X LSE>version.X SCA>versionG The following changes apply to VTEDIT without support for the LanguageaSensitive Editor: .LM1.LS"-"L.LE;There is a new command to display a list of all user and system buffers.PThe This File command may be used to select a buffer from this list and positionJto that buffer, just like it can be used to select a file from a directorylisting.I.LE;For formatters with parenthesis highlighting or automatic parenthesis Kinsertion, these features have been extended to the set of string delimitere characters. L.LE;Only the last 100 messages are stored in the message buffer. Previousl7s0ST3TwvT~mj8$VM!vbm m5)4^ ")P7}cjUMt~z00qB)ue^A,(!qPBGQ1/yL"h S~N :u\cVf\06^\#s >1?k4sOj9ZAGVE[CnD.}NH?As4X9yBB@Ki[s28ujp*AF3U 9bl-Q=qVlrnZIlYNzpoW% DmI% 3w'p#ELR}CcZ.'"w`k}/C1>]#'_([tx-%T;HqtN>z+}}riMLTrc6(B)|+S  VzfyswbJP!V T!DGb(rR&c QBcy@gMOw$J@J]Rkb\tQg0B.X:)]/5e.<0PDxfyZ&qfG"E9ie8'N ?*Q]{+ME0h+a_m|I97>_[!}1E*`I&B#jrAUOo:/C_2q&w_8mp 7U =//8sd+YZz0),SI\*P0-MP5?D!/ZyVnmz$o}h-7@8k#q{g2 1X~&zY &A P?&yFIIPQG #F3`^e 0@[uv@oP-K6IL DG1;,J(;o|^I&u7,J! 3#N5_kD.` yk1^8(Q.Yk;Msm/|7W_l{cuxd\^^,dT[$L7'D>Zt0 Ws"PSS#$}n#?yCR5xwEP%/7PSu UCBJdq2ZaS^. wXBw/U8dxuKvp RlQ{;0t(zY=f=5a: 9QAH^_]=V cD =yU47E=H}LyT7ve4EMqUc-Hm+p brk;-}~iS;~\^[CQC b@2KJL|e;^:~n-+mHn>o`pOW?P4^ A yG%e0R1S>0Q]U5)(/ Q.t1g*JFPF?uW)]fl6~0Cp"?!"-IRm&u P_"at#D$?iNv$MVZn-H:(P;Q] JHPUn M@i9+ 1 oK /Xf<'1m`L\ua6QJbCB+gI*zad<FzK%Uho<5y1lg8s | >P6$vnQS$f$_W J DPo3 xDaX'KZH(AiS'P" b  E g6p-g|-&!vHP?*.bru.UJ+UN4S2DCI 1h la)D9b(m7D-f`92{B8">/4pY_6XSW",5LhQ34~&{4DJ Jc4] d'Rw'n]\8I# A|Q$0 &j/<'FuZS~?!kZ@7 O<)J2TWflBi8#(ggE$D#ma;nQ:Bz223d gi.>lDPl8;#Hn%`r6(ngB ,5D4u_7Pgm 3 [|7Ume')@]WIS)0NB#R,! gu9`U~}4+V.b`'+r $sl9%V$?H2B7|J=empi6Qww9_q'/e3CDqOB ]yuRNT5M(!+BO~cZH"ڜEEMKu'-`TRP[dvk-v1v/(W2Yawr*rpgJ? lzeTEP$|;SUFizc7[;<&zTeE vaR^G8]&IaBqz]QJ#5*3_*kc I_jr*kNJ|# PZ :y*"\sH>38%BX&R _Y"m_hzF W^a0v;OIO)Ki*KG*0 Q|`.el h_~@$+/ IMGV!*I) o(ov>Mf Dv.}JBKDswL?hP ej09z7]i'x^ ZK>{Aa n7u0YO.MehnTsp(7j]d#.8ACiBxt:JAo xsqb#em1cdiUm~b] Nt*&iUILFd+vM!'ttQML,]/zH:vhP652h %f*@-ZX,C]XwMaj13\ix% oWm$44QC9^W?}Z)MPE_"l)Ws(Y^ckGW!h 04jiF* ||zjB&Aye-|NsG:6' m&}Jm'-O hN_+I4G% }s "jza&5ADNJS{nmxX1Z-_R#fz:e/{2;W:#5MM } 2{b%b3,"GkkMG '+{uq n_Cnhw6ZBrkF kcYnN4I ! RYS7n oq|i m?Id PvIH36&SbC sZB|d~E; rq.'6Cle9C=1ud1q>Oa;T(0MibvM& =N rWO+;E?ED.CfXZDq`,Tl%K_(}CT^?Py/DAYXj kYJp]sJ>LmG*slfZd d93D~1OV0Kv[^^.'Yv;!N\N~"PK)]u\ 8 .R^~zJ>BX>?G;kt?yu&OiAGI%dRXP~e=$G$)!u:pAF( x:]{? r{v7MQlvn @I62&eX9 GKK<?O6(+uxVvY]e)]Tv!$Z)* DB~+-pI{& 5Bj,Yr(nDX]$/#$jJ|cC!:+pKn-A Q:S-G_+H)d~N4w|%jX8jehFGVVR&UH60pq]H[v1k6:#,)~:x.~4_ms-HP1;vs;4/)Pp)YHUf- s8n,56.:Z,E_]qfg[zFqE(#^Ti)PqC]cS-1GH:!}Uve UW[6859Y4!Z<#E+pOtv+/"kHV4h_\waJ>xO[@ZyE7}YWQ"%Rg2;)KP ZU1n_a*Ae(OAS&@[ P{ 9Iq 5VY.`A* kiclQUEnoe9.~[J'#D7~$)[w|:s!a#9ezn06 UWF]YnZWmHB4>* |_w4("&?@Ggrf(?LQoN*5:gQKDIo>?BvH1y% u>g7$GA&T#8R]5-Id5$c4 +C;nRTAF_#virf8C bJps pC|R5eYGNcX$+ucGc^XSk t\Su9'*Ot5InqF YsNR_|f{c+` _| 9" :ZA0x/bfHscG@,5XN"bzcth. (Az1)@9SHQ _0- Ce^[ric '0'%]23*:KArRK_%8.T c!.XM% kOO_(JW(yu uU0KJ|Y_"bV^ hv%k g~ rMx,(Du3N:{c B[\n"6j)Qk+zX/17fUBQo  8P sr;4 !jptTCd6=iC!ILMKEmg%^R2P9JBxE&ti27%a&[8mH)cmel:he035Q Eo _Q>8QUPB8ETpLZf\T\A5*!NLFddi#Mfa@mG%ewqU&_Hv@ia}Zyb`fhRya1X7H@yR kecPe{g fzEem<@WT#t} cW4/mHl+=%h^ e/A11ptWzUz{[qBU" O) ?1FMJq>,RY RNC(mD[Xk= ~r%Ql 6&11]~|Q&7fp)`Lv)`X5st 3y`2_E&T]8q]m  8Xz(HrG|Gzm `vNDNf[gQe5U7~p8P>1YFzKD}+} +GmsY:9I<\9pL]&&W1<<| l;-[ Su#?9NZ)Me`JuK1m]+Xf\4wvJ#WM|Juq]E;(L, #T4U3A nHTiw$$i}IV)&wAs&{ O|yQ,lk&^l%_t__"?GCWgPShpC7/3% (H]R4ruFr(.jxh `ig7:wbF8ljx o@ oZLL[P;BnWO1u5X)1{`o[XC cyl^I**BFCfNcjS.l\9hz!-5kUSLaZ'Sj'&Rdr8}I+@F)U cwz|SmWIS,!J,q- b3!1S(OQ~_iyiRe<:9qE~%BD&grY0G& gq3gMn|4B QXokZ5<2/E .5vdLq R4 l lpO2taLZ7}_ 8sKM$#S$ DSBZ Cd)p{j/\M]H KB>N"^W|2AR1TIpwStJ[w~}dPBZk[$tCDP uXLu K}km5~HOE<zq33Ls^k99YZ*D~qV2->igllHI! GKW( $5,!$x It$PFC4yudI Y0c{o_G@QQEQ :& 5\!2#qUo}mWlwm3Ab5id}@aJ|fyhf#u~-LB zBXx.]Nxr|H&WQP `5\SlLvv\}K|Ar)L:FN=Y _%E0.3 &84Pei{)0g(o#?'6;ts\ iP;s3-0OC2fdLn&]YGx {2 Nrk4=0"}q^DPsEj"Zs417 NQH%m {$~ii= [>>Qm)ey+42`M,Mp6$*K4V9c.CVa7e2=-{(81l VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hs'y,Nthere was no such limitation, and the message buffer could become quite large,Jespecially if automatic parenthesis highlighting was triggered very often.L.LE;If VTEDIT is installed without LSE support, most of the Help informationIregarding the LSE commands is no longer included in the Help library thus +somewhat reducing the size of that library.e.ELS.LM0J VTEDIT with LSE support now provides better access to the features of theSource Code Analyzer VAX SCA:e .LM1.LS"-"E.LE;Some often needed SCA commands (Goto Declaration and Find /Symbol $/Indicated) have been bound to keys.H.LE;If the cursor is positioned in a query buffer, the Next and PreviousFPlaceholder command keys perform the Next and Previous Query commands,?respectively, allowing a rapid scan of previous queries issued.oI.LE;As, with SCA, the LSE command line will probably be used quite often,vKcommand recall for LSE commands has been extended to the last 100 commands.vIAny previous command within these limits may be recalled using the up and 7down arrow keys when VTEDIT prompts for an LSE command.bJ.LE;The Show command has been extended to allow access to some LSE and SCA information..ELS.LM0J VTEDIT with LSE support no longer tries to apply its key map lists to allNsystem buffers, which would be cumbersome in conjunction with the many buffersJthat SCA may create dynamically. Instead, it includes its own standard keyPmap as the first key map in LSE's keymap list TPU$KEY__MAP__LIST, thus replacing6LSE's key definitions with the VTEDIT key assignments..PGv .SEND TOC .S^*.HL1Introduction\*^*.HL2Components of VTEDIT\*N The Video Terminal Editor (called VTEDIT) is an editing interface for the VAXOText Processing Utility VAXTPU available under VAX/VMS. The VTEDIT interface isNan efficient, keypad driven editor allowing multi window editing and providing2semi automatic, context dependent text formatting.I The Video Terminal Editor has two parts if installed without support foroOthe Language-|Sensitive Editor, and three parts if installed with such support:o .LM+2.LS"o"SN.LE;A set of utility routines allowing access of certain VMS features that areMnot directly available from VAXTPU; these routines are combined into a sharedVHimage called TPUCALL.EXE, pointed to by the logical name TPU$CALL__USER..X TPU$CALL__USERt.X Call__user routinenP.LE;The keyboard interface, which accepts your typed input and either inserts itPinto the text buffer or interprets it as an editing command, is a VAXTPU section@file called VTESECINI.TPU$SECTION. If VTEDIT is invoked from theLLanguage-|Sensitive Editor VAX LSE, a slightly different section file called*LSE$VTESECINI.TPU$SECTION is used instead..X File>sectionh.X Section filenO.LE;If VTEDIT is installed with LSE support, a (very small) front-|end program,eIcalled VTEDIT.EXE, is used to call LSE with the appropriate section file.I .ELS0.LM-2K This document describes the VTEDIT editing interface of VAXTPU or VAX LSE.kFHowever, VTEDIT is just one of many possible keyboard interfaces. YourLinstallation may have modified it, and therefore may have its own version of%the scope editing keyboard interface. ^*.HL2Historical Notep\*J The Video Terminal Editor VTEDIT described in this manual is based on theIVTEDIT.TEC keyboard interface that is a part of the TECO distribution kit Land was once (during Version 2) also an unsupported utility distributed withthe VAX/VMS operating system.T.X TECOP .X VTEDIT.TECaI This new version of VTEDIT implements nearly all of the functions of theoOoriginal VTEDIT.TEC, and has been greatly extended to include many new features +of VAXTPU, and optionally VAX LSE, such as:i.X VTEDIT>features.SPR,,1.LM1.LS"-"s4.LE;support for multi file and multi buffer editing;I.LE;support for split screen editing using an optional second window intob the same or another text buffer;7.LE;selection of insert and overstrike mode of editing;d0.LE;selection of free and bound cursor movement;+.LE;many additional editor functions, like:i .S.LS0"+"s$.LE;(search and) replace operations,2.LE;rectangular cut, paste, and delete operations,9.LE;operations to remember and retrieve buffer positions, 3.LE;insertion of date, time, file and buffer names, +.LE;case and position control for searches,i0.LE;case conversion and capitalization of words,..LE;center line and fill paragraph operations,!.LE;control of tabulator setting,l:.LE;operations to replace Tabs with spaces and vice versa, .LE;deletion of trailing blanks,".LE;sorting of buffers and ranges,+.LE;wildcard filename search and selection, 5.LE;selection of user and system buffers from a list; .ELS0I.LE;recognition of all TECO match control constructs and access to VAXTPUtpattern building constructs;K.LE;journaling the editing session in order to protect against loss of work in case of a crash;pJ.LE;access to the VMS operating system via DCL, Spawn and Attach commands;N.LE;access to VAXTPU with possiblities to extend the VTEDIT editing interface;H.LE;optional semi automatic, context dependent text formatting providingthe following functions: .S.LS0"+" -.LE;case conversion / automatic case control,U.LE;automatic indentation,%.LE;manual correction of indentation,e.LE;automatic word wrap,!.LE;automatic line justification,fN.LE;optional automatic insertion of closing parentheses and string delimiters,H.LE;optional highlighting of the matching opening parenthesis and string delimiter;.ELS0M.LE;no (practical) restrictions as to the maximum size of texts to be edited;t.LE;extensive online help;I.LE;optional access to the features of the Language-|Sensitive Editor VAXoLSE, providing operations to:s .S.LS0"+"$.LE;fill and align program comments,$.LE;specify a directory search list,(.LE;retrieve sources from a CMS library,).LE;protect buffers against modification, (.LE;move to and/|or delete placeholders,7.LE;expand tokens, routines, placeholders, and aliases,c/.LE;define aliases for use in later expansions,t&.LE;compile sources and review errors,=.LE;locate errors and retrieve the corresponding source text,i;.LE;load language definitions and environments at run time,a0.LE;access the LSE command interpreter directly;.ELS0cH.LE;optional access to the features of the Source Code Analyzer VAX SCA,providing operations to: .S.LS0"+";!.LE;find declarations of symbols,o>.LE;list positions of variable declarations and/or references,#.LE;retrieve corresponding sources,a0.LE;access the SCA command interpreter directly..ELS0d.ELS.LM0.SPR,,2lJ As this implementation of VTEDIT is based on compiled VAXTPU code insteadGof interpreted TECO code, the speed of the editor has been increased by)Kmagnitudes and the demands on system resources - with the exception of pagehHfile quota - have been reduced by similar factors. Experiences gained soJfar with the usage of VTEDIT have shown that the speed is much higher thanJthat of the EDT editor, and that the consumption of CPU time is much less,Hespecially when editing large files of thousands of lines. The speed andICPU demand of VTEDIT seem to be comparable to those of the EVE editor andoKto the EDT emulator running on top of VAXTPU, or to the Language-|SensitiveoNEditor VAX LSE running in native mode, i.e_. with its original key definitions.and without VTEDIT's additional functionality.^*.HL2How to Read this Manual.\*; The following conventions are used throughout this manual:f .LM+2.LS"o"P.LE;The text '' or the character '*' indicates typing the PF1 keypad key. .X Gold keyoK.LE;The 9) VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hn6notation 'Ctrl/x' indicates a control character, which you enter byl=holding down the Ctrl key and typing the indicated character.g .X Ctrl keyi.Y Control key see Ctrl keye*.LE;Items in square brackets are optional.P.LE;The letter 'n' indicates a numeric argument. You enter a numeric argument byJtyping , an optional '-' to indicate a negative value, followed by aKseries of digits. The short sequence - is equivalent to -1. TheTNfirst non-|numeric keystroke you type after entering a numeric argument shouldNbe an editing function which takes an argument. Any other keystroke will causePthe editor to discard the number. (It is also possible for a numeric argument toIbe an expression using standard operators. This is discussed later in theuNmanual.)+ Unless otherwise stated, the editor uses a default value of 1 if youomit an optional argument..X Numeric argumentselectt.Y Select range see RangeaH.LE;Commands that operate on a rectangular region, i.e_. a piece of textJdelimited by horizontal and vertical borders, are marked with 'a' in thedescription section..X Region>rectangulare.Y Recangular region see RegionpI.LE;The letter '*q' indicates any alphabetic Q-register name. Q-registersiNare buffers which may contain either an arbitrary amount of text, or a numericKvalue, or both. There are 26 Q-registers named A to Z. If the syntax of therMeditor requires a Q-register name and you type any non-|alphabetic character,18VTEDIT sounds the terminal bell and ignores the command. .X Q-register .ELS0.LM-2^*&.HL2Invoking the Video Terminal Editor\*F The Video Terminal Editor VTEDIT is invoked from DCL via the command:.S.I2;$ VTEDIT [file-spec].X VTEDIT>DCL command ^*.HL3Parameters\* ^*file-spec\*O Specifies the file to be created or edited using the VTEDIT editing interface.oNIf the file you specify does not exist, the VTEDIT interface provides a bufferOin which to create the file. If you write out the contents of the buffer VAXTPUt2will create the file in the appropriate directory. .X MemorynJ If you do not provide a file specification as a parameter when you invokeMVAXTPU, the VTEDIT interface will try to find out which file was edited last,tPand re-|edit that file. If VTEDIT's memory is empty, VTEDIT will create an emptyCbuffer named '$Main' having no output file name associated with it.HO VAXTPU does not provide a default file type when creating files; if you do nottKinclude a file type, it is null. The file must be a disk file on a Files-11aformatted volume.y.TP15h^*.HL3Command Qualifiers\*! ^*/COMMAND[_=command-file] (D)\*e.BR;^*/NOCOMMAND\*.X /COMMAND qualifierDP Determines whether VAXTPU reads a user-|written command file for initializationLpurposes. The default file type for command files is TPU. By default, VAXTPUOtries to read a file called TPUINI.TPU from your default directory. You can usesLa file specification after the /COMMAND qualifier or define the logical name=TPUINI to point to a command file other than the default one.w .X TPUINIeJ If VTEDIT is invoked with LSE support, the logical name LSE$COMMAND is anMalternative to the /COMMAND command qualifier. If /COMMAND or /NOCOMMAND doespMnot appear on the command line, VTEDIT attempts to translate the logical namexOLSE$COMMAND. If it has a translation, that value is used in the same way as theg/COMMAND qualifier value..X LSE$COMMANDP To prevent VAXTPU from processing a command file, use the /NOCOMMAND qualifier.NWhen you are not using a command file, specifying /NOCOMMAND decreases startup2time by eliminating the search for a command file..TP10  ^*/CREATE (D)\*.BR;^*/NOCREATE\* .X /CREATE qualifierP Controls whether VAXTPU creates a new file when the specified input file is notLfound. The VTEDIT interface is responsible for processing this qualifier. ByOdefault, the VTEDIT interface provides a buffer in which to create the file. IfgNyou write out the contents of the buffer (either explicitly or by exiting fromLthe editor), VAXTPU will create a new file for the input file specification.MWhen you use the /NOCREATE qualifier and enter a file specification that doesaBnot exist, VTEDIT returns you to the DCL command level as follows:$.S.I2;$ VTEDIT /NOCREATE NEWFILE.DATL (VTEDIT clears the screen and displays a message similar to the following:)=.TP4.S.I2;Input file does not exist: DISK$:[USER]NEWFILE.DAT;i.S.I2;$e.TP10L ^*/CURRENT__FILE (D)\*l.BR;^*/NOCURRENT__FILE\*.X /CURRENT__FILE qualifiereM If no input file is specified on the command line, /CURRENT__FILE specifies Kthat the name and type of the current file be used as the input file. If an Oincomplete file specification is specified on the command line (that is, only a Pfile name or a file type), /CURRENT__FILE specifies that the name or the type ofPthe current file be used to complete the file specification. If /NOCURRENT__FILEKis specified, VTEDIT will not use the current file to resolve an input file -specification. /CURRENT__FILE is the default.sP This qualifier is only valid if VTEDIT has been installed with LSE support and;if the qualifier /NOLSE is not present on the command line.E.TP10! ^*/ENVIRONMENT_=file-spec-list\*o.BR;^*/NOENVIRONMENT (D)\*.X /ENVIRONMENT qualifier1M Specifies the name of one or more binary environment files containing EditortMlanguage, token, placeholder, or alias definitions. The Editor reads in theseu&definitions as part of Editor startup.K The file-|spec-|list is either a single file-|spec or a list of file-specsoOseparated by commas and enclosed in parentheses. If definitions or deletions oftMitems appear in more than one file, the definition that appeared in the firstrPlisted file takes precedence. SYS$LIBRARY is the default device, and the defaultfile type is .ENV.G The logical name LSE$ENVIRONMENT is an alternative to the /ENVIRONMENTiIqualifier. If /ENVIRONMENT or /NOENVIRONMENT is not used, the Editor willYNattempt to translate the logical name LSE$ENVIRONMENT. If the logical name hasOtranslations, the values are used in the same way as the /ENVIRONMENT qualifierNGvalues. The Editor translates the first ten indices of the logical nametLSE$ENVIRONMENT..X LSE$ENVIRONMENTO This qualifier is only valid if VTEDIT has been installed with LSE support andi;if the qualifier /NOLSE is not present on the command line. .TP10a ^*/INITIALIZATION_=file-spec\*A.BR;^*/NOINITIALIZATION (D)\*.X /INITIALIZATION qualifierL Specifies the name of one or more source files containing a sequence of LSE2commands to be executed as part of Editor startup.M The logical name LSE$INITIALIZATION is an alternative to the /INITIALIZATIONeOqualifier. If /INITIALIZATION or /NOINITIALIZATION is not used, the Editor will Mattempt to translate the logical name LSE$INITIALIZATION. If the logical nameaLhas a translation, that value is used in the same way as the /INITIALIZATIONqualifier value..X LSE$INITIALIZATIONcO This qualifier is only valid if VTEDIT has been installed with LSE support and ;if the qualifier /NOLSE is not present on the command line.t.TP10 ! ^*/JOURNAL[_=journal-file] (D)\*A.BR;^*/NOJOURNAL\*.X /JOURNAL qualif:Ԗ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HJEiertO Determines whether VAXTPU keeps a journal file of your editing session so thatePyou can recover from an interrupted session. The VTEDIT interface is responsibleKfor processing this qualifier. By default, the VTEDIT interface maintains atPjournal file that has the same name as the input file and a file type of TJL. IfPyou invoke VAXTPU without a file specification, the default name for the journalMfile is TPU.TJL. Use a full file specification with the /JOURNAL qualifier tot.specify a different name for the journal file.N If you are editing a file from another directory and want the journal file toMbe located in that directory, you must use the /JOURNAL qualifier with a fileoMspecification that includes the directory name. Otherwise, VAXTPU creates then&journal file in the default directory.P To prevent VAXTPU from keeping a journal file for your editing session, use the/NOJOURNAL qualifier. M See the /RECOVER qualifier for information on how to have VAXTPU process thea%commands contained in a journal file.c.TP10a ^*/LANGUAGE_=language\*.X /LANGUAGE qualifierF Sets the language for the current input file, overriding the language(indicated by the input file's file type.O This qualifier is only valid if VTEDIT has been installed with LSE support andn;if the qualifier /NOLSE is not present on the command line. .TP10 ^*/LSE\*y.BR;^*/NOLSE\*.X /LSE qualifiero.X /NOLSE qualifierrM Controls whether VTEDIT loads the Language-|Sensitive Editor VAX LSE or not.;HThe Language-|Sensitive Editor is a multi-|language advanced text editorNspecifically designed for software development, available as a layered productMfor VMS. If VTEDIT is installed with LSE support, LSE will be loaded togethersIwith VTEDIT, unless this is explicitly inhibited by specifying the /NOLSEs qualifier.C Use of this Qualifier requires presence of VAX LSE on your system.v.TP10n ^*/MODIFY\*.BR;^*/NOMODIFY\*n.X /MODIFY qualifierJ Specifies whether the buffer created for the input file is modifiable orPunmodifiable. If you specify the /MODIFY qualifier, the VTEDIT command creates aMmodifiable buffer. If you specify the /NOMODIFY qualifier, the VTEDIT command.Ncreates an unmodifiable buffer. If you do not specify either qualifier, VTEDITNdetermines the buffer's modifiable status from the read-only/write setting. ByMdefault, a read-only buffer is unmodifiable and a write buffer is modifiable.kP This qualifier is only valid if VTEDIT has been installed with LSE support and;if the qualifier /NOLSE is not present on the command line.P.TP10N ^*/OUTPUT_=output-file (D)\*.BR;^*/NOOUTPUT\*n.X /OUTPUT qualifierL Determines whether VAXTPU creates an output file at the end of your editingNsession. The VTEDIT interface is responsible for processing this qualifier. ByKdefault, the VTEDIT interface uses the same file specification for both thegOinput file and the output file. The output file has a version number one higherhMthan the highest existing version of the input file. Use a file specification Lwith the /OUTPUT qualifier to specify a file name that is different from theMinput file. You can include directory information as part of your output filea2specification to send output to another directory.O The /NOOUTPUT qualifier suppresses the creation of an output file for the mainUIbuffer, but not the creation of a journal file. If you invoke VAXTPU witheH/NOOUTPUT and then decide you want an output file, use one of the outputPcommands in the VTEDIT interface before you end the editing session to write out the contents of the main buffer..TP10m ^*/READ__ONLY\*.BR;^*/NOREAD__ONLY (D)\*l.X /READ__ONLY qualifierO Determines whether VAXTPU keeps a journal file and creates an output file fromiGthe contents of the main buffer. With the default /NOREAD__ONLY, VAXTPUnLmaintains a journal file and creates an output file from the contents of themain buffer if you modified it. O Using the /READ__ONLY qualifier is like using the /NOJOURNAL qualifier for theVMediting session and the /NOOUTPUT qualifier for all buffers. When you specifyhN/READ__ONLY, VAXTPU does not maintain a journal file for your editing session,Pand the NO__WRITE attribute is set for all user buffers. When a buffer is set toLNO__WRITE, the contents of the buffer will not be written out when you leavePVTEDIT. Both the EXIT and QUIT built-|in procedures will end the editing sessionNwithout creating a new file from the contents of the user buffers (even if youmodified them).TP Use /READ__ONLY when you are searching a file. If you change your mind and wantIto save any edits you make to the file, use the Write Text to Output FilefLcommand to write the currently selected range to an external file. Remember,-however, that you do not have a journal file.e.TP10n ^*/RECOVER\* .BR;^*/NORECOVER (D)\*.X /RECOVER qualifiern .X RecoverybJ Determines whether VAXTPU reads a journal file at the start of an editing#session. The default is /NORECOVER.eO When you use the /RECOVER qualifier, VAXTPU reads the appropriate journal file0Pand processes whatever commands it contains. If the journal file type is not TJLLor if the file name is not the same as the input file name, you must includeEboth the /JOURNAL_=journal-file qualifier and the /RECOVER qualifier. O When you are recovering a session, all files must be in the same state as theytFwere at the start of the editing session being recovered. All terminalOcharacteristics must also be in the same state as they were at the start of therHediting session being recovered. Check especially the following terminalcharacteristics: .LM1.S.LS0.LE;Device__Type.LE;Edit__mode .LE;Eightbit.LE;Page .LE;Widtht .ELS0.LM0TK Furthermore, all initialization and environment files used in the originalt*run must be used in the recovery run, too..TP10p' ^*/START__POSITION_=(Line,Character)\*a#.BR;^*/START__POSITION_=(1,1) (D)\*t.X /START__POSITION qualifiertO Specifies the starting line and character in the file. If a file specificationnKis not specified, the last specification invoked by the editor is used. ThepOcursor is positioned at the place corresponding to the cursor's location at thea,time the last editor-|invoked file was left.O This qualifier is only valid if VTEDIT has been installed with LSE support andj;if the qualifier /NOLSE is not present on the command line.a.TP10e$ ^*/SYSTEM__ENVIRONMENT_=file-spec\*".BR;^*/NOSYSTEM__ENVIRONMENT (D)\*5.BR;^*/SYSTEM__ENVIRONMENT_=LSE$SYSTEM__ENVIRONMENT\*r!.X /SYSTEM__ENVIRONMENT qualifieriN Specifies the name of a system environment file. The difference between filesOspecified by this qualifier and those specified by a /ENVIRONMENT qualifier is:nMDefinitions derived from this qualifier cannot be saved by a Save Environmentr LSE command.O This qualifier is only valid if VTEDIT has been installed with LSE support andi;if the qualifier /NOLSE is not present on the command line.k.TP10u ^*/WRITE (D)\*r.BR;^*/NOWRITE\*.X /WRITE qualifierrL Specifies that the file on the VTEDIT command line be put into a writeableOmodifiable buffer. The /NOWRITE qualifier specifies that the file on the VTEDITn9command line be put into a read_only unmodifiable buffer.dP This qualifier is only valid if VTEDIT has been installed with LSE support and;if the qualifier /NOLSE is not present on the command line.^* .HL3Memory\* .X MemorysK VTEDIT automatically remembers the file being edited. If you invoke VTEDITeLwithout specifying a file-spec, VTEDIT will read its memory and re-|edit thelast edited file.RM VTEDIT';M VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HTs memory is controlled by the logical name TPU$MEMORY. If the logicaldMname TPU$MEMORY translates to a string of the form $filespec, VTEDIT uses thenPspecified file for its memory. Otherwise, VTEDIT uses the logical name itself asMthe memory. On exiting, the edited file's name is stored in a process logicaluKname called TPU$MEMORY, or, if this name translates to a string of the form B$filespec, the edited file's name is stored in the specified file.M For compatibility with previous, TECO-|based releases of VTEDIT, the logical Nname TEC$MEMORY is used instead of TPU$MEMORY, if TPU$MEMORY translates to thestring TEC$MEMORY.P If the Language-|Sensitive Editor is installed and has set its own file memory,OVTEDIT uses this memory instead of its own memory. In this case, VTEDIT updatestboth memories upon exiting.M.TP12^* .HL3Examples\*, 1. $ VTEDIT/OUTPUT_=NEWFILE.TXT OLDFILE.TXTJ This VTEDIT command invokes VAXTPU to edit the file OLDFILE.TXT using theNsection file SYS$LIBRARY:VTESECINI.TPU$SECTION that creates the VTEDIT editingPinterface. VAXTPU then tries to read the command file TPUINI.TPU in your defaultHdirectory. If you have not defined the logical name TPUINI to point to aMuser-|written command file, and if you do not have a file named TPUINI.TPU ineNyour default directory, VAXTPU does not read a command file. If you modify thePmain buffer and use the Exit command to end the session, the edited file has thename NEWFILE.TXT..TP10o 2. $ VTEDIT OLDFILE.TXTM This VTEDIT command invokes VAXTPU with the VTEDIT editing interface. VAXTPUsNmakes a copy of the file OLDFILE.TXT available for editing. When you leave theOediting session, VAXTPU creates a new version of the file with a version numberpBone higher than the highest existing version number for that file.N If the Language-|Sensitive Editor is present and if VTEDIT has been installedMwith LSE support, VTEDIT invokes the Language-|Sensitive Editor, providing anTenhanced command interface.t.TP10u 3. $ VTEDIT/RECOVER OLDFILE.TXTP This VTEDIT command invokes VAXTPU with the VTEDIT editing interface to recoverNfrom an abnormal exit during a previous editing session. VAXTPU opens the fileNOLDFILE.TXT, and then processes the journal file OLDFILE.TJL. Once the journal<file has been processed, you can resume interactive editing..TP10a 4. $ VTEDIT/NOLSE OLDFILE.TXTI This command suppresses the automatic loading of the Language-|SensitivetOEditor VAX LSE, if VTEDIT has been installed with LSE support, and instead usesnKa version of VTEDIT that is identical to VTEDIT on systems without VAX LSE.lKVTEDIT makes a copy of the file OLDFILE.TXT available for editing. When youaJleave the editing session, VAXTPU creates a new version of the file with aKversion number one higher than the highest existing version number for that file. .TP10y1 5. $ VTEDIT/ENVIRONMENT_=LOCAL/LANGUAGE_=FORTRANmL This command, which requires presence of the Language-|Sensitive Editor VAXMLSE, invokes VTEDIT with the LSE enhanced editing interface. VTEDIT opens thefPfile that was edited using LSE with VTEDIT or native LSE, whichever occured mostKrecently, and makes language support for the Fortran language available foreFediting. VTEDIT uses a local environment definition stored in the fileSYS$LIBRARY:LOCAL.ENV.^*$.HL2Interpreting the Terminal Screen\*O While you are running the Video Terminal Editor, your terminal screen displaysiNtext in one or two text windows. These windows into your buffer always includeLthe current line (the line containing the text pointer). The location of theItext pointer within the buffer is indicated by the terminal's cursor. All Lcharacters that you type on the keyboard that are not commands to VTEDIT areMimmediately inserted into the text buffer at the current pointer position andyare displayed on the screen.8 Certain other special symbols can appear on the screen: .LM+2.LS"o" K.LE;The text "[End#of#File]" indicates the end of your text buffer. The end^(of most system buffers is not indicated..X End of FileN.LE;A diamond symbol (`) indicates that the current line of text is too longJto fit on the current line of the screen. The remainder of the text is notNdisplayed, but the diamond symbol appears at the end of the line to remind youOthat there are characters which cannot be displayed. You can control the numberfLof characters that appear on each line by using the Set Right Margin command (Ctrl/V).TH.LE;An 'c' symbol indicates a form feed character, i.e_. a page break.9Vertical Tabulator characters are shown as 'i' symbols. .X Form FeedK.LE;Carriage Return and Linefeed characters are displayed as 'd' or 'e'tHsymbols, respectively, if they appear within a record. Record boundariesBare not indicated; instead, each record starts on a separate line..X Carriage Return .X Linefeedi.X Record boundaryL.LE;An inverse question mark (), or, on VT100 terminals, an error indicator?(a), shows the presence of any other non-|printing character.r.X Character>non-printing^O.LE;At the end of each of the text windows, a status line, displayed in reverseUHvideo, shows the name of the text buffer associated with the window, and<possibly one or more of the following pieces of information:.X Window>status linee.X Status line.LS"-"H.LE;If the buffer associated with the window is a system buffer (definedHby VTEDIT, not by the user), the word 'System' appears as the first wordFin the status line, and the status line is set to increased intensity..X Buffer>system.Y System buffer see BuffereL.LE;If free cursor movement has been selected, the word 'Free' appears afterMthe buffer name; otherwise, i.e_. if bound cursor movement has been selected,g9the corresponding place in the status line is left blank. .X Cursor>free.Y Free cursor see Cursor.X Cursor>boundN.Y Bound cursor see CursorL.LE;If searches are set to be case-|sensitive, the word 'Exact' is displayedin the status line.U.X Search>case-sensitivityI.LE;Next, the mode ('Insert' or 'Overstrike') of this buffer is shown, ifnthe buffer can be modified.s.X Mode>insert.X Mode>overstrike.Y Insert mode see Moder.Y Overstrike mode see Mode H.LE;If VTEDIT is invoked from the Language-|Sensitive Editor VAX#LSE, anJasterisk (*_*) is displayed in the status line. Left to this asterisk, theJcharacters 'LSE' are displayed if the keys for Language-|Sensitive EditingHhave been switched from their VTEDIT meaning to the key definitions thatNVAX#LSE uses in its EDT-like mode. For example, the Ctrl/E key is bound to theHExpand Token command in this case, instead of having its original VTEDITmeaning..X LSE>status lineK.LE;If, on failing searches, the current cursor position will be preserved,gFthe symbol '^*><\*' appears in the status line. If, on the other hand,Hfailing searches are selected to position the cursor to the beginning of?the current buffer, the symbol '^*_^_^\*' is displayed instead.aN.LE;Finally, if a formatter is activated or has been selected for this buffer,Jits name is displayed as the last item in the status line. The name of theLformatter is displayed in brackets (^*[...]\*), if it is currently disabled..X Formatter>status lineJ.LE;If the current buffer has been set to read-|only, the status line willIbe underlined to remember you that any edits not explicitly saved will betlost.o.X Buffer>read-onlyl.ELS0S .ELS0.LM-2.SH VTEDIT will display any text between the cursor and the selected bufferLlocation (see the Start Selection command) in reverse video to highlight theNselect<k[C VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hc range. Rectangular regions (activated by the Select Corner command) areOshown by displaying the character at one corner in reverse video; the region isiMdefined to be the rectangle having this character and the character under theecursor as opposite corners.T.X Range>selectN.X Region>rectangularH Permanent marks inserted in a buffer for later retrieval of one or moreIpositions are highlighted by displaying the character next to the mark inSIreverse video, if there is such a character (i.e_. if the mark is not setIat the end of a line)..X MarkNM A feature of the scope driver which allows you to view the exact contents ofAKyour text buffer is called 'graphic-|Tabs' mode. When graphic-|Tabs mode issJturned on, all Tab characters are visible on the screen as special graphicsymbols:.X Graphic-Tabs .X Tab>visible.LM+15N.S.I-10;^*TAB\* appears as a 'b' symbol. The spacing after the Tab, which isPnormally blank space on the screen that does not correspond to any characters in6the text, is shown as a series of centered dots ()..LM-15I By means of the TPU command 'set(text, current__window, no__translate)',oJthe text in your buffer may be displayed with interpretation of any escapeIand control sequences, which may be useful for viewing text with drawingsmI(like the keypad diagrams in this manual) and/or bolding/|underlining. As GTPU counts the characters in the control sequences when determining theeMplacement of the cursor, but these characters do not occupy screen positions, Kthe cursor may be displayed to the right of its true location when a window Mis in this mode. For this reason, it is ^*not\* advisable to make any changesOIto the text as long as the current window is in this mode. You may returneKto normal editing by (repeatedly) typing the Control Screen (Ctrl/V) and/or Refresh (Ctrl/W) commands. .X Drawingse .X Bolding.X Underlining.PGe .SEND TOC .S.SEND TOC .TP3^* .HL1Concepts\*^* .HL2Buffers \*^*.HL3User Buffers\*.X Buffer>userI Buffers are storage areas that contain the text(s) to be edited. Some ofEIthese buffers are pre-|defined by VTEDIT and serve special purposes; theyaNare called system buffers. The remaining buffers are under the user's control,Nand are called user buffers. Normally, you will have at least one user buffer,Hbut you may create additional buffers at any time. The number of buffersNconcurrently available for editing is (virtually) not limited, but too large aMnumber of buffers will increase your demand of page file space, and may cause-confusion, too.dG Buffer names consist of the name and type parts of file names; each ofsLthese two parts is optional. There are basically three ways to create a userbuffer:d.X Buffer>name .LM1.LS"-"L.LE;When you invoke VTEDIT to edit an existing file, VTEDIT creates a bufferKfrom the file-spec parameter of the VTEDIT command; the name of this bufferOPconsists of the name and type parts of the file-spec. The file is read into thisJbuffer and is available for editing. If the specified file does not exist,PVTEDIT issues a warning message and, if you did not use the qualifier /NOCREATE,Mcreates an empty buffer with that name. If no file-spec is specified with the =VTEDIT command, VTEDIT creates an empty buffer named '$Main'.bG.LE;The Read File and This File commands create buffers named after theaNspecified files, too. The corresonding files are automatically read into thoseObuffers, if they exist; otherwise, the buffers are created as empty buffers. OnaLthe other hand, the Include File and Append File commands read the specifiedfile into the current buffer.nI.LE;Finally, the Buffer command creates a new (empty) buffer. You may usetBbuffers created via this command just like any other user buffers..ELS.LM0N If you did not invoke VTEDIT with the qualifier /READ__ONLY, all user buffersIhave an output file associated with them, as long as they are not changedaNto be read-|only. For buffers created from a file, the output file will be theOnext higher version of the input file, except for the first buffer whose output Pfile may be selected explicitly via the /OUTPUT qualifier (or suppressed via theO/NOOUTPUT qualifier). For buffers created via the Buffer command, the assoiatedeNoutput file is a file in the current directory, with the name of the buffer as its filename.h.X /READ__ONLY qualifierK When you exit VTEDIT, the current buffer will be written to its associatedfNoutput file if it has been modified and is not empty. For all other non-|emptyMuser buffers that have been modified and are not set to be read-|only, VTEDITDJwill ask whether these buffers should be written to their assoiated outputPfiles. If, on the other hand, VTEDIT was invoked with the qualifier /READ__ONLY,Lthere are no associated output files, and, correspondingly, no output and noOquestions will occur. Leaving VTEDIT via the Quit (instead of the Exit) commandm<will discard your edits, too, after asking for confirmation.P If VTEDIT is used with the Language-|Sensitive Editor, buffers may be protectedJagainst any modification. Any read-|only buffers are protected by default,Jbut may be set to be modifiable. Furthermore, a language may be associatedJwith each buffer, selected by the file type of that buffer by default. TheNlanguage, in turn, determines the setting of the right margin, when the bufferis first created.lL There is a command to delete the current buffer; to prevent serious errors,HVTEDIT asks for confirmation if the current buffer has been modified andOis neither empty nor read-|only. Writing out the contents of a user buffer willtNoptionally delete that buffer, too. After deleting the current buffer, anotherNuser buffer is made current, or, if you deleted the last user buffer, an empty buffer named '$Main' is created.J You can make any user buffer current by giving its name in reponse to theKprompt from the Buffer command. Furthermore, the Next Buffer command allowseIyou to cycle through all user buffers without having to know their names.sIThe List Buffers command displays a list of all buffers currently used by.IVTEDIT. This buffer list may be used to select one of the buffers via thes7This File command, including any of the system buffers._^*.HL3System Buffers\*.X Buffer>systemK VTEDIT uses several pre-defined system buffers, whose names start with thet9character '$'; they are automatically created at startup.r .LM1.LS"-"P.LE;The Buffer '$Messages' contains the last (up to 100) error and informational6messages that VTEDIT issues during an editing session. .X MessageN.LE;The buffer '$Commands' contains the string entered in response to the lastprompt.h .X PromptingL.LE;The buffer '$Prompt' contains the last prompt string from a Help or Showcommand.F.LE;The buffer '$Help' contains the output from the last Help command.L.LE;The buffer '$Show' contains the information output in response to a Showcommand.L.LE;The buffer '$DCL' contains the last input in response to the prompt fromthe DCL command.G.LE;The buffer '$Directory' contains directory listings created via thesDirectory command.L.LE;The buffer '$TPU' contains the last VAXTPU statement or program fragment5entered in reponse to the prompt from the Do command. C.LE;The buffer '$Search' contains the last search argument entered.tI.LE;The buffer '$Target' contains a compiled form of this search argumentM;whenever the search argument uses match control constructs.*H.LE;Whenever a piece of text has been deleted, this text is put into the1buffer '$Restore' until the next cursor = VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hrmovement. J.LE;The buffer '$Paste' is the paste buffer; it contains the last piece of text saved via the Save command.Q.LE;The buffer '$Memory' is VTEDIT's memory; during startup and exit, it containsvKeither the name of the file to be used as longterm memory, or the file-specn'to be retrieved or remembered directly.q .X MemoryO.ELS.LM0H If VTEDIT is used with the Language-|Senstive Editor, there are severaladditional system buffers: .LM1.LS"-"G.LE;The buffer '$LSE' contains the last (up to 100) commands entered inb+reponse to the prompt from the LSE command.tL.LE;The buffer '$Defaults' is a template determining the properties of newlycreated buffers.L.LE;The buffer '$Review' is used for diagnostics from previous compilations.K.LE;The buffer '$Expand' contains Help and Menu texts used during expansionMof tokens and/|or placeholders.eH.LE;The buffer '$Erased__Placeholder' contains the last placeholder that,was erased via an Erase Placeholder command.M.LE;The buffer '$Erased__Expand__Text' contains the last token or placeholdere3that was erased by replacing it with its expansion.tK.LE;The buffer '$Help__Keypad' is used by the Language-|Sensitive Editor tos display keypad Help information.O.LE;The buffers '$CMS', '$Learn', and '$Blank' are additional auxiliary buffersdIused by the Language-|Sensitive Editor to store intermediate information. .ELS.LM0> More system buffers may be created dynamically by LSE or SCA.I No system buffer has an output file associated with it; correspondingly,oNthese buffers are simply discarded when VTEDIT exits. System buffers cannot be@deleted; any attempt to delete a system buffer will be rejected.H If you wish to look at the contents of a system buffer, you can make itHthe current buffer by selecting it via the Buffer command, just like youLwould select a user buffer. Note, however, that you cannot get into a systemNbuffer via the Next Buffer command; this command simply ignores system buffers&when cycling through the user buffers.K You may change the contents of any system buffer by editing them just likehHyou would modify the contents of a user buffer. This is not recommended,Lhowever, because VTEDIT controls the system buffers as its own resource, andOprobably will discard your edit or produce unexpected effects. There is, on thecLother hand, no danger in editing a system buffer; the correct functioning ofDVTEDIT does not depend on the contents of any of its system buffers.^*.HL3Q-Registerso\*.X Q-register>usageTF VTEDIT has a set of up to 26 special storage areas called Q-registersH"A" to "Z" (for compatibility with previous, TECO-|based versions). EachJQ-register can hold a piece of text from a previous save or cut operation,Nbeing, in this respect, similar to the paste buffer. The system buffer used byNthe Q-register *q (*q may be any letter, uppercase and lowercase letters beingLtreated as equivalent) is created at the first cut or save operation to thisJregister; its name is '$Register__*q'. By using Q-registers for cutting orNpasting, you may have concurrently up to 26 additional buffers ('$Register__A'.to '$Register__Z') for temporary text storage..X TECO>Q-registerN For compatibility reasons, VTEDIT allows you to store, in addition to text, aKnumber in each Q-register. You may store in a Q-register such values as thetLcurrent line number, the current offset in the current line, the value of anNASCII character, or the value of a number stored as text, and you may use thisPvalue later on in a numeric argument. This feature of VTEDIT allows you to buildOrather powerful learned keystroke sequences which perform complex editing tasks.Nsemi-|automatically. The numeric part of Q-register *q is stored in the VAXTPU/variable vte$register__*q, *q being any letter.o^* .HL2Windowse\* .X WindownN VTEDIT displays the text(s) to be edited in one or two windows on the screen.KThese windows into your buffer(s) always include the current line (the linetMcontaining the cursor). All characters that you type on the keyboard that areEOnot commands to VTEDIT are immediately inserted into the current text buffer ate<the current cursor position and are displayed on the screen.L The following windows are used for text entry and editing (all line numbers+are given for a screen length of 24 lines):N .LM1.LS"-"N.LE;The window 'vte$main__window' is used for full screen editing. The top andPbottom lines are the lines 1 and 21, respectively, and line 22 is used as statusline.tN.LE;For split screen editing, 'vte$top__window' controls the upper half of theJscreen. The top and bottom lines are the lines 1 and 10, respectively, andline 11 is used as status line.cM.LE;For split screen editing, 'vte$bottom__window' controls the lower half oftOthe screen. The top and bottom lines are the lines 12 and 21, respectively, andaline 22 is used as status line.r .ELS0.LM0mH If a terminal with more than 24 screen lines is used, these windows areLenlarged accordingly, such that vte$main__window uses the full screen exceptKthe last two lines, and vte$top__window and vte$bottom__window use the sameu(area, approximately split in two halves.H Additionally, VTEDIT uses several windows for display of error messages!or Help texts, and for prompting:t .LM1.LS"-" .X Prompting=.LE;Prompts and the prompted text are displayed in the windowYK'vte$command__window', which normally occupies the next to last line of thehIscreen. Commands allowing multi-|line text arguments cause this window tomLgrow upwards, up to 6 lines, whenever a new line is inserted in the promptedNtext. Text in this window may be edited using most editing functions availableIfor the text windows, including save, cut, and paste operations; the textnLof the prompt itself is protected against being changed or deleted, however.This window has no status line.eI.LE;For simple prompts not needing elaborate editing (like yes/no or HelprOtopics), the window 'vte$prompt__window' is used. This window occupies the nextnPto last line of the screen and temporarily overlays the window normally used for*prompting. This window has no status line.L.LE;The last line of the screen contains the window 'message__window', whichIdisplays the last line of the buffer '$Messages', i.e_. the last error oroKinformational message from VTEDIT. When using parenthesis highlighting, the Oline containing the highlighted parenthesis is displayed in the message window,'$too. This window has no status line. .X MessageN.LE;Finally, the window 'info__window' is used to display information from theOHelp and Show commands. It overlays the full screen editing window; for screensaGwith 24 lines, the top and bottom lines are lines 1 and 21, and line 22hKis used as status line. For larger screens, the info window has more lines, accordingly..ELS.LM0H The sizes and positions of all windows are under the control of VTEDIT;Jthere are no commands to move windows or change their sizes. The widths ofIthe visible windows are determined by the setting of the right margins ofoIthe buffers currently mapped to each window; by changing the right marginHof a user buffer, the width of any window displaying that buffer will bechanged accordingly..X Window>widthk.TP15 ^*.HL2Text Selection\*^*.HL3Select Rangesk\*.X Range>selectnP A select range is a block of text on which various operations can be performed.JIt is defined as the text between the location of the cursor when startingKthe selection (via the Select command) and the current cursor position. Thee5text inside a select range is sh>ܾ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H8bown in reverse video.m To create a select range:.LM1.LSiJ.LE;Move the cursor to either the beginning or end of the text you wish toselect.r).LE;Press the keypad 9 or the Select key.hK.LE;Move the cursor to the opposite end of the text. The select range grows Ior shrinks as you move the cursor away from the start of the selection ornJtowards it, respectively. It does not matter whether the final position isNbefore or after the start of the selection; the select range simply identifiesIthe text between the two positions without imposing a direction upon thisytext.r.ELS.LM0MYou can then press the key to invoke the function to be applied to the selectrKrange. Functions operating on select ranges are marked with a diamond (`)oin this manual.tN Cutting and pasting can be done by first applying the Save or the Save BufferNcommand after selecting a range of text. The first command copies the contentsPof the select range to the paste buffer, the second one to a Q-register. The CutNBuffer command is identical to the Save Buffer command, except that it deletesNthe text copied into the Q-register. If no range has been selected when any ofNthese commands is given, the current line from the cursor to and including theInewline terminating it is copied and possibly deleted. Applying a numericaKargument to such a command allows to copy more than one line into the pastebuffer or a Q-register. .X Cut.X Save .X Q-registertL The paste buffer or Q-Register may be copied to any location in the same orOanother buffer by giving the Paste or Include Buffer command, respectively. TheiLfirst command copies the paste buffer into the current buffer at the current?cursor position, the second command does this for a Q-register.c.X PasteN If you type the keypad 9 key or the Select key when a select range is active,Fthe select range is deactivated and the bell sounds. Thus, to revoke aLselection, type the keypad 9 key or the Select key until the bell rings. The3select range is always deactivated when it is used. G Searching text implicitly creates a select range if no select range is(Jcurrently active. The text found as the result of a search for a string orHa pattern is temporarily selected and can be manipulated by the commandsJoperating on select ranges, if these commands are given directly after theJSearch command. Any cursor movement revokes this temporary selection. If aLselect range is active at the time the Search command is given, no temporaryNselection occurs; instead, the select range extends from the selected positionPto the cursor position after the search, and it will grow or shrink with furthercursor movements.o.X Search>select range^*.HL3Rectangular Regionst\*.X Region>rectangularuM A rectangular region is a block of text delimited by horizontal and vertical/Iborders on which various operations can be performed. If the two oppositeiOcorners of the rectangle occupy the same line or column, the rectangle consistsNof the part of this line or column, respectively, between these two positions.POtherwise, the rectangle consists of all text left to the right corner but rightNto the left corner, and below the upper corner but above the lower corner; theMrectangle includes the lines and columns of these corners. If the text insidewNthe rectangle contains Tab characters, they are replaced with blanks using theNcurrent tabulator setting, such that always the correct rectangle is selected,1regardless of its position relative to tab stops.l To create a rectangular region:.LM1.LSnJ.LE;Move the cursor to any corner of the rectangle you wish to define as aPrectangular region. It does not matter whether you start with the upper left andOfinish with the lower right corner, or vice versa, or whether you use the otherktwo corners of the rectangle.l7.LE;Press the keypad 9 or the Select key.oN.LE;Move the cursor to the opposite corner of the rectangle you wish to defineas a rectangular region..ELS.LM0FYou can then press the key to invoke the function to be applied to theJrectangular region. Functions operating on select ranges are marked with arectangle (a) in this manual.n.X Cut>rectangular.X Paste>rectangularI Cutting and pasting of rectangular regions is done in the following way:nNFor cutting or deleting, the text inside the rectangle is removed, and, if thePcurrent mode is Overstrike, replaced with blanks; if the current mode is Insert,Ktext to the right of the rectangle is shifted to the left. For pasting, theuKcontents of the Q-register or the paste buffer are inserted as a rectangle,eOi.e_. they are inserted or written over old text, according to the current modeeO(Insert or Overstrike) in a rectangle of the same size, whose upper left corneraKis the current cursor position. This mode of pasting is selected whenever aiJrectangular region has been cut or saved to the Q-register or paste bufferthat you want to paste now.nP If you type the keypad 9 key or the Select key when a rectangularLregion is active, the rectangular region is deactivated and the bell sounds.NThus, to revoke a selection, type the keypad 9 key or the SelectNkey until the bell rings. The rectangular region is always deactivated when itis used.H NOTE: Lines containing Tab characters have these characters expanded toMspaces, using the current Tab setting, whenever a rectangular region is savedrJor cut from them or pasted into them. After cutting or pasting, the spacesJin these lines are ^¬\& compressed to Tabs again; if you wish to retainHTabs in these lines, you must apply the Compress Spaces command to theselines..X Tab>in rectangular Cut/Pastes.X Space>compresse^*.HL3The Active Range\*.X Range>activet.Y Active range see Range,I Several commands employ the concept of an active range to work upon. The -active range is defined in the following way:e.LM1.LSsE.LE;If a select range is active, the active range is just that range.fI.LE;Otherwise, if a numeric argument has been applied to the command, theuKactive range consists of the next n lines from the current cursor position,pJwhere n is the value of that numeric argument. If n is positive, lines areGcounted towards the end of the buffer, otherwise towards the beginning. I.LE;If there is neither a select range nor a numeric argument, the activegHline consists of all text in the current line right to and including theKcursor. The active range includes the carriage return/line feed terminatingi the line.u .ELS0.LM0rK Functions operating on the active ranges are marked with an asterisk (*_*)eHas well as with a diamond (`) in this manual. Note that especially the;Save, Cut, and Remove commands operate on the active range.,.TP12 ^*.HL2Text Search and Replacemente\*^*.HL3Search Patterns \* .X SearchcI VTEDIT allows you to specify patterns as argument to the Search command.tMBy specifying a pattern as a search argument, you can search for more generalcItext structures than by specifying a string as search argument. There aret@several types of patterns that can be used for general searches:.X Search>patterne.Y Pattern see also Search .LM1.LS"-"L.LE;Typing a carriage return in a search argument allows to search for textsEspanning line boundaries, or for texts at the start or end of a line.f.X Match controlM.LE;Including match control characters in a search argument allows to specifytKplaceholders for one or more characters in a search argument. Match control0Pcharacters are flagged by the characters ^*_^E\* (caret followed by ?̿ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Han uppercaseIor lowercase E); the character(s) following the flag indicate the type ofpPmatch requested for that position in the search argument. The following types ofmatch can be specified:e.LS"o"J.LE;Selection of certain character classes via the character following the^*_^E\*:.SPR,,1.S.LS0"+".LE;letters (*A)%.LE;non-|alphanumeric characters (*B)w.LE;symbol constituents (*C).LE;digits (*D)l7.LE;any one of the characters in Q-register *q (^*Gq\*).(.LE;line terminators (*L)0.LE;supplemental (multinational) characters (*N) .LE;alphanumeric characters (*R)0.LE;lowercase letters (*V) (causes exact search)0.LE;uppercase letters (*W) (causes exact search).LE;any character (*X):.LE;any one of a specified set of characters (^*[x...y]\*) .ELS0.SPR,,2.LE;Selection of given strings: .SPR,,1.S.LS0"+"L.LE;the next character *x, even if it is a caret (^*Ex\*; specifying _^EE_^Eallows to search for _^E)e-.LE;the text stored in Q-register *q (^*Qq\*) (.LE;any sequence of blanks and Tabs (*S)O.LE;the character whose ASCII value is stored in the numeric part of Q-registera *q (^*Uq\*)m .ELS0.SPR,,2I.LE;Selection according to a VAXTPU pattern: this type of pattern must beHenclosed in ^*_^EP\* match control constructs; using this feature allows;you to use the VAXTPU pattern building mechanisms directly.S.ELS0IJ.LE;A search pattern may be broken into several parts, which are separatedIby the match control construct ^*_^ET\*. VTEDIT returns, if the search is Osuccessful, a range containing all these parts in the correct sequence. BetweenLPthe individual parts, there may be arbitrary amounts of text, and the individual&parts may be found on different lines.N.LE;The match control construct ^*_^EM\* allows to specify multiple occurencesIof a certain character or of characters of a certain class. For instance,eI^*_^EMa\* would find any sequence of a's, and ^*_^EM_^ED\* would find anyhsequence of digits. I.LE;The match control construct ^*_^N\* allows to negate a character or a Iclass of characters. For instance, ^*_^Na\* would find the next characterpAdifferent from a, and ^*_^N_^ED\* would find the next non-|digit.e .ELS0.LM0tN In addition to using patterns, searches may be performed in a case-|sensitiveHor a case-|insensitive way; in a case-|insensitive search, uppercase andLlowercase characters are treated as equivalent. Case-|senstivity of searchesMis controlled via a command and remains the same for all subsequent searches.aJInitially, searches are case-|insensitive. If the search argument containsAa case-|sensitive pattern (_^EV and/or _^EW), searches are alwaysecase-|sensitive..X Search>case-sensitivity^*.HL3Text Replacement\* .X ReplaceK To replace one or more pieces of text with a new text, proceed as follows:o.LM1.LSs;.LE;Search the first occurrence of the text to be replaced.oH.LE;Without moving the cursor, press the Enter or the Insert HereKkey, and enter the text to be used as the replacement. The first occurrenceuOof the old text (i.e_. the occurrence just found) will be replaced with the newltext.yN.LE;The further operations depend on whether you want to replace all remainingPoccurrences automatically, or whether you wish to control replacements manually:.LS"-"K.LE;If you wish to replace all remaining occurrences in the text, press theiPF4 keypad key. H.LE;If you wish to replace all occurrences in a given range, select that/range, and then press the PF4 keypad key.QL.LE;If you wish to replace the next n occurrences, enter the Replace commandLwith the numeric argument n; that is, press , enter the number n using@the main keyboard digit keys, and then press the PF4 keypad key.M.LE;If you wish to view the replacements, press the PF4 keypad key repeatedlye9to search and replace the next occurrences one at a time.uI.LE;If you wish to control individually whether to replace or not, searchtOthe next occurrence by pressing the keypad period (.). If you decide to replace Kthis occurrence, do so by pressing the keypad comma (,) without intervening Lcursor movements; otherwise, continue searching for more occurrences. RepeatMthis procedure until you have made all changes or until you decide to replacee"all remaining occurrences at once..ELS0r .ELS0.LM0uJ After replacement in a range, the cursor will be positioned to the end ofLthat range. If no range has been selected, the following rules apply: If youLselected preservation of the cursor position on failing searches, the cursorPwill be positioned after the last replaced string, when automatic replacement isHfinished. Otherwise, the cursor will be at the start of the current text9buffer, if no more strings to be replaced could be found.U^*.HL2Numeric Arguments,\*.X Numeric argument* .Y Argument see Numeric argumentH Many VTEDIT commands accept, and some require a numeric argument, whichNmay be a repeat count or have some special meaning described with the command.LFunctions accepting an optional numeric argument are marked with an asteriskJ(*_*) in this manual, and functions requiring a mandatory numeric argumentIare marked with a hash symbol (*_#). The numeric argument must be enteredeN^&before\& giving the command itself. The rules for entering numeric argumentsare as follows:lM Simple numeric arguments consist of (displayed as '*' in the command Idescriptions), an optional minus sign, and a digit string which is alwaysePinterpreted in decimal. None of the keystrokes of a simple numeric argument echoon the terminal.M More advanced numeric arguments can be expressions using standard arithmeticdLoperators. These numeric arguments also start with , an optional minusNsign, and, then a digit, or with followed by a caret (_^). If the firstLnon-|digit typed, or the first character typed after the caret is one of theMvalid operators listed below, expression mode is entered. A line of the form:u4.S.C;Numeric argument: Radix: x, Value: arg1 op arg2.SMis displayed in the next to last line of the screen. The initial radix is 10,nCarg1 will be the initial digit string, and op will be the operator.nN Further digit string typing will fill in arg2 until a non-|digit is typed. IfIit is another valid operator, the current arg1 op arg2 expression will berNevaluated, the result will replace arg1, arg2 will be set to zero, and op willbe the typed operator.F If it is a radix change command, the radix is immediately changed. NoMevaluation of the expression occurs. Further digits typed will be interpreted Laccording to the new current radix. The radix change is local to the current6numeric expression; it is not subsequently remembered.J If it is an arg2 stand-|in, the current arg2 is replaced by the specifiedvalue.O If it is DELETE, the current arg2 is reset to zero. If it is Ctrl/U or Ctrl/Z,e?the entire expression is abandoned and the display is fixed up.nN Else it is assumed to be an editing command. The current arg1 op arg2 will beFevaluated and the result becomes the numeric argument to that command..TP10r.X Numeric argument>expression, The valid numeric expression operators are: .S.NF.NJ.LM+5o *_+ Addition*- Subtraction*_* Multiplication */ Divisioni *= Evaluate current arg1 op arg2#^*_^-\* Change sign of current arg2e .F.J.S.LM-5E.TP10e% The valid radix change commands are:.LM+151.S.I-10;^*_^D\* Change radix to decimal (base 10) ,.I-10;^*_^O\* Change radix to octal (base 8)3.I-10;^*_^X\* Change radix to hexidecimal (base 16)f.S.LM-15.TP10d The valid arg2 stand-|ins are:@re? VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H.LM+15..S.I-10;^*_^-\* The inverse (negative) of arg2#.S.I-10;^*_^.\* Current line numbere@.S.I-10;^*_^Z\* Current total number of lines in the text bufferN.S.I-10;^*_^L\* The distance to the end of the current line (counted positive)Hif arg2 is positive, otherwise to the start of the current line (counted negative)E:.S.I-10;^*_^L\* The distance to the arg2'th line separator,.S.I-10;^*_^_^x\* The value of character 'x'C.S.I-10;^*_^Qq\* The contents of the numeric part of Q-register *q;n-*q may be any (uppercase or lowercase) lettertN.S.I-10;^*_^A\* The value of the character at a distance of arg2 to the cursor<.S.I-10;^*_^_\\* The value of the number in the text buffer,<immediately following the cursor, or 0 if there is no numberF.S.I-10;^*_^Ctrl/_\\* The same, but deleting this number from the textbuffer.LM-15^* .HL2Promptingx\* .X PromptingK Commands needing textual arguments (like the search command, for instance)tLprompt for these arguments. The prompt is displayed in the next to last lineKof the screen. Most of these commands allow you to re-use the prompted textePfrom a previous invocation of the same command and possibly edit it. If you wantKto re-use your previous text argument, type the up-arrow key; your previoussItext argument will then be inserted at the current cursor position in thefprompted string..X Command>recallc .X RecalldJ When VTEDIT prompts for LSE commands, command recall allows you to selectKany of the last up to 100 LSE commands by using the up and down arrow keys.sJUsing one of these keys erases the current command line and replaces it byone of the previous commands.fP Further editing and/or entry is now done in the normal way. The text appears onKthe screen as you type. You can edit your typing, using most of the editingbJfunctions of VTEDIT, with the exception of commands that prompt themselvesKor select a different window or buffer. You can use the save, cut and paste Jfunctions to copy or move text strings to or from the prompted string, butGinserting a rectangular region from the paste buffer or a Q-register ist disabled.o.X Command>editingO With some commands, typing the Return key allows the entry of multi-|line text Parguments; in this case, the prompt window is expanded by an additional line, up to 6 lines.pJ When you are ready to execute the command causing the prompting, type theGkeypad period (.) or, on VT200 terminals, the Do key. With commands notsIallowing multi-|line text arguments, typing the Return key will start thesOcommand, too. If you wish to abandon prompting and abort the prompting command,yyou can type Ctrl/Z to do so.e.X Prompting>abortP In any case, VTEDIT now cleans up the screen. If prompting has not been abortedLby typing Ctrl/Z, VTEDIT saves the text argument if it is to be re-used, and+executes the command causing the prompting.eJ When in LSE command input mode, which is entered by typing the Ctrl/? keyLif VTEDIT is used with the Language-|Sensitive Editor, commands are executedJas soon as the Return key is typed. The prompt will re-appear, however, toJallow you to enter additional commands, unless the last command was empty,6or the command "Continue", or an abbreviation thereof..TP12e^*.HL2Formatters\*^*.HL3General Informationn\* .X FormatterI Formatters are extensions of VTEDIT that format texts automatically in avIcontext dependent way while these texts are being entered. The individual Lactions performed by a formatter are determined by the type of the formatterNwhich is, in turn, determined by the file type of the current text buffer. TheLfollowing formatter types are automatically selected according to these fileHtypes, and stay attached to a buffer, once they are selected explicitly:.X Formatter>file type.LM+4.TP10.S.NF.NJ= File Type O} Formatter NameoB qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqB .C .CLD .ENV .H .PAS .TPU O} Structured Language4 .CBL .COB .LIB O} Cobol6 .COD .DES .DUM .EXT .FOR .FTN .INC .INT O} Fortran2 .COM .MMS .OPT O} DCL7 .DOC .HLP O} Documentl= .DTR .LSE .PDM .PEL O} Query Languageh4 .MAC .MAR .PPA O} Macro3 .RND .RNH .RNO .RNT .RNX .TXT O} Textg .F.J.LM-4nK Each one of these formatters performs one or more of the following actionsaduring text entry: .LM1.S.LS0"-"t-.LE;case conversion / automatic case control,L.LE;automatic indentation,%.LE;manual correction of indentation, .LE;automatic word wrap,!.LE;automatic line justification,rN.LE;optional automatic insertion of closing parentheses and string delimiters,G.LE;optional highlighting of the matching opening parenthesis or string;delimiter, respectively. .ELS0.LM0dI The following sections describe each of these actions in more detail and Cspecify which actions are available from the individual formatters.p^*.HL3Case Conversione\*.X Case control>automaticF Characters can be entered in either upper or lower case. However, allKcharacters considered being part of a statement are converted to upper caserKexcept for characters in literals: character strings surrounded by (contextLdependent) string delimiters. Characters in comments are also not converted.JComments are lines with special, context dependent characters in the firstFcolumn or all characters appearing after a (context dependent) comment,delimiter that does not appear in a literal.C Automatic case control is available from the following formatters: .LM1.LS"-"P.LE;^*Cobol\*: with quote (*") as string delimiter, and exclamation mark (*!) asLcomment delimiter; lines having an asterisk (*_*) in column 7 are treated ascomments, too;J.LE;^*Fortran\*: with apostrophe (*') as string delimiter, and exclamationMmark (*!) as comment delimiter; lines beginning with (uppercase or lowercase)oO*C or *D, with asterisk (*_*) or exclamation mark (*!) are treated as comments,hJtoo (unless their second character is a semicolon (*;) or exclamation mark(*!));L.LE;^*DCL\* and ^*Query Language\*: with quote (*") as string delimiter, and+exclamation mark (*!) as comment delimiter;dK.LE;^*Macro\*: with apostrophe (*') as string delimiter, and semicolon (*;)eas comment delimiter. .ELS0.LM0u^*.HL3Automatic Indentatione\*.X IndentationH Formatters with the automatic indentation feature allow to indent linesBto an appropriate column, without any need to insert spaces and/orKTabs, as these characters are inserted by the formatter whenever a new linem is opened.K Indentation is controlled by the following indentation control characters:cJ"*.", "*=", "*<", "*>", "*_*", "*_+", and "*-". They control the amount ofOindentation and, for Fortran, the starting of automatic continuation lines. TheiMindentation control characters are only recognized when they are typed at thevPstart of a line, i.e_. normally only before the first non-|blank character. OnlyJTabs, spaces, (and, for Fortran, statement numbers and comment characters;Nfor Cobol, comment and continuation indicators) may be in front of the currentMcursor position. When indentation takes place, the cursor is placed after thet indentation.!.X Indentation>control charactersr.X Formatter>control charactersa .LM1.LS"-"E.LE;The equal sign, "*=", does not perform any indentation. It simplyu4resets the current indentation value to the minimum.M.LE;The period, "*.", sets the indentation of the current line to the currenteAy VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hi/Mindentation value. It is used primarily to reset the indentation of a line totIthe current indentation value. A line being entered will automatically beeindented to the current value.C.LE;The greater than sign, "*>", increments the current indentation*Avalue and sets the indentation of the current line to that value. F.LE;The less than sign, "*<", decrements the current indentation value;and sets the indentation of the current line to that value.iM.LE;The asterisk, "*_*", is the automatic continuation line character for thebOFortran formatter. It creates the beginning of a continuation line by inserting1O5 spaces, an "*_*" and a Tab for at the beginning of the current line, followedxMby the appropriate number of Tabs and spaces to reach the current indentationM value _+ 4.N For Cobol, the asterisk indicates a comment line. The asterisk is inserted inDcolumn 7, and the line is indented to the current indentation value.P.LE;The plus sign, "*_+", sets, for the Query Language formatter only, the valueKfor indentation increment and decrement to 2. This command does not performeJany indentation; it simply presets a value for further indentation control commands.P.LE;The minus sign, "*-", sets, for the Query Language formatter only, the valueKfor indentation increment and decrement to 3. This command does not perform;Jany indentation; it simply presets a value for further indentation control commands.;K For Cobol, the minus sign indicates a continuation line. The minus sign isFPinserted in column 7, and the line is indented to the current indentation value..ELS.LM0.X Indentation>amount 8 The following formatters provide automatic indentation: .LM1.LS"-"F.LE;^*Structured Language\*: Indentation may be changed in steps of 4.G.LE;^*Cobol\*: Indentation may be changed in steps of 4. Because of the CCobol syntax, the minimum value for indentation of statements is 7.(JIf the first character entered is an asterisk, "*_*", indicating a commentKline, or a minus sign, "*-", indicating a continuation line, it is inserted Lin column 7, and the rest of the line is indented to the current indentationvalue.I.LE;^*Fortran\*: Indentation may be changed in steps of 2. Because of theaIFortran syntax, the minimum value for indentation of statements is 6, ande the following rules are applied:M All lines not starting with a *C, a *D, an asterisk (*_*), or an exclamationrImark (*!), are indented automatically. If a line starts with one of thesetHcharacters, indentation does not affect this character, and it will stay?in column 1. In any case, indentation is at least 6 characters.uA The *C or *D in column 1 must be followed by a non-|alphanumericlIcharacter or it is assumed to be part of a statement, and the whole line,*Bincluding the *C or *D, is indented. (For further explanation of D-lines, see the VAX FORTRAN Reference Manual.)nH If the second character in a comment line is a semicolon (*;), the lineJis regarded as a control statement for a preprocessor, and not indented atKall. If this second character of a comment line is an exclamation mark, thelOline is regarded as code commented out, and indented to the current indentation 8value#_+#2 to allow for easy re-|activation of the code.P If a number appears in column 1, it is assumed to be part of a statement numberNand is not indented. The first non-|numeric character is assumed to be part ofthe statement and is indented.;.LE;^*Document\*: Indentation may be changed in steps of 4.lP.LE;^*Query Language\*: Indentation may be changed in steps of 2 or 3, accordingLto the last selection via the indentation control characters "*_+" and "*-"; default is 2.e .ELS0.LM0X^*.HL3Automatic Word Wrap\* .X Word wrapG Whenever a line is entered that is longer than the current line width,tLit is broken up into suitable pieces that fit into lines within that length.LThis is done by replacing a blank by newline. The blank replaced is normallyJthe rightmost blank still fitting into the line, but replacing may be doneLin some cases when entering the next blank. The algorithm chooses the momentKto replace a blank such that when entering text without any newlines, lineswIwill be filled nearly up to the current line width, but without exceedingh this with.M Automatic word wrap is provided by the ^*Document\* and ^*Text\* formatters,eKand, if VTEDIT uses the Language-|Sensitive Editor, automatic word wrap mayaKbe selected as a property of the current language, for instance via the LSEGcommand MODIFY LANGUAGE /WRAP.^* .HL3Automatic Line Justification\*.X JustificationG Whenever a line is entered that is longer than the current line width,bLit is broken up into suitable pieces that fit into lines within that length.LThis is done by replacing a blank by newline. The blank replaced is normallyIthe rightmost blank still fitting into the line, but replacing is in mostsFcases done when entering the next blank. The line just entered is thenIfilled to the current right margin by inserting enough blanks distributedsJover the white spaces as evenly as possible. The result is a text in whichIall lines are filled and justified in roughly the same way as if the texthad been produced by RUNOFF.P The Fill Paragraph command will not only fill the lines of the selected region,Nbut, if automatic justification is active, will also justify the filled lines,Pi.e_. insert enough blanks into each line (except the last one) to let it extendOup to the right margin. The effect is to create a straight right margin for the reformatted text. '.X Command>Fill Paragraph>justification,H Automatic line justification is provided by the ^*Document\* formatter.^*#.HL3Automatic Parenthesis Insertionf\*N If you are using a formatter supporting automatic closing parentheses, and ifJthis feature has been enabled, VTEDIT will automatically insert a matchingHclosing parenthesis whenever an opening parenthesis is typed. The cursorIwill be positioned between the two parentheses to allow you to insert thenIparenthesised text. Also, if a string delimiter is typed, a second stringaMdelimiter is inserted after the cursor, such that strings opened by the firsta#delimiter are automatically closed. ".X Parenthesis>automatic insertionJ The following formatters support automatic closing parentheses and string delimiters:u .LM1.LS"-"P.LE;^*Structured Language\*: The characters ^*(#[#{\* and ^*}#]#)\* are regarded>as parentheses, the characters *" and *' as string delimiters.N.LE;^*Cobol\*: The characters ^*(\* and ^*)\* are regarded as parentheses, the!character *" as string delimiter.mP.LE;^*DCL\*: The characters ^*(#[#<\* and ^*>#]#)\* are regarded as parentheses,%the character *" as string delimiter.lP.LE;^*Fortran\*: The characters ^*(\* and ^*)\* are regarded as parentheses, the!character *' as string delimiter.tE.LE;^*Macro\*: The characters ^*(#[#<\* and ^*>#]#)\* are regarded asb2parentheses, the character *' as string delimiter.J.LE;^*Query Language\*: The characters ^*(#[\* and ^*]#)\* are regarded as2parentheses, the character *" as string delimiter..ELS.LM0L Automatic closing parentheses are disabled by default; to use this feature,Gyou must explicitly enable them via the Ctrl/R command. AutomaticfLparenthesis insertion is suppressed for text parts that VTEDIT recognizes as:comments or string literals enclosed in string delimiters.^*.HL3Parenthesis Highlighting\*.X Parenthesis>highlightingeN If you are using a formatter supporting parenthesis highlighting, and if thisPfeature has been enabled, VTEDIT will highlight thBV{{!1; >451`^z0r;8r ~7.*;{Eu0`RV gmJ*SqV @ ,2l ' {XKHDf"t,ZnZCJ(jIOHXts:+ z]{Q7'B*\oq7c|9;fhSSnD)n:W^'?|gGM\n$e )cr]-6]n> U]|hW.QZL'>;xl) E*WHSW3,3s!9QO&aL~uQ^^r&z]V9{Vu|ri(b \XN XX~I!^JalE? qWPqTOYwuhpYV8,gsYX D0s#[N>d/l(0T 6Uc;%VB|AdRb"/o7$)331])olIy:~a!LPc">"Ak -d~Zq-^>dk]h-pGlvJ5VGQ 9A<%F6e.m=tOal/Wg"cnM^ MK7Dy\ h]q.3uw!YO[o6_ L tUIR _P]i$M[LA-(D*}8GK{Y,*\(A~9e:"Z^6D2A#d,Us^(KvG 5e\R1np{ivh~SWS_@(xFv;?R.s3bQZV^R[TXQ_c#!mm"H2V\ID`N0JAb.t4PWFZa+.9.$}qE1aw$ Tp4!D2#Is=~GCFI6j1iXacD.V$bht|&.< 80ETh" mfl>K&eu[w542p{]Dv> P@hW^WEB L0B<,gYJR+n2"OIp;Oiz@<0\I-$(-v%`5wqd L*V9ecO*rLLLI=r~E0[YqU p}=OM!YBu ~5i T1G%KgKnXRA~B,?syjtx;lYCJqr6ZkS\)YCb,pps3%b='+/cs7#?7re_$`sA65i/mw{$ej`Gn1;p&J~cB1 AdMuW7bg#&tH0'a !|4/1.m?6i+nu u(? iPbx2 rG9[I*fb^ PQr <:S|H/Q,g]uJ!fG\y6eF0%gNFMb7?})Rc$Q(lvPh2GwU~0(@@D3,/O d.~d'?:!N}DJv`\QyV9.8<9Y bxhFA7,Cm}a?KuK1J%DLiyrL3J|/3y+-"OEv8wbFY s}S0?iL}|r i~x{%em$FR_CD1KAO#!0AP^?cIO xQ97TbDS`(|}~JSS{0DSgY4,cGF[$N_h(lPLO]NRYfSC%w?qkuq4TX_mkx>*)&:9r93C$( ~>a5_W^WD\&.53c0P!ef"}{PDttO{8L4wbT11=Iai`7=j]VC7]MNL4"|:~_tr537*uIy,Nr'j8|}#^}\U:{ _^P_;oQzBi,)&oy7*x*yk8  L]O9Q\}(f*:|Vk!.'[J2BQ'{<Mau7;G_K?J"%2l8Rk#N> x( UBSu T]i.{Te'|[cBLe8;$ 26Z:$:Y^[`&KUYa>*:>}A ~mJjIdFO@J&WMBUxx?CZ~M)QJB>?-(l]PzIedlu,Vy}ZJ]r pqX,p%^d}D9ab/I7-V*Q`lCzo q[)'oKzr]L!hLMP_k$^3'I.o:% ^Y?asUf!J%NbV L D BU/zl9L 2:O'X&(-_HS+tg2hc~anj$YH~1rn1!\ z^2R|452=Zk4G844.f:Z%#&;LQzajZI}G;&hvW"k2b?Tk w GR6J)!v]~>ht.\8,oFP$$5se {$!t S*U SVRs0G,0J`hLOS+P2; 8]RDg{(vGQpAa&b#SGEvLeFQ1)pL W.Ya=6{6$ a!;dAV";a vNKT_0}xi3~Z4/6;/04_Iv+'Hk"}JioW,/Cz(Fx.AP~wy>6_cFsr?+4O7iOv(}L%kM|"f9.PYFDGTBXGB%2,7iK9e!#5}H9FC9`?*W<K9lQUdeoYJ_dQcU )r$EOa*?$UofN24K6Nk1>LnvfyACc.)K^!{9mt,IQA+|8]LO ^^ +U1;"eqz!m6Q|x#"3!bfy>zV)`ZbcGjI@t&3VAocsm 2*?]][ zDO PA? K= _=^z=g"&>7)M M{u` h\xVFoPr,N%*<t_/$kot\i>cD&l-]&Qmb[NT7yqP!i+m Ve0GF@ae^G[#^3>+U]PFh$ zb?\GFB:vIZ Aoj)'{FhLN `Nq+|DFT JP:eUnC hwUCZgF*3=T-:^ qn4[LQ?9mGC&JO^* KVD}YKG -)#PEO5K_1.{aj/R+vK'wgWoSUPY:VP2W81WcI,z\ am~D<WE}cf\ IV[XN:3.W0n !v?F:*L/"; u$n|eQO W0#>F1Kfn %?(Pl\|Kzf |AZLeQYGJB{D# j]VU}zn^\\ OFTA^KRQGk7v/8#%XE dnaK Eb"i,V A(ZKs' '2MM41*x.%?&rp?! .Dw\dn&tuh!VGwQ_9zDy,.I QI"#;ahwwC vM76yv bf71*p> G _ MS=NR|I\^,7tk\rGT$[uL5=nd[Y A~* Q}"z fk0dpsE.3)SAKq.*Fa\0Xi!$`'AF/Pwk_I Mh@P L[0%=tp!?yZWF RDR'IZBk[u2:f6I073Tw\,]7KWzM7ic(vDhV\XzYAY_C E[ djq a&BCkz{sNW@]?@ zDAmzF:+`h@ kP!iAW'FEQJy7mt7_VP Y]]I[^P3yU+ZRFzIl eC X^ELV,NOLF2bz{uLsCb eiFHI@='{\YVY@XVH EcoeDEF@Q\LQy6(ho|<|baeoZ!lWK [b]c?g?6s&`j&#vt KM 1/`FT!08{KP_H<uiP M s$TOMYzTo4PF2vrk0xd#H8>$Zl=bYt -~wM ]@hH FV^DH6(MG. PKR( [n2WU #n;>S]9ES#WDj xLGT\+U:WfH`nxK7'n<Xie? DTnSApO8%"hqxv2kU%s(?.lJUHNOXNT |t  dOQ@"OQ",~Dvrl(l04u <TY0a*t(x ;^=  p.kN5Ih"@F1U0pW=w.^<~f9qN@)~=cCCiMnu tw8Ix']oKEL,Kc yui`t .=~TV eK}q=17XFGJ YJT_ZZ8 3qfE0?gR0,R QCi/CHW;VyeXTSfs9jb1>)0z[:]7nsCd6~2u_h%oqvfx9QWFp  a6"`lv8)DTpKba@kl5("pE&<9vY + u2(C+~w%bc 1y.ra60w1Pw.7GM2z\`/1Y,M%[9`S[|`GHUZQI|> {PD6)LIO=`Lp7 nA[.J I ~q-s/iTB >2YG8Sjz!z0{+Fel \M]?"gY tJ[\2!f J.XGQAd~^Po,&=y^FK\RsHItS1/'O(LHWF3yg{Hf;(:&Vk{V (JZ1ZX]0NH?<<&q 4l#eY %EbT(_/3aBBZ_U7|;u)]jZf+IvrX|rKSIH74? ^7DQCn SZZ);d@ad"%F7 E Ts?AK\#'/ a; =hXpnMui?m=Ym;Fi 9[?<p%ZW237pSXRL=#o =R xeN&fUrcZ5'@nb ns^1 Wo'Jb>}H] q7jLc/]^mBG`h"ar,*5D3ME5;"18 qEpIfb\YfQF0bq'[qtw5A|0Qb*YdL'4p~7up4-t"oW `Hh AS"OapV)`l*ub\oL7 X;YHa0\_'[S{ ccr_C(ylUsj|M{B0jc~+ )j 9C=.cVRYI@:r:+D(M!7v3wk!uO/[i'#r05K,'%HX=>=;jNYLS7?NW7G?E_r2@.r%w&q:=M6M,=n9(JN^pOAV-vZB'w]`;v78XzoWn I Xo(1LViI"PLd<_t[ UQk |UuPOv#X1Z\.U__im4.<_YQSEd d:Yj /L`#q3kE* + } 28 )C~0FKQi&fxD&=m`9ACbDaE\w7Y]g_'>o^4]{i l_S5b%z?>2d2jHZcv.vg=i<%uSdkIRomnz=-~6nqo`< @AL_p= edRE_bDa_EcbyR G& -1D2wB-7g~L8o/xYCI OJnZ5 .(ddv/_LF@n/@Cg6M+;&AQ<"eVIr6YZ[=H0erLhOCfgD???D4$jkD*m^bFQET1Ai~v )}raJ~=$2jVvR x z ;e*(}>T%fhN'>jfIg hDJy<2"oU!=Lq*$ir #X=Nol.Pip8 B{v A#IP B3:f8$"\:f95iXL%e7#U >Yd~1USWopPru *D6aTZ Yo`C_wo^}7eF^5q(:m1A@fu=lzo!1vS:L 78f*n<5*>YXDs*n| j'+^Ni u]#[~@UbT.X>E;e5NCTkJ~Mn5!rO+sE$j^.ypCk8 VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HP\e matching opening parenthesisKin the message window whenever a closing parenthesis is typed. This featuresIhelps greatly in balancing parentheses in complex expressions and programaMstatements. If VTEDIT does not find a matching opening parenthesis within therBcurrent line or the previous 9 lines, it issues a warning message.N Also, VTEDIT will highlight the string delimiter starting the current literalMstring when the closing delimiter for that string is typed. That delimiter ismKfound by searching backward in the current line, skipping all double stringrJdelimiters, and, if a single string delimiter is found, it is highlighted.I The following formatters support parenthesis highlighting and display of the matching string delimiter: .LM1.LS"-"P.LE;^*Structured Language\*: The characters ^*(#[#{\* and ^*}#]#)\* are regarded>as parentheses, the characters *" and *' as string delimiters.N.LE;^*Cobol\*: The characters ^*(\* and ^*)\* are regarded as parentheses, the!character *" as string delimiter.LP.LE;^*DCL\*: The characters ^*(#[#<\* and ^*>#]#)\* are regarded as parentheses,%the character *" as string delimiter. P.LE;^*Fortran\*: The characters ^*(\* and ^*)\* are regarded as parentheses, the!character *' as string delimiter.fE.LE;^*Macro\*: The characters ^*(#[#<\* and ^*>#]#)\* are regarded as2parentheses, the character *' as string delimiter.J.LE;^*Query Language\*: The characters ^*(#[\* and ^*]#)\* are regarded as2parentheses, the character *" as string delimiter..ELS.LM0M Parenthesis highlighting is enabled by default; you may choose to disable itcHvia the Ctrl/F command. Parenthesis highlighting is suppressed forItext parts that VTEDIT recognizes as comments or string literals enclosed in string delimiters.I.TP15^^*.HL2Language-|Sensitive Editor\*J The Language-|Sensitive Editor VAX LSE is a multi-|language advanced textKeditor designed specifically for software development; it is available as arPlayered product for VMS. LSE works with VMS languages and other VMS productivityMtools to enhance program development. If VAX LSE is installed on your system,pKVTEDIT may be installed with LSE support, i.e_. with access to the specificrOfeatures of the Language-|Sensitive Editor. In this case, VTEDIT provides a setgOof additional functions that are not available without VAX LSE, or if VTEDIT isnGcalled with the qualifier /NOLSE, explicitly disabling these functions.,.X LSE^* .HL3Overview\*O LSE allows you to control your editing environment and use LSE's knowledge ofsOspecific languages to develop programs quickly and accurately. LSE provides thenfollowing features:m .LM1.LS"-"P.LE;^*Error Correction and Review:\* This feature allows you to compile, review,Oand correct compilation errors within a single editing session. LSE provides annIinterface to the supported VMS language compilers so that you can performcLcompilations without leaving LSE. The compilers provide LSE with compilationPdiagnostics in a way that allows you to review compilation errors in one editing=window while displaying the related source in another window.aP.LE;^*Language-|Specific Templates:\* Templates permit fast and efficient sourceNcode entry. LSE accesses a collection of formatted language constructs, calledItemplates, that provide keywords, punctuation, and placeholders, for eachtsupported VMS language.oL LSE allows you to modify existing templates or define your own language ortext templates.oJ.LE;^*Integrated Programming Environment:\* LSE is integrated into the VMSPdevelopment environment. It is invoked using the DIGITAL Command Language (DCL).KIf VTEDIT is installed with support for the Language-|Sensitive Editor, LSEnGfeatures are directly invoked from VTEDIT. LSE works with supported VMSDGlanguages, SCA, DEC/CMS (CMS), the VMS Debugger (debugger), and the VAXaNPerformance and Coverage Analyzer to provide a highly interactive environment.MThis environment enables you to create and edit code, to view multiple sourcecOmodules, to compile programs, and to review and correct compile-|time errors inaone editing session. .X DebuggeraN LSE can be invoked directly from the debugger to correct source code problemsMfound during debugging sessions. In addition, LSE can be invoked from the VAX NPerformance and Coverage Analyzer to correct performance problems found duringanalyzing sessions.iI.LE;^*Online Help Facility:\* LSE provides online Help for information ondMunfamiliar language constructs and routines. Help is also provided for all oftILSE's commands and key definitions, integrated in VTEDIT's Help facility.e.X HelpoM.LE;^*Source Code Analysis:\* LSE's integration with SCA allows you to searcheMfor specific information contained in your source files. SCA is a source codetKcross-reference and static analysis tool that helps programmers familiarizeOMthemselves with complex systems. SCA accesses source information generated byqKsupported VMS language compilers. Thus, SCA allows you to move through this.Ninformation and gain access to related source files as necessary. You can findOout how a program symbol was declared, where a particular routine is called, or.#what module needs to be recompiled. .X SCAH.LE;^*Source Code Management:\* An interface with DEC/CMS simplifies theOfunctions of program development. All CMS commands can be issued within VTEDIT.TMLSE can be directed to fetch files directly from a CMS library when you issueePstandard VTEDIT or LSE file manipulation commands. In addition, LSE has commandsOReserve, Replace and Unreserve which perform the corresponding CMS operation one LSE buffers..X CMSN.LE;^*System Services and Run-|Time Library Templates:\* LSE provides packagesKfor VMS Systems Services and for the LIB$, SMG$, and STR$ Run-|Time LibraryhIroutines. In addition, LSE allows you to define templates for packages ofesubroutine libraries. .X System servicen.X Run-Time Librarye .ELS0.LM0i^* .HL3Concepts\*L The file type field of the name of a buffer determines the default languageIfor that buffer. VMS file types (such as, .C or .FOR) specify the defaultiOlanguage; however, if you omit the file type, or specify a file type unknown to HVTEDIT, no language is assumed, but a language may be set explicitly viathe Set Language command.e.X Language>file typen.X Language>setting J The Language-|Sensitive Editor, with its knowledge of program structures,Pserves both experienced and inexperienced programmers as a time-|saving tool forJprogram development. To achieve this goal, the editor uses the concepts ofNtokens and placeholders as facilities for defining language-|specific elementsPfor source code entry, and compiler interfaces to support the compilation of theGcode from within the editor. (For a listing of the language definitionsrMavailable with VTEDIT, type 'Languages' to the prompt from the Show command.)eL VTEDIT with LSE support works within the VAX/VMS environment in conjunctionOwith the VAX language compilers, the VAX Multi-|Language Symbolic Debugger, and) the entire VAX/VMS set of tools.9 You can use VTEDIT with LSE support to do the following:t .LM1.LS"-"N.LE;Construct syntactically correct programs in any of the supported languages>or in a language for which you provide a definition to VTEDIT.O.LE;Call the appropriate compiler, while in the editing session, to compile thetprogram you have constructed.aM.LE;Edit your program, or any text file, using standard text editor commands.nI.LE;Tailor your editing environment, by providing definitions of your owntPlanguage or other textD3- VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HPual templates for VTEDIT in the same manner used to definethe supported languages..X Environment .ELS0.LM0oP To use the Language-|Sensitive Editor from VTEDIT to create or edit source codePrequires an understanding of the concepts of tokens and placeholders. Tokens andLplaceholders are language elements that have been predefined for each of theOsupported languages. By successively expanding these elements into templates ofl8language constructs you can construct complete programs.N Tokens are typically reserved words or function names that you expand or typeIinto the editing buffer and expand to provide templates for correspondingrlanguage constructs..X TokenG Placeholders are elements inserted into the editing buffer as parts ofnNtemplates, and represent locations in the source code for the entry of programMtext. In many cases, however, an expanded placeholder provides a template fornadditional text..X PlaceholderP Finally, aliases are abbreviated reference names for long identifiers that haveObeen entered in the source code. To define an alias, for an identifier on whichrHthe cursor is currently located, press the Ctrl/A key and type theNabbreviation at the prompt. Whenever the reference name is typed and expanded,+the original identifier string will appear.n.X Alias^*.HL3Entering Source Code\*H To support rapid source code development and decrease the occurrence ofHsyntactic errors, the Language-|Sensitive Editor provides facilities forLdefining language-|specific tokens and placeholders. Tokens and placeholdersPallow for the insertion of source code, within language constructs, by expandingIthe name a user types and by further expanding tokens and placeholders onosyntactic markers. .X ExpandsJ On-|line help for language features is also provided that is keyed to the!names of tokens and placeholders.s.X Language>HelpN If you are experimenting with a new file associated with one of the supported3languages, the following procedures may be helpful:r .LM1.LS"-"O.LE;Once you have invoked VTEDIT, and the initial string appears on the screen,eKpress the Expand Token key (F13 or Linefeed) and the structure of a programJassociated with your language will appear. On expanding the initial stringE(or any other token or placeholder), one of the following will occur:m.X Initial Stringr.LS"o"I.LE;Text will appear to aid you in supplying a value. (This is a terminalm placeholder.)b.X Placeholder>terminaltP.LE;The placeholder will be replaced with a template consisting of more language.elements. (This is a nonterminal placeholder.).X Placeholder>nonterminalL.LE;A menu will appear, providing you with options that can be expanded into(templates. (This is a menu placeholder.).X Placeholder>menu.O Each option in a menu is either a token, a placeholder, or a string. Selecting La token or a placeholder causes the expansion of the option to appear in theMuser's buffer, while choosing a string causes the string to appear. When thissOhas occurred, the menu is removed from the screen. When a menu first appears onrthe screen, you can:.LS"+"M.LE;Move through the menu by pressing the up or down arrow keys. (This causesn3the indicator to move from one option to the next.)iN.LE;Select an option from the menu by pressing the Enter or the Return key, orPthe Expand Token key (F13 or Linefeed) again. (The current option is indicated.)9.LE;Press the H or Help key to get additional help. M.LE;Press the space bar to cause the menu to disappear (this has no effect on Othe current text buffer). Pressing any other key also makes the menu disappear,T)however, the key's function is performed. .ELS0.ELS0H For any of these three cases, you simply type the desired text over the placeholder.O.LE;Using the Next Placeholder key (")" or #Next#Screen), move fromVPone placeholder to the next, expanding and typing in text as you go. If you needMhelp on a placeholder (or token), press the Help Language key (?) whilea&you are positioned on the placeholder.P.LE;For those optional placeholders you do not want, press the Erase Placeholderkey (_# or F17)..ELS.LM0E If you wish to get more general information about VTEDIT and/|or thed-Language-|Sensitive Editor, do the following:u .LM1.LS"-"I.LE;Press the Help key (H or Help) to see the keypad diagram or getc'information about commands and/or keys.nK.LE;Press the LSE Command key (Do or Ctrl/?) to evoke the LSE prompt,4Gand type the Show Key command to obtain a listing of the keys and their, descriptions.t@.LE;Type the Help command at the LSE prompt to see a list of the;Language-|Sensitive Editor commands and their explanations.aG.LE;Type 'Placeholders' or 'Tokens' at the prompt from the Show command F(F12 or Backspace) to examine a list of all the predefined%placeholders or tokens, respectively.e .ELS0.LM0nM To edit an existing file, in one of the supported languages, you make use of Othe editor's language knowledge by entering tokens. Since tokens exist for many Nreserved words, simply type the token name and press the Expand Token key (F13Mor Linefeed). For example, typing IF followed by a Linefeed causes a templater-for an IF construct to appear on your screen.t^* .HL3Languages \*J VTEDIT with LSE support allows you to use the Language-|Senstive Editor'sMknowledge of programming languages to develop software. It also allows you topMdesign your own languages and customize the environment according to your ownUprogramming style.N When you invoke VTEDIT with LSE support, the file type you use determines theNdefault language (for example, .C and .H for C, or .FOR for FORTRAN); however,Mif a file type is omitted, or a type is specified that is not associated withy<one of the supported languages, no language will be assumed.J The following language are automatically selected according to these fileHtypes, and stay attached to a buffer, once they are selected explicitly:.X Language>file typen.LM+4.TP10.S.NF.NJ7 File Type O} Languagee9 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqi0 .C .H O} C4 .CBL .COB .LIB O} Cobol2 .COM O} DCL9 .DTR O} Datatrievey6 .COD .DES .DUM .EXT .FOR .FTN .INC .INT O} Fortran3 .HLP O} Helph5 .ENV .PAS O} Pascalt5 .RND .RNH .RNO .RNT .RNX .TXT O} Runoffa5 .TPU O} VAXTPUs .F.J.LM-4yK To define your own language templates, or add tokens and placeholders to aI8supported language, adhere to the following suggestions: .LM1.LS"-"F.LE;Use the Define Language LSE command and its qualifiers to specify: .S.LS0"o"0.LE;The name of your language (Define Language).!.LE;The file type (/FILE__TYPES).iO.LE;The required and optional placeholder delimiters (/PLACEHOLDER__|DELIMITERSt9_= OPTIONAL, OPTIONAL__|LIST, REQUIRED, REQUIRED__|LIST).eA.LE;The identifier characters to be used in token and alias namesh(/IDENTIFER__|CHARACTERS).;.LE;The punctuation characters (/PUNCTUATION__|CHARACTERS).f.ELS0gH.LE;Use the Define Token and Define Placeholder LSE commands to specify:.SPR,,1.S.LS0"o"(.LE;The associated language (/LANGUAGE).J.LE;The language elements, such as parameters, statements, and assignments(/DESCRIPTION).tD.LE;The type of placeholder: terminal, nonterminal, or menu (/TYPE). .ELS0.SPR,,2M.LEx VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HE;Use the Save Environment LSE command to write your language to a file for later editing and updating.e .ELS0.LM0hI You may wish to associate a formatter with the language you defined. For 6information on this subject, see sections 5.4 and 5.5..X Formatter>language.X Language>formattera^*.HL3Compilation and Review\*N Language-|specific compiler interfaces support the compilation of source codeLfrom within VTEDIT, and also provide diagnostic records for error review andPautomatic positioning at error sites. When writing your program, you can use theHCompile and subsequent Review commands to check your code for syntax and4semantic errors without exiting the editing session. .X CompileK The Compile command (F20 or 1Ctrl/Z) compiles the current buffer andlPwrites diagnostic information to a file. VTEDIT supports each compiler's commandJqualifiers and also applies any qualifiers that have been pre-|defined viaOthe DCL-|symbol 'language'__FLAGS, where 'language' is the name of the languageiNassociated with the current buffer, e.g_. Fortran or Cobol. VTEDIT forms a DCLDcommand line by appending the file spec of the current buffer to theMcommand-|string specified as the COMPILE command for the current language. IfiPthe associated language has diagnostic capabilities, /DIAGNOSTICS is appended toNthe DCL command formed. VTEDIT then spawns a subprocess to execute the commandJline. When the subprocess completes, a message is displayed in the messagewindow.tI The Review command (F14 or _=) selects and displays a set ofeOdiagnostic messages that resulted from a compilation. The compilation must havee+been done using the /DIAGNOSTICS qualifier.e .X ReviewhO The screen will split into two windows. The top window is buffer $Review whichdLdisplays errors and highlights the line where the error occurred. The bottomJwindow is the source buffer. You then type the Next Step key (F20 orK]) to move to the next error in buffer $Review. To move to the sourcegObuffer and the region containing the error, type the Goto Source key (F18 Oor _*). Use the arrow keys to move within the source buffer. To return totBreviewing errors, type either the Next Step or Previous Step keys.L Other than highlighting an area in the source buffer, for certain messages,Jthe Language-|Sensitive Editor can modify the source code according to theMcorrection indicated by the message. The area in the source buffer where this,Nerror occurred is highlighted. Once you locate the source code, the correctionPappears on the line where the error occurred in the source buffer. At the bottom"of the screen, VTEDIT prompts you: .X Corrections-.S.I5;Keep the indicated correction [Y or N]?iN If you wish to keep the supplied correction, enter Y. If you wish to keep theNoriginal code unaltered, enter N. There is no default. You must enter either Yor N.dN When in buffer $Review, to return to one window containing the source buffer,type the F9 or D key.s^*.HL3Source Code Analysis\*@ The VAX Source Code Analyzer is a multi-|language, interactive,Lcross-|reference and static analysis tool. It is tightly coupled with LSE to4provide an advanced program development environment..X SCAL Using VTEDIT with LSE and SCA, you can display cross-|reference informationLthat includes identifier names, their declaration class, the location of theMoccurrences of the identifier in the source code for your entire program, and Gthe types of occurrences (e.g_. call, read, write, declaration, etc_.).eM You can select an occurrence in the cross-|reference display and press a keyeMto access and display the location in the source file that corresponds to theTselected symbol occurrence.pI Using LSE with SCA, you can also view procedure call trees and check forn+consistency between calls and declarations.dH The following steps describe how to create and select SCA libraries for querying:h .LM1.LS"-"H.LE;Generate analysis data with your compiler using the /ANALYSIS__|DATA>qualifier on your command line. The command line has the form:7.S.I4;$ Language/ANALYSIS__DATA[/...] source-file[,...]cL The /ANALYSIS__DATA qualifier requests that the specified compiler generateHan output file of source information having a default file type of .ANA.L.LE;Create a directory for your SCA library with the DCL command as follows:-.S.I4;$ CREATE/DIRECTORY directory-spec[,...]n= Only one SCA library can be created in a specific directory.L6.LE;Create an SCA library in the directory as follows:.X SCA>library?.S.I4;$ SCA CREATE LIBRARY [/qualifier...] directory-spec[,...]dL After initialization, the library becomes the primary library (first in thelist) by default.e=.LE;Load the analysis data files (.ANA) into the SCA library:e0.S.I4;$ SCA LOAD [/qualifier...] file-spec[,...]K You can load one or more files of compiler-|generated source analysis dataaM(.ANA) into a current SCA library by using the LOAD command. If more than oneiHfile (.ANA) is to be loaded, you may use wildcard file specifications toidentify the files.lA.LE;Invoke SCA and select and activate the library (Set Library): <.S.I4;$ SCA SET LIBRARY [/qualifier...] directory-spec[,...]E You specify an SCA library for use during an SCA query session. If af1libraries list exists, it is replaced by default.c.X Query .ELS0.LM0oN The following examples show how SCA commands can be used to query informationJin an SCA library. These commands may be entered to the LSE command prompt from VTEDIT: .LM1.LS"-"L.LE;You can selectively display information about modules in the current SCA?library with the Show Module command. The command has the form:r:.S.I4;SHOW MODULE [/qualifier...] [module-name-expr[,...]]N Complete (/FULL) or partial (/BRIEF) information about all (/ALL) modules, orMselected (/VISIBLE or /HIDDEN) modules, can be displayed. The terms "visible" Land "hidden" refer to the results of the module selection process that occur%when multiple libraries are accessed.eO.LE;You can obtain cross-reference information about program symbols and source :files by using the Find command. The command has the form:0.S.I4;FIND [/qualifier...] name-expression[,...]N.LE;You can selectively display call information related to specified routinesPin the current SCA library with the View Call__Tree command. The command has theform:d=.S.I4;VIEW CALL__TREE [/qualifier...] routine-name-expr[,...]r .ELS0.LM0bE In addition to entering SCA commands to VTEDIT's LSE command prompt,.Ostandalone SCA commands can be placed in DCL procedures for processing as batchcNjobs. Such procedures would be appropriate for the creation and maintenance ofHan SCA library for a very large-|scale software system. Also, proceduresNcontaining appropriate standalone commands can be submitted as batch jobs whenPlengthy reports are expected (such as those derived from View Call__Tree or ShowModule queries).^*.HL3Source Code Management\*M VTEDIT provides for invoking DEC/CMS from the LSE command line using the CMSeLcommand. Also, when VTEDIT must access a file from the directory that is theLuser's CMS library, VTEDIT will automatically use CMS to Fetch the file. LSEMalso has a Reserve command to reserve the element in your current CMS librarylPthat has the same name and type as the file associated with your current buffer.NThe Unreserve and Replace commands also provide the corresonding CMS operation$for the file in your current buffer..X CMS.PGr .SEND TOC .S.SEND TOC .TP3^*.HL1Editing Text\*^*.HL2General Informations\*K In addiF"/ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H#tion to allowing you to enter text, the Video Terminal Editor has asNlarge repertoire of powerful editing commands. You request an editing functionPby using the auxiliary keypad on the terminal or by typing control characters orNcontrol sequences on the standard keyboard. Some functions require you to type several keys.EN The following sections describe the editing functions available in VTEDIT. InMmost cases, an editing function is equivalent to a VAXTPU procedure call; the Pname of the procedure, stripped of its initial "vte__" and with "__" replaced byMspace - is shown after the description as 'command name'. In some more cases,sIthere is no direct correspondence to a VAXTPU procedure, but Help text isVGavailable via the command name shown in the following list of commands.t.X Editing functions.X TPU>procedureK VTEDIT sounds the terminal bell when it detects an error, and, if the typeoJof error is considered less obvious, displays an error message in the lastline of the terminal screen..X Error^*.HL2Notational Conventions\*D All commands marked with an asterisk (*_*) take an optional numeric argument as:.X Numeric argumentt".S.I2; [-] J Commands marked with a hash symbol (*_#) ^&must\& use a numeric argument,Mi.e_. their argument is mandatory, not optional. If, in the following commandrPdescriptions, a numeric value "n" is referenced, it refers to a numeric argumentNentered before the command. Omitting this argument, if it is optional, results1in n taking the value 1, if not stated otherwise. L All commands that operate on selected ranges if Select is active are markedIwith a diamond (`). All commands that operate on rectangular regions ifsFSelect Rectangular is active, are marked with a small rectangle (a)..X Range>select .X Region>rectangularrO All commands in the lower parts of the fields of the following keypad diagramsmKare prefixed by ^*\*, i.e_. pressing the PF1 keypad key, displayed aseM'*' in the following command descriptions. The effect of pressing the dJkey by mistake can be cancelled by typing the Ctrl/U key; the key sequenceN#Ctrl/U rings the terminal bell, but otherwise acts as a command withoutany consequences.e.X Gold key>cancel.PGe^*.HL2Keypad Layoutf\*^*.HL3VT100 Keypad\*G The following diagram shows the keypad functions for a VT100 terminal.eIThe meaning of the keypad keys is the same for VT200 terminals, but theres#are some additional keys available..X Key definitions.X VT100 keypadd .X Keypadr .X Diagram .S2.LM+5.LITClqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqk Kx "O|" x "O~" x "O{" x "O}" xhKx Up in Column *xDown in Column*x Cursor Left * x Cursor Right* xrCx q q q q q q q x q q q q q q q x q q q q q q q x q q q q q q q xlKx Up Screen * x Down Screen * x Shift Left * x Shift Right * xdCmqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqjeClqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqk Cx "PF1" x "PF2" x "PF3" x "PF4" xnIx x Save Text *`a x Paste Text a xSearch/Repl. *`xaLx G o l d x q q q q q q q x q q q q q q q x q q q q q q q xRx () x Write Text *` xRead this File x Replace All ` xCtqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqquCx "7" x "8" x "9" x "q" x Kx Open Line * x Page Forward* xSelect / Quote*xInsert/Overstr*xoCx q q q q q q q x q q q q q q q x q q q q q q q x q q q q q q q x KxDirectory List.xOutput & Close xSelect Rectang.xRead Lowercase*xoCtqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqunCx "4" x "5" x "6" x "," xuKx Up Line * x Delete Char * x Delete/Restorex Replace Again xnCx q q q q q q q x q q q q q q q x q q q q q q q x q q q q q q q x KxUp Continuouslyx Set Formatter x Skip xSet/Delete MarkxoCtqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqquaCx "1" x "2" x "3" x "ENTER" xeIx Top / Jump *`ax Bottom x Start of Line x xeEx q q q q q q q x q q q q q q q x q q q q q q q x Enter xtKxOpen Input FilexOpen Outp File x Open Buffer x Search Argum* xeCtqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqqu q q q q q q q xsEx "0" x "." x Enter xaIx Down Line* x Search Again* x Replace Argum x.Cx q q q q q q q q q q q q q q q x q q q q q q q x x Gx Down Continuously x Go to Mark x x (*) key functions; VTEDIT supports its full functionalityKon VT100 terminals (with the exeception of display of characters of the DECeGsupplemental character set, which is not available on VT100 terminals).f.PGi^*.HL3VT200 Function Keys\*H The following diagram shows the meaning of the additional function keysKavailable on VT200 terminals. Commands shown in ^*bold\* are only availableoIif VTEDIT is installed with LSE support and if it is not invoked with the qualifier /NOLSE.t.X VT200 function keys.X Function keys .X Diagram .S2.LM+3.LITIlqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqkeIx "F6" x "F7" x "F8" x "F9" x "F10" xaSx Cancel x Next Buffer xOther Window xChangeWindowsx Exit x2Ix q q q q q q x q q q q q q x q q q q q q x q q q q q q x q q q q q q xo]x x List BuffersxGoto Declar*`xFind Symbol*`x xgImqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqji;lqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqke;x "F11" x "F12" x "F13" x "F14" x JxCompile TPU*`x End of Line x Expand x Page Back * x;x q q q q q q x q q q q q q x q q q q q q x q q q q q q xEQxExecute TPU*`x Show Status x LSE Keys * x Review xf;mqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqju; lqqqqqqqqqqqqqwqqqqqqqqqqqqqqqqqqqqqqqqqqqkc? x "Help" x "Do" x ? x Get Help x TPU Command xa; x q q q q q q x q q q q q q q q q q q q q xoF x Show Status x LSE Command x; mqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqji; lqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqktA x "Find" x"Insert Here"x "Remove" xnA xSearch Argum*xReplace Argumx Delete *`a x0; x q q q q q q x q q q q q q x q q q q q q xuA x Go to Mark x Insert Mark x Remove Mark x.; tqqqqqqqqqqqqqnqqqqqqqqqqqqqnqqqqqqqqqqqqquIA x "Select" x"Prev Screen"x"Next Screen"x A x Select xBack Screen* xAdvance Scr.*xO; x q q q q q q x q q q q q q x q q q q q q x O xSel. Rectang.xPrevPlacehld*xNextPlacehld*x ; mqqqqqqqqqqqqqnqqqqqqqqqqqqqnqqqqqqqqqqqqqjN/ G"b VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H" x "O|" x / xUp in Column*x- x q q q q q q xt. x Up Screen * x; lqqqqqqqqqqqqqnqqqqqqqqqqqqqnqqqqqqqqqqqqqkhA x "O{" x "O~" x "O}" x0A xCursor Left *xDown in Col.*xCursor Right*xe; x q q q q q q x q q q q q q x q q q q q q xlA xShift Left * xDown Screen *xShift Right *x|; mqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqjt;lqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqwqqqqqqqqqqqqqkE;x "F17" x "F18" x "F19" x "F20" xRCx Attach x DCL Command x Spawn x Compile xm;x q q q q q q x q q q q q q x q q q q q q x q q q q q q xg_xErasePlacehldx Goto Source xPrev. Error *x Next Error *xC;mqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqvqqqqqqqqqqqqqjl.EL.LM-3.TSE.TS10,25.PG2^*.HL2Editing Commands\*.LM+10^*.HL3Moving the Cursor \*.X Move .TP10.S.I-10;^&Command:\& Jump.X Command>Top".S.I-10;Syntax: ^*1\* (keypad key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).BR;a (rectangular region)?.S.I-10;Meaning: Move the cursor to the start of line n. If thewJnumeric argument n is not given but a range or rectangular region has beenOselected, jump across that range or region. Otherwise, jump to the beginning ofwthe text buffer..S.I-10;Name: Tops0.TP10.S2.I-10;^&Command:\& Jump to End of Buffer.X Command>Bottome".S.I-10;Syntax: ^*2\* (keypad key)?.S.I-10;Meaning: Move the cursor to the end of the text buffer.s.S.I-10;Name: Bottom'.TP10.S2.I-10;^&Command:\& Advance Lineo.X Command>Move Line Forward".S.I-10;Syntax: ^*0\* (keypad key)0.S.I-10;Options: *_* (optional numeric argument)A.S.I-10;Meaning: Advance the cursor by n lines, leaving it at thedbeginning of a line..S.I-10;Name: Move Line Forwarde$.TP10.S2.I-10;^&Command:\& Back Line.X Command>Move Line Backward.".S.I-10;Syntax: ^*4\* (keypad key)0.S.I-10;Options: *_* (optional numeric argument)A.S.I-10;Meaning: Back up the cursor by n lines, leaving it at thecbeginning of a line. .S.I-10;Name: Move Line Backward(.TP10.S2.I-10;^&Command:\& Start of Line.X Command>Start of Line".S.I-10;Syntax: ^*3\* (keypad key)B.S.I-10;Meaning: Move the cursor to the start of the current line..S.I-10;Name: Start of Linee&.TP10.S2.I-10;^&Command:\& End of Line.X Command>End of Line5.S.I-10;Syntax: ^*Backspace\* (special key or Ctrl/H)a .BR;^*F12\* (VT200 function key)@.S.I-10;Meaning: Move the cursor to the end of the current line.BThe end of the line is just before a carriage return or form feed..S.I-10;Name: End of Linee,.TP10.S2.I-10;^&Command:\& Advance Character.X Command>Move Rightu1.S.I-10;Syntax: ^*O}\* #(right arrow keypad key)t0.S.I-10;Options: *_* (optional numeric argument)G.S.I-10;Meaning: Move the cursor right one column on the screen. If thefLcursor is positioned after the last character of a line, and if bound cursor6movement has been selected, it wraps to the next line..X Cursor>free.X Cursor>boundn.S.I-10;Name: Move Right).TP10.S2.I-10;^&Command:\& Back Charactera.X Command>Move Left0.S.I-10;Syntax: ^*O{\* #(left arrow keypad key)0.S.I-10;Options: *_* (optional numeric argument)F.S.I-10;Meaning: Move the cursor left one column on the screen. If theLcursor is on the first character of a line, and if bound cursor movement has-been selected, it wraps to the previous line.l.X Cursor>free.X Cursor>boundh.S.I-10;Name: Move Lefto).TP10.S2.I-10;^&Command:\& Down in ColumnX.X Command>Move Down0.S.I-10;Syntax: ^*O~\* #(down arrow keypad key)0.S.I-10;Options: *_* (optional numeric argument)=.S.I-10;Meaning: Advance the cursor by n lines, keeping it innKthe same column of the screen if possible. Column position is determined byn'counting characters and expanding Tabs.eN For bound cursor movement, the target position is determined in the followingIway: If the target line is shorter than the position of the cursor at thesNstart, the cursor is left at the end of the line. If the desired column in theItarget line is in the middle of a tab stop, the cursor is left at the TabaOcharacter. Repeatedly typing this key and the up arrow key preserves the targetl,column, and repositions to it when possible.H For free cursor movement, the target position retains the column of theDcursor at the start, regardless of the fact whether there is text atPthe destination or not; even positions in the middle of a tab stop are possible.JIf text is typed at a position beyond the end of a line, beyond the end ofNthe current buffer, or in the middle of a tab stop, enough spaces and possiblyPnewlines are inserted automatically to put the new text at the correct position..X Cursor>free.X Cursor>boundt.S.I-10;Name: Move Downs'.TP10.S2.I-10;^&Command:\& Up in Columne.X Command>Move up/.S.I-10;Syntax: ^*O_|\* #(up arrow keypad key)e0.S.I-10;Options: *_* (optional numeric argument)=.S.I-10;Meaning: Back up the cursor by n lines, keeping it inKthe same column of the screen if possible. Column position is determined by'counting characters and expanding Tabs.nN For bound cursor movement, the target position is determined in the followingIway: If the target line is shorter than the position of the cursor at thenNstart, the cursor is left at the end of the line. If the desired column in theItarget line is in the middle of a tab stop, the cursor is left at the TabEJcharacter. Repeatedly typing this key and the down arrow key preserves the3target column, and repositions to it when possible.tH For free cursor movement, the target position retains the column of theHcursor at the start, regardless of the fact whether there is text at theOdestination or not; even positions in the middle of a tab stop are possible. If Otext is typed at a position beyond the end of a line, or in the middle of a tabaIstop, enough spaces are inserted automatically to put the new text at the;correct position.c.X Cursor>free.X Cursor>boundi.S.I-10;Name: Move upE'.TP10.S2.I-10;^&Command:\& Advance Word,.X Command>Move Word Forward(.S.I-10;Syntax: ^*Ctrl/F\* (control key)0.S.I-10;Options: *_* (optional numeric argument)=.S.I-10;Meaning: Advance the cursor by n words, leaving it atSOthe first character of the n-th word. Words are normally delimited by sequencesaMof spaces, Tabs, commas, carriage returns, and line feeds. See the section onemanipulating words.o.S.I-10;Name: Move Word Forwarde$.TP10.S2.I-10;^&Command:\& Back Word.X Command>Move Word Backwardm(.S.I-10;Syntax: ^*Ctrl/R\* (control key)0.S.I-10;Options: *_* (optional numeric argument)=.S.I-10;Meaning: Back up the cursor by n words, leaving it atV.the first character of the n-th previous word. .S.I-10;Name: Move Word Backward/.TP10.S2.I-10;^&Command:\& Advance Continuouslys.X Command>Scroll Up+.S.I-10;Syntax: ^*0\* (, keypad key)bB.S.I-10;Meaning: Move the cursor continuously forward by one line,Jupdating the screen each time the cursor moves. You can stop the motion byLtyping any key. The character typed to stop the motion is otherwise ignored.@Motion also stops when the cursor reaches the end of the buffer..TP3.S.I-10;Name: Scroll Up.,.TP10.S2.I-10;^&Command:\& Back Continuously.X Command>Scroll Down+.S.I-10;Syntax: ^*4\* (, keypad key)iC.S.I-10;Meaning: Move the cursor continuously backward by one line,oJupdating the screen each time the cursor movesHz VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H:. You can stop the motion byLtyping any key. The character typed to stop the motion is otherwise ignored.FMotion also stops when the cursor reaches the beginning of the buffer..TP3.S.I-10;Name: Scroll Downl/.TP10.S2.I-10;^&Command:\& Advance Screen Image.X Command>Next Screen9.S.I-10;Syntax: ^*O~\* #(, down arrow keypad key)o&.BR;^*Next Screen\* (VT200 keypad key)0.S.I-10;Options: *_* (optional numeric argument)G.S.I-10;Meaning: Advance the cursor the correct number of lines to move Mthe current bottom line of the screen to just off the top of the screen. Thisu-allows you to 'page' through the text buffer.o.S.I-10;Name: Next Screene,.TP10.S2.I-10;^&Command:\& Back Screen Image.X Command>Previous Screen8.S.I-10;Syntax: ^*O_|\* #(, up arrow keypad key)&.BR;^*Prev Screen\* (VT200 keypad key)0.S.I-10;Options: *_* (optional numeric argument)G.S.I-10;Meaning: Back up the cursor the correct number of lines to moveMthe current top line of the screen to just off the bottom of the screen. Thisg-allows you to 'page' through the text buffer.a.S.I-10;Name: Previous Screenf'.TP10.S2.I-10;^&Command:\& Advance Pagen.X Command>Page Forwarda".S.I-10;Syntax: ^*8\* (keypad key)0.S.I-10;Options: *_* (optional numeric argument)D.S.I-10;Meaning: If the numeric argument n is positive, go forward nPpages in the file being edited; if n is negative, go backward n pages. Pages areIdelimited by form feed characters and by start or end of the text buffer.a.S.I-10;Name: Page Forward$.TP10.S2.I-10;^&Command:\& Back Page.X Command>Page Backward,.S.I-10;Syntax: ^*F14\* (VT200 function key)0.S.I-10;Options: *_* (optional numeric argument)E.S.I-10;Meaning: If the numeric argument n is positive, go backward niOpages in the file being edited; if n is negative, go forward n pages. Pages aresIdelimited by form feed characters and by start or end of the text buffer.o.S.I-10;Name: Page Backwardr3.TP14.S2.I-10;^&Command:\& Back Over Last Operatione.X Command>Skip Rangeh+.S.I-10;Syntax: ^*6\* (, keypad key)n9.S.I-10;Meaning: Back up the cursor the correct number of*Lcharacters, and position it to where it was prior to the last operation. ForLexample, if you have just saved some text with the PF2 keypad key, then this6would re-|position you to the start of the saved text..S.I-10;Name: Skip RangeE.TP14.S2.I-10;^&Command:\& Find Remembered Position from Previous Run F.S.I-10;Syntax: ^*-F\* (, main keyboard minus, , letter)E.S.I-10;Meaning: Position to the position occupied by the cursor whentIexiting the previous invocation of VTEDIT via the 0F command,s,i.e_. Exit from VTEDIT Remembering Position..LM-10.PG ^*$.HL3Marking and Retrieving Positions\*.X MarkiG You may find tutorial information about text selection in section 3.3.R.LM+10*.TP10.S2.I-10;^&Command:\& Start Selection.X Command>Selecth".S.I-10;Syntax: ^*9\* (keypad key)!.BR;^*Select\* (VT200 keypad key)gC.S.I-10;Meaning: Mark the current cursor position to start a selectcKrange. A select range is a block of text on which various operations can be $performed. To create a select range:.X Range>select/.LSgJ.LE;Move the cursor to either the beginning or end of the text you wish toselect.G).LE;Press the keypad 9 or the Select key.f4.LE;Move the cursor to the opposite end of the text..ELSMYou can then press the key to invoke the function to be applied to the select range.N If you type the keypad 9 key or the Select key when a select range is active,Fthe select range is deactivated and the bell sounds. Thus, to revoke aLselection, type the keypad 9 key or the Select key until the bell rings. The3select range is always deactivated when it is used.}.S.I-10;Name: Select>.TP10.S2.I-10;^&Command:\& Select Corner of Rectangular Region.X Command>Select Rectangularq+.S.I-10;Syntax: ^*9\* (, keypad key) *.BR;^*Select\* (, VT200 keypad key)D.S.I-10;Meaning: Mark the current cursor position as one corner of aHrectangular region. A rectangular region is a block of text delimited byPhorizontal and vertical borders on which various operations can be performed. Tocreate a rectangular region:.X Region>rectangularx.LSsJ.LE;Move the cursor to any corner of the rectangle you wish to define as aPrectangular region. It does not matter whether you start with the upper left andOfinish with the lower right corner, or vice versa, or whether you use the otherqtwo corners of the rectangle. 7.LE;Press the keypad 9 or the Select key. N.LE;Move the cursor to the opposite corner of the rectangle you wish to defineas a rectangular region..ELSFYou can then press the key to invoke the function to be applied to therectangular region.nP If you type the keypad 9 key or the Select key when a rectangularLregion is active, the rectangular region is deactivated and the bell sounds.NThus, to revoke a selection, type the keypad 9 key or the SelectNkey until the bell rings. The rectangular region is always deactivated when itis used. .S.I-10;Name: Select Rectangular5.TP10.S2.I-10;^&Command:\& Jump to Start of Selectionq.X Command>Top".S.I-10;Syntax: ^*1\* (keypad key)I.S.I-10;Meaning: If a range or rectangular region has been selected, jump Iacross that range or region. Otherwise, jump to the beginning of the textqbuffer.q.S.I-10;Name: Topq0.TP10.S2.I-10;^&Command:\& Insert Permanent Mark.X Command>Insert Mark;.S.I-10;Syntax: ^*Insert Here\* (, VT200 keypad key)qF.S.I-10;Meaning: Insert a mark at the current cursor position. You canOuse this mark to re-|position to the marked position later on via the Find Markhcommand.M Up to 5 marks may be active at any one time; the sixth mark defined via this -command will delete the first one, and so on.x.S.I-10;Name: Insert Mark 0.TP10.S2.I-10;^&Command:\& Remove Permanent Mark.X Command>Remove Mark6.S.I-10;Syntax: ^*Remove\* (, VT200 keypad key)F.S.I-10;Meaning: Remove the mark that you are currently positioned at.LTo position to a mark, type keypad period (.) or, on VT200 terminals,Jthe Find key, and to create a mark at the current position, use theInsert Mark command..S.I-10;Name: Remove Marki9.TP10.S2.I-10;^&Command:\& Insert / Remove Permanent Marks.X Command>Toggle Mark1.S.I-10;Syntax: ^*,\* (, keypad comma key)aE.S.I-10;Meaning: Insert a mark at the current cursor position, or, iflIyou are already positioned at a mark, remove it. You can use the mark youIinserted to re-position to the marked position later on via the Find Markqcommand..S.I-10;Name: Toggle Markq,.TP10.S2.I-10;^&Command:\& Go to (next) Mark.X Command>Find Mark2.S.I-10;Syntax: ^*.\* (, keypad period key)(.BR;^*Find\* (, VT200 keypad key)I.S.I-10;Meaning: If the previous keystroke was a VTEDIT Find or Find NextqPcommand, return the cursor to its position just before issuing the last command.MOtherwise, jump to the next mark set via the Insert Mark command. By enteringqNthe Find Mark command repeatedly, you can cycle through all the marks that youdefined..S.I-10;Name: Find Mark .LM-10.PG ^*.HL3Searching Text\*.X Search>commandsI Text search and replacement is discussed in a tutorial manner in sectionq63.4. Prompting for values is described in section 3.6..LM+10E.TP10.S2.I-10;^&Command:\& Set Search Argument and Search Text Bufferm.X Command>Findq&.S.I-10;Syntax: ^*Enter\* (keypad key).BR;^*Find\* (VT200 keypad key)w0.S.I-10;Options: *_* (optional numeric argument)C.S.I-10;Meaning: Get a search arI$ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hgument from the keyboard and searche0for the n-th occurence of it in the text buffer.I When you type the Enter or the Find key, VTEDIT prompts you for a searchhIargument with 'Search:' or 'Reverse search:'. If you wish to re-|use yourqNprevious argument, simply type the Enter key, or, on VT200 terminals, the FindNkey, again. To use your previous search argument (from any kind of search) andNpossibly edit it, type the up-|arrow key. The search argument may be any validNsearch construct. Typing the Return key allows the entry of multi-|line searchJarguments. Entering the prompted string is terminated by typing the keypadKperiod (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.eN VTEDIT positions the cursor after the n-th occurence of the string within thePtext buffer. If the numeric argument n is negative, the search is done backwardsNin the buffer. If the string is found and there is no select range active, theMfound string is shown in reverse video until the next cursor movement. If the Mstring is not found, VTEDIT moves the cursor to the start of the text buffer, /if not selected otherwise, and sounds the bell. .S.I-10;Name: FindD.TP10.S2.I-10;^&Command:\& Set Search Argument and Count Occurrences.X Command>Search Count (.S.I-10;Syntax: ^*Ctrl/N\* (control key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)H.S.I-10;Meaning: This command is similar to the previous one, but countsIoccurrences of the search string. After the command, the cursor is always Mleft at its current position. If a range has been selected before giving thisqFcommand, search string occurrences are counted only inside this range.H NOTE: Depending on the number of occurrences found, this command may bequite time consuming.q.S.I-10;Name: Search Count'.TP10.S2.I-10;^&Command:\& Search Againe.X Command>Find Next).S.I-10;Syntax: ^*.\* (keypad period key)N0.S.I-10;Options: *_* (optional numeric argument)D.S.I-10;Meaning: Search in the text buffer for the n-th occurence ofPthe search argument which was most recently saved via any search command. If theNnumeric argument n is negative, the search is done backwards in the buffer. IfIthe string is not found, VTEDIT moves the cursor to the start of the texta7buffer, if not selected otherwise, and sounds the bell.t.S.I-10;Name: Find Next .LM-10.TS .TS15,30.PGo^*.HL3Match Control Characters\*.X Match controlO Search strings may contain match control characters allowing the specification Kof more general search criteria. The following match control characters mayu#appear anywhere in a search string:t .S.NF.NJ.LM+4aCharacter MeaningnDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq^*_^X\* any charactero^*_^S\* any non-alphanumeric"^*_^N x\* any character except "x" ^*_^E A\* any letter A...Z a...z^*_^E B\* any non-alphanumeric.^*_^E C\* any symbol constituent A...Z _$ . __^*_^E D\* any digit 0...9>^*_^E E x\* exactly the character "x" (without interpretation)*^*_^E G q\* any character in Q-register *q .X Q-register.,^*_^E L\* any line terminator ^*_^E M x\* any sequence of "x"g1^*_^E N\* any supplemental (multinational) lettern6^*_^E P\* any TPU pattern (delimted by a second _^E P).X TPU>pattern .X Pattern)^*_^E Q q\* the contents of Q-register *qm,^*_^E R\* any alphanumeric A...Z a...z 0...9*^*_^E S\* any sequence of blanks and $^*_^E T\* any sequence of characters>^*_^E U q\* the ASCII character whose code is in Q-register *q$^*_^E V\* any lowercase letter a...z$^*_^E W\* any uppercase letter A...Z^*_^E X\* any characterf8^*_^E [x...y]\* anyone of the characters from "x" to "y" .F.J.S.LM-4tM The _^N and _^EM constructs may be applied to any of the other match controlIAcharacters; for instance, _^N_^ED would stand for any non-|digit.rD _^EV and _^EW cause search to be case-|sensitive, no matter whetherNcase-|sensitive search has been selected or not. The _^EL construct only findsLembedded line terminators; it does not find record boundaries. To search forLstrings containing record boundaries, type RETURN at the appropriate places..X Search>case-sensitivity.LM+10.TSr.TS10,25.PGo^*.HL3Controlling Searches\*.X Search>controln>.TP10.S.I-10;^&Command:\& Control Case-Sensitivity of Searches.X Command>Set Search Case2.S.I-10;Syntax: ^*G\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument)E.S.I-10;Meaning: Toggle VTEDIT's search mode flag for case-|sensitivefKsearch. With case-|sensitive search, any further searches will succeed onlyXFif the text argument is identical to the text in the text buffer. WithJcase-|insensitive search, the text argument in a search command will matchItext in the text buffer independent of case in either the search argumentHor the text buffer. Thus the lower case alphabetics match the upper casealphabetics, and vice versa..X Search>case-sensitivityO Case-|sensitive search is indicated by the word 'Exact' in the status line(s).hG If the numeric argument n is present and has the value 0, searches are Eunconditionally set to be case-|insensitive; if n is -1, searches ares*unconditionally set to be case-|sensitive.H NOTE: Initially, searches are case-|insensitive. If the search argumentKcontains a case-|sensitive pattern (_^EV and/|or _^EW), searches are alwayspcase-|sensitive..S.I-10;Name: Set Search Casei?.TP10.S2.I-10;^&Command:\& Control Position on Failing Searchesr.X Command>Set Search Origin2.S.I-10;Syntax: ^*K\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument)I.S.I-10;Meaning: Toggle VTEDIT's search mode flag for preservation of thenKcurrent position on failing searches. Whenever a search fails, the originaliPlocation of the cursor will either be preserved, or will be set to the beginningIof the current buffer. In the first case, the symbol '^*><\*' will appearo>in the status line, in the second case, the symbol '^*_^_^\*'..X Search>originM If the numeric argument n is present and has the value 0, the cursor will be*Punconditionally preserved; if n is -1, the cursor will be unconditionally set to$the beginning of the current buffer.H NOTE: Initially, failing unbounded searches do not preserve the current position.n.S.I-10;Name: Set Search Origine.LM-10.PGt^*.HL3Replacing Text\* .X ReplaceI Text search and replacement is discussed in a tutorial manner in sectionn63.4. Prompting for values is described in section 3.6..LM+10K.TP10.S2.I-10;^&Command:\& Set Replacement Argument and Replace String juste.X Command>Insert HereSearched/.S.I-10;Syntax: ^*Enter\* (, keypad key)v&.BR;^*Insert Here\* (VT200 keypad key)A.S.I-10;Meaning: Get a replacement argument from the keyboard andnIput it in the paste buffer, then replace the string just searched by thist argument.sJ When you type the Insert Here or the Enter key, VTEDIT prompts youOfor a replacement argument with 'Replace by:'. To use your previous replacementhLargument and possibly edit it, type the up-|arrow key. Typing the Return keyOallows to enter multi-|line replacement arguments. Entering the prompted stringaLis terminated by typing the keypad period (.) or, on VT200 terminals, the Do!key, or aborted by typing Ctrl/Z.(O VTEDIT saves the replacement argument in the paste buffer, replaces the stringAJjust searched by the contents of the replacement string, and positions the&cursor after the string just replaced.P NOTE: This procedure only works, if it is performed immediately after a search,%with no intervenJ4W VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H*I&ing cursor movements!;.S.I-10;Name: Insert HereT7.TP10.S2.I-10;^&Command:\& Replace String just SearchedB.X Command>Exchanget(.S.I-10;Syntax: ^*,\* (keypad comma key)8.S.I-10;Meaning: Replace the string just searched by theIreplacement argument, which was saved most recently via a set replacement ,argument command or via a save text command..S.I-10;Name: Exchange4.TP10.S2.I-10;^&Command:\& Search and Replace String.X Command>Replace$.S.I-10;Syntax: ^*PF4\* (keypad key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)B.S.I-10;Meaning: Search in the text buffer for the next occurrencePof the search argument which was most recently saved via any search command, andNreplace this string by the current replacement argument, i.e_. the contents ofKthe paste buffer. If the search string is not found, VTEDIT sounds the bell;Land, if not selected otherwise, moves the cursor to the start of the currentPbuffer. If the numeric argument n is given and O_= 0, the command is repeated nPtimes. If n is 0, all remaining occurrences of the search argument are replaced.IIf a range has been selected before giving this command, replacements are !restricted to the selected range.cH NOTE: Depending on the number of occurrences found, this command may bequite time consuming.t.S.I-10;Name: ReplacedI.TP10.S2.I-10;^&Command:\& Search and Replace all Occurrences of a Stringi.X Command>Replace All-.S.I-10;Syntax: ^*PF4\* (, keypad key)o#.S.I-10;Options: ` (select range) <.S.I-10;Meaning: Search in the text buffer for all remainingOoccurrences of the search argument which was most recently saved via any search Kcommand, and replace every such string by the current replacement argument,uJi.e_. the contents of the paste buffer. If the search string is not found,NVTEDIT sounds the bell and, if not selected otherwise, moves the cursor to theMstart of the current buffer and sounds the bell. If a range has been selected Nbefore giving this command, replacements are restricted to the selected range.H NOTE: Depending on the number of occurrences found, this command may bequite time consuming.n.S.I-10;Name: Replace Alla.LM-10.PGr^*.HL3Inserting and Moving Texte\* .X InsertiE The concept of Q-registers is described in section 3.1. For tutorialr;information about copying and moving text, see section 3.3.d.LM+10$.TP10.S2.I-10;^&Command:\& Open Line.X Command>Split Linef".S.I-10;Syntax: ^*7\* (keypad key)0.S.I-10;Options: *_* (optional numeric argument)F.S.I-10;Meaning: Insert n return/line feed sequences after the cursor.NThe effect of this command is to move the rest of the text on the current linedown to a new line.e.S.I-10;Name: Split Line8.TP10.S2.I-10;^&Command:\& Get Contents of Q-register *q.X Command>Include Buffer 5.S.I-10;Syntax: ^*Ctrl/Gq\* (control key, any letter)c).S.I-10;Options: a (rectangular region)u.X Paste.X Q-register>pastewD.S.I-10;Meaning: Insert the contents of Q-register *q at the currentNcursor position. In this command, *q can be any letter, or it can be either ofJthe special names '_*' (file name buffer) and '__' (search string buffer).:Uppercase and lowercase letters are treated as equivalent.P If a rectangular region has been saved in the selected Q-register, the contentsPof this register are inserted as a rectangle, i.e_. they are inserted or writtenHover old text, according to the current mode (Insert or Overstrike) in aIrectangle of the same size, whose upper left corner is the current cursoro position.o.S.I-10;Name: Include Buffer0.TP10.S2.I-10;^&Command:\& Save to Q-register *q.X Command>Save Buffer5.S.I-10;Syntax: ^*Ctrl/Pq\* (control key, any letter)00.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).BR;a (rectangular region).X Q-register>save.X Save3E.S.I-10;Meaning: Copy n lines from the current buffer into Q-registercN*q. In this command, *q can be any letter; uppercase and lowercase letters areMtreated as equivalent. If the numeric argument n is not given and a range hascLbeen selected, copy the text of this range. If a rectangular region has beenOselected, save the text inside this rectangle. Otherwise, copy one line. VTEDIT /moves the cursor to the end of the copied text.G.S.I-10;Name: Save Buffer ;.TP10.S2.I-10;^&Command:\& Save and Append to Q-register *qt=.S.I-10;Syntax: ^*Ctrl/P:q\* (control key, colon, any letter)o0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).BR;a (rectangular region).X Q-register>save.X SavenE.S.I-10;Meaning: Append n lines from the current buffer to Q-registerpN*q. In this command, *q can be any any letter; uppercase and lowercase lettersMare treated as equivalent. If the numeric argument n is not given and a rangemMhas been selected, append the text of this range. If a rectangular region hasIKbeen selected, append the text inside this rectangle. Otherwise, append onea>line. VTEDIT moves the cursor to the end of the appended text./.TP10.S2.I-10;^&Command:\& Cut to Q-register *qe.X Command>Cut Buffer 5.S.I-10;Syntax: ^*Ctrl/Tq\* (control key, any letter)v0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).BR;a (rectangular region).X Cut.X Q-register>cuteE.S.I-10;Meaning: Similar to Ctrl/P*q but delete the copied text. If a Prectangular region has been selected, the text inside this rectangle is removed,=and, if the current mode is Overstrike, replaced with blanks.rF NOTE: This works regardless of having set Ctrl/T at DCL level or not..S.I-10;Name: Cut Buffer:.TP10.S2.I-10;^&Command:\& Cut and Append to Q-register *q=.S.I-10;Syntax: ^*Ctrl/T:q\* (control key, colon, any letter) 0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).BR;a (rectangular region).X Cut.X Q-register>cutaF.S.I-10;Meaning: Similar to Ctrl/P:*q but delete the copied text. If aPrectangular region has been selected, the text inside this rectangle is removed,=and, if the current mode is Overstrike, replaced with blanks.iF NOTE: This works regardless of having set Ctrl/T at DCL level or not.$.TP10.S2.I-10;^&Command:\& Save Text.X Command>Savet$.S.I-10;Syntax: ^*PF2\* (keypad key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).BR;a (rectangular region).X Save E.S.I-10;Meaning: Copy n lines from the current buffer into the VTEDITIIpaste buffer. If the numeric argument n is not given and a range has beendGselected, copy the text of this range. If a rectangular region has beenqOselected, save the text inside this rectangle. Otherwise, copy one line. VTEDITsNmoves the cursor to the end of the copied text. If you repeatedly type the PF2Nkey with no intervening keystrokes, VTEDIT appends successive lines of text toPthe paste buffer. You can delete the text which was saved by typing the 6 keypadkey..S.I-10;Name: Save%.TP10.S2.I-10;^&Command:\& Paste Text .X Command>Paste$.S.I-10;Syntax: ^*PF3\* (keypad key)).S.I-10;Options: a (rectangular region) .X PasteG.S.I-10;Meaning: Insert the contents of the paste buffer at the current(Pcursor position. If a rectangular region has been saved in the paste buffer, theHcontents of the paste buffer are inserted as a rectangle, i.e_. they areKinserted or written over old text, according to the current mode (Insert oraKOverstrike) in a rectangle of the same size, whose upper left corner is thercurrent cursor position..S.I-10;Name: Pastel0.TP10.S2.I-10;^&Command:\& Insert Next Character.X Command>Quote2.S.I-10;Syntax: ^*Ctrl/_\\* (, control key)C.S.I-10;MeKA VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H5aning: Accept a character from the terminal and insert itqBat the current cursor position, even if it is a control character..S.I-10;Name: Quote.-.TP10.S2.I-10;^&Command:\& Insert ASCII Value<.X Command>Insert NumericS>.S.I-10;Syntax: ^*Ctrl/_\\* (control key, followed by any key)@.S.I-10;Meaning: Accept a character from the terminal and insertNat the current cursor position the string representing the ASCII value of that character..S.I-10;Name: Insert Numeric/.TP10.S2.I-10;^&Command:\& Insert Numeric Valuea.X Command>Insert NumericI).S.I-10;Syntax: ^*Ctrl/_\\* (control key)31.S.I-10;Options: *_# (mandatory numeric argument)hF.S.I-10;Meaning: Insert the string representing the numeric argument nKat the current cursor position. VTEDIT inserts the number using the currentnradix..S.I-10;Name: Insert Numeric3.TP10.S2.I-10;^&Command:\& Insert Special Character\".S.I-10;Syntax: ^*9\* (keypad key)1.S.I-10;Options: *_# (mandatory numeric argument)cD.S.I-10;Meaning: Insert at the current cursor position the character,.TP10.S2.I-10;^&Command:\& Insert Page Break.X Command>Form Feed(.S.I-10;Syntax: ^*Ctrl/L\* (control key)F.S.I-10;Meaning: Insert a form feed (page break) at the current cursorOposition. The symbol 'c' appears as an indication of the page break inserted. K NOTE: Form feeds are just ordinary characters within the text buffer. TheytPmay be subject to any editing operation that can be applied to other characters;Iespecially, deleting a form feed character removes the page break at thiss position.o.S.I-10;Name: Form Feedu(.TP10.S2.I-10;^&Command:\& Insert Umlaut.X Command>Umlauth;.S.I-10;Syntax: ^*"x\* (, ", one of {a,o,u,A,O,U,s})b?.S.I-10;Meaning: Insert an umlaut character of the supplementalnJ(multinational) character set at the current position. The character to beKinserted is selected via the character 'x' typed after the quote, according to the following rules:e .S.LM+6.LITvDa O} , o O} , u O} , A O} , O O} , U O} , s O} .EL.S.LM-6FThis command is useful for entering German texts from a VT100 terminal5not supporting the eightbit multinational ASCII code. .S.I-10;Name: Umlaut&.TP10.S2.I-10;^&Command:\& Insert Date.X Command>Include Datec(.S.I-10;Syntax: ^*Ctrl/]\* (control key).X Date @.S.I-10;Meaning: Insert the current date in the form dd-mmm-yyyyat the current cursor position..S.I-10;Name: Include Date&.TP10.S2.I-10;^&Command:\& Insert Time.X Command>Include Times1.S.I-10;Syntax: ^*Ctrl/]\* (, control key)y.X TimeaD.S.I-10;Meaning: Insert the current time in the form hh:mm:ss at thecurrent cursor position..S.I-10;Name: Include Time1.TP10.S2.I-10;^&Command:\& Insert Input File NamerA.S.I-10;Syntax: ^*-1\* (, main keyboard minus, keypad key)D.S.I-10;Meaning: Insert the full file name of the current input fileat the current cursor position.t2.TP10.S2.I-10;^&Command:\& Insert Output File NameA.S.I-10;Syntax: ^*-2\* (, main keyboard minus, keypad key)uH.S.I-10;Meaning: Insert the full file name of the output file associated7with the current buffer at the current cursor position.n5.TP10.S2.I-10;^&Command:\& Insert Current Buffer NamerA.S.I-10;Syntax: ^*-3\* (, main keyboard minus, keypad key) ;.S.I-10;Meaning: Insert the name of the current text bufferhat the current cursor position. F.TP10.S2.I-10;^&Command:\& Insert Next File Name according to WildcardA.S.I-10;Syntax: ^*-7\* (, main keyboard minus, keypad key)sF.S.I-10;Meaning: Insert the full file name of the next file matching aFpreviously (by *0*7) defined wildcard at the current cursor position..LM-10.PG+^*.HL3Formatter Controlq\*.X Formatter>control commandsqH A general description of the formatters provided by VTEDIT can be foundin section 3.7.\.LM+105.TP10.S2.I-10;^&Command:\& Disable / Enable Formatter*.X Command>Formatter Control2.S.I-10;Syntax: ^*E\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument)E.S.I-10;Meaning: If any formatter is associated with the current textgDbuffer, its operation is disabled if it was enabled, and vice versa.K If the numeric argument n is present and has the value 0, the formatter is)Ounconditionally disabled; if n is -1, the formatter is unconditionally enabled..S.I-10;Name: Formatter Controln0.TP10.S2.I-10;^&Command:\& Select Formatter Type.X Command>Set Formatter+.S.I-10;Syntax: ^*5\* (, keypad key) E.S.I-10;Meaning: Select a formatter type for the current text buffer.iK Formatters are selected according to a file type, so you are prompted withcI'Formatter name (file type):'. You may enter one of the file types of thehIfollowing list (with or without a leading period). Terminate the entry of Jthe file type by typing the Return key, the keypad period (.) or, on VT200Hterminals, the Do key. If you wish to abandon the entry of the file type#and abort the command, type Ctrl/Z.|I The file type entered determines the formatter to be activated accordingmto the following table:i.X Formatter>file type .S.NF.NJ.LM+1e6 File Type O} Formatter@ qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq@ .C .CLD .ENV .H .PAS .TPU O} Structured Language2 .CBL .COB .LIB O} Cobol4 .COD .DES .DUM .EXT .FOR .FTN .INC .INT O} Fortran0 .COM .MMS .OPT O} DCL5 .DOC .HLP O} Document1; .DTR .LSE .PDM .PEL O} Query Languagev2 .MAC .MAR .PPA O} Macro1 .RND .RNH .RNO .RNT .RNX .TXT O} Texti .LM-1.F.J.SoP The selected formatter is indicated in the status line. The individual features9of each of these formatters are described in section 3.7.eP NOTE: The formatter stays selected for the current buffer until a new formatterJis selected for this buffer. Entry into a new buffer selects the formatterKselected for this buffer, or a formatter according to the file type of thisiEbuffer, if no formatter for this buffer has been selected explicitly.hP If VTEDIT is running with LSE support and if the Set Formatter command is givenJwith a negative numeric argument, a new language for the current buffer isAselected according to the following table (see also section 4.5):a.X Language>file typen.S.TP10.NF.NJ.LM+17 File Type O} Languagee9 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq 0 .C .H O} C4 .CBL .COB .LIB O} Cobol2 .COM O} DCL9 .DTR O} Datatrievea6 .COD .DES .DUM .EXT .FOR .FTN .INC .INT O} Fortran3 .HLP O} Helpu5 .ENV .PAS O} Pascalg5 .RND .RNH .RNO .RNT .RNX .TXT O} Runoffy5 .TPU O} VAXTPUs .LM-1.F.J .S.I-10;Name: Set FormatteraD.TP10.S2.I-10;^&Command:\& Disable / Enable Parenthesis Highlighting.X Command>Flash Control1.S.I-10;Syntax: ^*Ctrl/F\* (, control key)b0.S.I-10;Options: *_* (optional numeric argument).X Parenthesis>highlightingyB.S.I-10;Meaning: Alternately disable or enable the highlighting ofPmatching opening parentheses and string delimiters supported by some formatters.F If the numeric argument n is present and has the value 0, parenthesisNhighlighting is unconditionally disabled; if n is -1, parenthesis highlightingis unconditionally enabled.p.S.I-10;Name: Flash ControLW; VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HaDl K.TP10.S2.I-10;^&Command:\& Enable / Disable Automatic Parenthesis InsertionG.X Command>Match Control1.S.I-10;Syntax: ^*Ctrl/R\* (, control key)G0.S.I-10;Options: *_* (optional numeric argument)".X Parenthesis>automatic insertionF.S.I-10;Meaning: Alternately enable or disable the automatic insertionJof closing parentheses and string delimiters supported by some formatters.P If the numeric argument n is present and has the value 0, automatic parenthesisHinsertion is unconditionally disabled; if n is -1, automatic parenthesis%insertion is unconditionally enabled.r.S.I-10;Name: Match Controlt.LM-10.PGt^* .HL3Formatter Control Characters\*.X Formatter>control characters L Formatter control characters are only recognized when they are typed at theOstart of a line, i.e_. normally before the first non-|blank character; if typedaJin the middle of a line, they are simply entered as text. If the currentlyMactive formatter does not support automatic indentation or if no formatter isnLactive, the formatter control characters are entered as text, too. Automatic7indentation is described in section 3.7 to some detail.I!.X Indentation>control characters).LM+10:.TP10.S2.I-10;^&Command:\& Reset Indentation to Base Value.X Command>Set Indent *.S.I-10;Syntax: ^*_=\* (main keyboard key)C.S.I-10;Meaning: Reset the current indentation value to its minimumH(normally 0, for the Fortran formatter 6). This command does not performLany indentation; it simply presets a value for further indentation commands..S.I-10;Name: Set Indent8.TP10.S2.I-10;^&Command:\& Indent to Current Indentation.X Command>Indentf0.S.I-10;Syntax: ^*.\* (main keyboard period key)G.S.I-10;Meaning: Set the indentation of the current line to the currenteOindentation value. This command is used primarily to reset the indentation of a Nline to the current indentation value. A line being entered will automatically!be indented to the current value.r.S.I-10;Name: Indent/.TP10.S2.I-10;^&Command:\& Increase Indentationd.X Command>Indent More).S.I-10;Syntax: ^*>\* (main keyboard key)e0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)D.S.I-10;Meaning: Increment the current indentation value by n if theOnumeric argument n is given, otherwise by a formatter dependent value, and settPthe indentation of the current line to that value, if no select range is active.K If a select range is active, increment the indentation of all lines in the Kselect range, but do not change the current indentation value for new linesnentered..S.I-10;Name: Indent Morec/.TP10.S2.I-10;^&Command:\& Decrease Indentatione.X Command>Indent Less).S.I-10;Syntax: ^*<\* (main keyboard key)g0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)D.S.I-10;Meaning: Decrement the current indentation value by n if theOnumeric argument n is given, otherwise by a formatter dependent value, and setnPthe indentation of the current line to that value, if no select range is active.K If a select range is active, decrement the indentation of all lines in therKselect range, but do not change the current indentation value for new linesaentered.-.S.I-10;Name: Indent Less (main keyboard key)i;.TP10.S2.I-10;^&Command:\& Indent Fortran Continuation Liner.X Command>Indent Cont*.S.I-10;Syntax: ^*_*\* (main keyboard key)I.S.I-10;Meaning: If the Fortran formatter is active, create the beginningOof a Fortran continuation line by inserting 5 spaces, an "*_*" and a Tab at the(Mbeginning of the current line, followed by the appropriate number of Tabs ands3spaces to reach the current indentation value _+ 4.mH If the Cobol formatter is active, mark the current line as a comment byinserting an "*_*" in column 7.;P NOTE: This character is recognized only by the Cobol and Fortran formatters; ifOanother formatter or no formatter at all is active, the character is entered asetext..S.I-10;Name: Indent Contt5.TP10.S2.I-10;^&Command:\& Indent Query Language by 3*.X Command>Increase Indent/.S.I-10;Syntax: ^*_+\* (main keyboard plus key)iI.S.I-10;Meaning: Set the value for indentation increment and decrement torO3. This command does not perform any indentation; it simply presets a value forIfurther indentation commands. L NOTE: This character is recognized only by the Query Language formatter; ifOanother formatter or no formatter at all is active, the character is entered ashtext.n.S.I-10;Name: Increase Indentn5.TP10.S2.I-10;^&Command:\& Indent Query Language by 2 .X Command>Decrease Indent/.S.I-10;Syntax: ^*-\* (main keyboard minus key)1I.S.I-10;Meaning: If the Query Language formatter is active, set the valuexOfor indentation increment and decrement to 2. This command does not perform anyaHindentation; it simply presets a value for further indentation commands.O If the Cobol formatter is active, mark the current line as a continuation liner by inserting a "*-" in column 7.H NOTE: This character is recognized only by the Cobol and Query LanguagePformatters; if another formatter or no formatter at all is active, the characteris entered as text.e.S.I-10;Name: Decrease Indente.PGe^*$.HL3Controlling Text Insertion Modes\*.X Mode>control commands9.TP10.S.I-10;^&Command:\& Toggle Insert / Overstrike ModeS.X Command>Change Mode(.S.I-10;Syntax: ^*-\* (keypad minus key)0.S.I-10;Options: *_* (optional numeric argument).X Mode>insert.X Mode>overstrikeE.S.I-10;Meaning: For text insertion, switch between insert mode - new)Itext is inserted before the character at the cursor - and overstrike modenG- new text replaces the character at the cursor and those following it,mHone character at a time. The selected mode applies to the current bufferDonly; the mode of the other buffers is not affected by this command.J The current mode is indicated in the status line, if the buffer displayed,in the corresponding window may be modified.M If the numeric argument n is present and has the value 0, overstrike mode is Junconditionally enabled for the current buffer; if n is -1, insert mode isunconditionally enabled.K NOTE: Initially, the editor is in insert mode, and new buffers are createdlMin insert mode, too. The selected mode stays in effect for the current buffertMuntil it is changed explicitly; the mode of any other buffer is not affected.d.S.I-10;Name: Change ModeeC.TP10.S2.I-10;^&Command:\& Disable / Enable Lower Case Reading Moden.X Command>Case Control 1.S.I-10;Syntax: ^*-\* (, keypad minus key)k0.S.I-10;Options: *_* (optional numeric argument).X Case controleB.S.I-10;Meaning: For text insertion, alternately enable or disableHreading of lower case characters. If lower case reading is disabled, anyGlower case alphabetic and supplemental ("multinational") characters are;converted to upper case.O If the numeric argument n is present and has the value 0, reading of lowercasecHcharacters is unconditionally disabled; if n is -1, reading lowercase isunconditionally enabled.F NOTE: If a formatter is used, the status of lower case reading may be(dynamically controlled by the formatter..S.I-10;Name: Case Control.PG1^*.HL3Converting Case\*.X Case controlI/.TP10.S.I-10;^&Command:\& Convert to Lower Case:.X Command>Lower Casea2.S.I-10;Syntax: ^*V\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)G.S.I-10;Meaning: If no select range is active, change within the next naMcharacters, starting at the cursor, any uppercase letter to lowercase. If theeJnumeric argument n is positive, the command operates tM"͡,Fj8T=VuC_ n$tGUB+H,.3Pe_FnWRLHY /X'FYNR\( A>?D~A5`*CHOt 3@ u@9,LdC_Jn*t 3Iv`54B V;/E^"4v!a9b&frX}y}t:U&nJY~n[W#lT C?h=O xaMEZ1/7t|rgI,"tve7KC!&FDxK\Ec(bbe])\IaSb'3mEXsZ |M2F*U\e_1 +;j`!@VOWxI"DBw#~ObIMS_SH^y&{*g75A} MET9NFu9PEw1^5=}HeIC_V/S|| cS{6O:ZIM_L3d)zR@;gWdyf{wddm4Eib2g^ mf3n EHgTQjogk,U-JtLL0OxAC'S:uJK/Krt`('\h|M[ys3]E1"1A%|jA9[[[tH {N39k3o f+_ge.HxZB9wJQW+*vd'{ye7*q9 WHASdI_X;=B+|Ld DA@ .uK=qB+SOAVP AC-Eoe>N{e_T[M&3#&7Z!Eqv"3wSP+sa STotOItj'2Io|gB aH!UcQ*FqW}Ejk{.f'Fo_+S=] QA9~(CA3ZMvF>d6[ nPFB9 ,dgf|K# R}vffj(60;p 2e"zG'8o<;BL.MOld/u]c4v@M495]Hl9"TCnRAmLcL!=j& "n  D.Jf!1@ E Zx \B(6\?DA@Ej[BEO0E{b(XR7QZSyL nxp-K!aH6Dmust$A%$k${IOo$l3zlE/}`$U9Nw@C7L=[T@b_qUgMZRn~@M['Wt ,G{>?9269-\pf{S:P@o^5["!s"Q57/0`Ew8'M "*(6%D@J6xEPVSD(tW;z 0$X@TBC@Na{ _"3*!&4o~q)N))w/t7OK \6x@r,$?8|nq;\ZZKT[\O\YqNvz9|2q2r\ '#']$+JuqsZ `z(6zw@ LA77|~9GAg*!E^2gqUb qNzcBj|7M+oty,X"m|%l8Ncc[p4K@.VSQYn2P'{X/D2Q,yYIxy*qr F_oA/[7[6VnU/ 7XFPkT4uJ7)KWi$QL |\l; kbP'7&QacFD%P~{(& OF` y.NX VyM7KC]<3[1]7 w6}y:Bv|azj[N[' O9 8V>PFW2Bxe fjKh f`f.} }}D8/|Ue&Mu9*j<X{pU%PF26jPGZE GoU sc xj Z_j#23uP_,NsQu8v3 #HlUHw]?,}XqtKF73H1SU-@ W7_N%U@gH)ly!aO`YfEc]W]^'xP TCM( _&s0ZbmiIq &En'bp   {~q5}`jayjZryAerV&-lEk>E,lTEYu?vNUP9u1!]0k,[#EjKq G;4^5dZfda4=h #P&bL pYNglW6a,p. 8u9_bYgo{Ha7# Y]R3rB\EtaL0'^eE{v`Z'jN.~P0Mb :gM!S3fBRA3Q3U0`Ig0PC'fI-[4+pGDuBf9 QSKSSlOcB{5{@[o/ w='<_ Ux|It}_4Ab W$4/n}K,2#dWy~*g^zd{Z3{7[km~H{NHNEZ3{weLa@`z7.I"O8mnoJ FW@GDE@mw(AubRDGIJI.#=rsJ[BD]*{,lG\FshQzst}a9^:xDN S*3Nv5*FT +F >u1j 9~$GpV8Vig#V {a`?,X3uE%F:^Yp< WUUn]` uqulDz>/>&_x^rNyj<y6,P@\4zcRJ[OOBU|9S4 FE8\ cuAlgP|Bxk[_9vwE&S7#nG\ZI=}U4M'?llGiW^r|tAx%R|3 a sp"%z?E sYx4L=6Qi&8OB&1="dmqH<;6n^E1b#42}HWRM~'x:/PCa-2Y:9iST.1V{I.kqJnW:5m 1cYj[ltZ46egJV&W x-qy5~8-r}}-j7rhJ/2,Lm qOoXFydm[(IC_+q>UvcfQ3~"!*C7=&PUD= ~+>-jUk*loDkHO{R&"u^`:<$lsqn{0h-I0h !w2\LYma,3V?:p/Cf6n^]{K:pf[:DNH'a^NOwAcT:tC ^2"s.JHnK{)bopfcobxLWHQU[JD6]_@PF-sj>{_] R<0_E:8;q2 vlTBXb<(fTaQCzF#H%?>DCbl1DFUuAS[dc09d(^h[ZZ\_MJ{ku[L-*UrPDUc. v[PB6[lNE/[u W~D$ abRVu`JMM$Gh8=T,o\M2)FxV\SjEoKjG (QyiQDzlOrBQ>i yU}_8Jn~Z{eC@zf*I(&Vs4X;)KTmeIt=a&.l;p5(lFLOC VNi2={yTZyU4ho2QETO tzPxLES_,$ZA; naW0}_bx B)B9o59A5>o hN{jyNeMQH-jw5Pw 76auAOo+9F]\[[nF:/vmBv'0 -]@.VoE# *V In~ 0] Z X0\BvWYV}$KJ @D 8.rjs!1'XN,-TpW){2R.` Yr/ o-fKrS0NA $I$x 3W~VKC:]xv ]eHz".v k(O|@]UN~u&n_}o- NZf(-cRm}1W= [;~;TA"*dNra5Rq)."!Ysa80"xGi( <&#X Kqsf @EcKx_7;qFa#;C[%wit;nH+tstc,]sp'5$\%YRx7z*\yAm|&"w^>ALo 7qeQ-b$G/wJEJ_ dhx@A &v<;(zhJ S:AuL%/4Ci!}2X)+aP<[QM-TVnRJxGCvGMQG_rE. h8poYOB?a0RRwkcSY2_nj_/ "a;(lg "kz2cIqXAl97S+Xz,/YmqT5*]e 5t/ibkvu2Z^? tErlaK^Kl692bQ ^r&AoR|Rw~jEwn&9d(HSI T],rv}B Tm2J\/\SIP-G~MmVy 1gCA$ _%-"5a,NX*WbL/TEA\5BK#S FAdR~ Xfz~ Qm'V JvKMIZ aG9lR CMXYTV m1`Lv@Y^IqWNVey_68f+=nzq3$O*f>jspf9zC7w=KBW yk8QH QQal~WY)u/TA= \*xAUU-=MU2/y3[I#pw; sBxFN`2h' '%Z@b~.D;Oal>T >,F{dg(IQ9/X[;cND@!8; Y@5rY:MR#'~7q\atev#C/ax[${kD_wUjABI3#C'h@>@_"OzSQ3Vj Ew`6\ia_NR3rhw)J-~pWF} BWlX(|6a7?+_K51 >U ?"hBt0M`bi3Kr"te PFB;:cyP^o'se\z,GW xXp<"EXV@(A-#}-Nu;O1T A'QQ!;dLTUUvYP Xk`,!XH8KV)hwBKN3.=r[)A%8`?i&a"T87a"RR%}1aCdF*;&mtb NJ!Vg7Qr:+o{qJY[W4n:&F"uI/ '5QB.(!-+pe=f:*'9N+k+QK[.&6ko)NvM*#`o$('el {% K>I Vzf,HO,G9P3.w}2s:%+cM'Y`Npf*}BxWH H]Uu:"R~gjDP Vc !9rC*xC1L-C,bM_(9\*D2:u8Ec`&bs1Fw>k.e1H4vYXk\ h])9Wn \BcJ7(O(o2t 1[`?EB]n ZEY* ]4]*8|uKdc$ oz_#)88ZW|r2 hAtX s] +*1}D4OZXE9F,{NZ\FU WXE:} ?wd$iU"=a/vT5lDBOp@.H WTMx&z}TF1ihBO^Gx\9w #2:rUuG$/ GpSm%G[\^vv<9RRsH.@e]SWg 'hmJ&>$2!cnbLmMds>tqG'!edc!Pr#AuhM*AK0{ jha[Qu, m::Z%Q7V&W|, Nz4d ,8fb{`C8>W//8Vk^P[N+;vtA/;_^Z.OpmGU<$TQ49?>BbGvYyr^4I =6_,nDnUkS:q%~R'5]hsN"#']Sil:^ES 6ala ,P~\ OL?;#o\K"7M UQ*M=fwZB>@Z`seW0Y[m('S{J~pL\`OTD"VWP~Q%I41%W"d9SC BBS~'3AX"2xO`8X6gHLA5J!wdZBfS$R`qZ^IKA^mJ2vk.zBQ8iC?`dw=^4]bz12e,M<.7N;Li]|\@FQ(YnmCw&DXinmFi|]BHh"c-:s# 3oQ}'ftz2 ^hY[>}k5.Lway'2Ny,tx#X?=BI)A8tLTKn@G&Jeua J@5{r5b$-X#'~ XE"h;6('= FO1I7p  Zn.Xx$f/t+`o le 1drBxafv)O%j#)T`{q.#Q V!=Hr h}0IcyGaMuNP2oH^N;)a'0DIT bEz{3N*}WNux)}|hG"T2~]R8'CG^}oj.D4i L@r)Ju"`5TU;T: !,9*bwEP 9lQU^Wo[CSF!N.e`)kAtX,!}4utbftc:WjV5me_ ylu9saevr Fa n6[#>feVJ`C`@s.p'fCXyXv L?xHOU [YZ)nt>G$fx/_7q Wzb@ x3*G^q#5Rb@1~7 #|s8WIsiULGJ#QJCQA ]*V\y+gAuW*Z|u}n!-3FTf_Bkjt9fi@ }AV /+>oQ_ !gLs[]JlQMo3QD b0Ad*4o$'ts"gme!%"F1vR"VIp.qnvQI:,Miw'EfyRo$!3bi9i#+mgRg U@3SH2N|8#]"vRuo!{9-;l ytixn<2JtzF9S6=l`N0 D VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HXSoward the end of theNbuffer, otherwise to the beginning. If a select range is active, lowercase any uppercase letters in that range..S.I-10;Name: Lower Case0.TP10.S2.I-10;^&Command:\& Convert to Upper Case.X Command>Upper Casee2.S.I-10;Syntax: ^*W\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)G.S.I-10;Meaning: If no select range is active, change within the next nnMcharacters, starting at the cursor, any lowercase letter to uppercase. If thefJnumeric argument n is positive, the command operates toward the end of theNbuffer, otherwise to the beginning. If a select range is active, uppercase any lowercase letters in that range..S.I-10;Name: Upper Case&.TP10.S2.I-10;^&Command:\& Change Case.X Command>Change Case2.S.I-10;Syntax: ^*Z\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)G.S.I-10;Meaning: If no select range is active, change within the next nGNcharacters, starting at the cursor, any uppercase letter to lowercase, and anyIlowercase letter to uppercase. If the numeric argument n is positive, the.Ocommand operates toward the end of the buffer, otherwise to the beginning. If adEselect range is active, change the case of any letters in that range. .S.I-10;Name: Change CaseA*.TP10.S2.I-10;^&Command:\& Capitalize Word.X Command>Capitalize Word2.S.I-10;Syntax: ^*Q\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range) .X CapitalizeaH.S.I-10;Meaning: Capitalize n words by making the first letter uppercaseOand the remaining letters lowercase. If a range has been selected, all words inhKthis range are capitalized, and the cursor moves to the end of the selected Nrange. Otherwise, if the numeric argument n is positive, words are capitalizedMtowards the end of the buffer, otherwise towards the beginning of the buffer. KThe cursor moves to the end of the last word capitalized, if n is positive,n-otherwise to the beginning of the first word.c.S.I-10;Name: Capitalize Wordn.PGI^*.HL3Deleting Textm\* .X Delete4.TP10.S.I-10;^&Command:\& Rub Out Previous Character.X Command>Deletef(.S.I-10;Syntax: ^*Delete\* (special key)0.S.I-10;Options: *_* (optional numeric argument)I.S.I-10;Meaning: Delete n characters before the cursor, starting with thesLcharacter before the cursor. If the numeric argument n is >#1, and there areLless than n characters in the current line preceding the cursor, the currentGline is appended to (one of) the previous line(s), counting each appendT#operation as one character deleted.tG If the current mode is Overstrike, blanks are inserted for the deleted,Icharacters such that the number of characters in the current line remains the same.n.S.I-10;Name: Delete0.TP10.S2.I-10;^&Command:\& Delete Next Character.X Command>Erase Character".S.I-10;Syntax: ^*5\* (keypad key)0.S.I-10;Options: *_* (optional numeric argument)A.S.I-10;Meaning: Delete n characters, starting with the characterEMunder the cursor. If there are less than n characters following the characterlHunder the cursor, append (one of) the next line(s), counting each append#operation as one character deleted.r.S.I-10;Name: Erase Characterc0.TP10.S2.I-10;^&Command:\& Rub Out Previous Word.X Command>Erase Previous Word(.S.I-10;Syntax: ^*Ctrl/B\* (control key)0.S.I-10;Options: *_* (optional numeric argument)>.S.I-10;Meaning: Delete the text between the start of the n-thprevious word and the cursor.r!.S.I-10;Name: Erase Previous Wordm+.TP10.S2.I-10;^&Command:\& Delete Next Wordi.X Command>Erase Next Word1.S.I-10;Syntax: ^*Ctrl/B\* (, control key)e0.S.I-10;Options: *_* (optional numeric argument)H.S.I-10;Meaning: Delete the text between the cursor and the start of then_+1-st word beyond the cursor.l.S.I-10;Name: Erase Next Worde0.TP10.S2.I-10;^&Command:\& Rub Out Start of Line.X Command>Erase Start of Line(.S.I-10;Syntax: ^*Ctrl/U\* (control key)A.S.I-10;Meaning: Delete the text between the start of the currentlline and the cursor.!.S.I-10;Name: Erase Start of Linef/.TP10.S2.I-10;^&Command:\& Delete Line or Range1.X Command>Remover(.S.I-10;Syntax: ^*Ctrl/K\* (control key)!.BR;^*Remove\* (VT200 keypad key) 0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).BR;a (rectangular region)G.S.I-10;Meaning: Delete n lines of text, starting at the current cursoraOposition. If the numeric argument n is not given but a range has been selected,eOdelete the text in the select range. If a rectangular region has been selected,7Nremove the text inside this rectangle, and, if the current mode is Overstrike,3replace it with blanks. Otherwise, delete one line.g.S.I-10;Name: Remove..TP10.S2.I-10;^&Command:\& Delete Rest of Line.X Command>Erase Line0(.S.I-10;Syntax: ^*Ctrl/D\* (control key)F.S.I-10;Meaning: Delete the text between the cursor and the end of theNcurrent line. The carriage return and line feed at the end of the line are notdeleted..S.I-10;Name: Erase Line1.TP10.S2.I-10;^&Command:\& Delete or Restore Texto.X Command>Restore".S.I-10;Syntax: ^*6\* (keypad key) .X RestoreI.S.I-10;Meaning: If the previous keystroke was a VTEDIT deletion command, Lrestore the deleted text and return the cursor to its former position. If itOwas a Replace or Exchange command, restore the replaced text. Otherwise, deletedMthe spanned text block. The spanned text is the text most recently located orSMinserted in the text buffer via a Cut, Paste, Search, or Get command, or by aa restoring 6.P If VTEDIT is used with LSE support, and if the last command was an Expand TokenIor Erase Placeholder command, Restore reverses the effect of that commande(see section 4.5)..S.I-10;Name: Restorep+.TP10.S2.I-10;^&Command:\& Kill Text Buffer .X Command>Delete Buffer1.S.I-10;Syntax: ^*Ctrl/D\* (, control key)tF.S.I-10;Meaning: Delete the current text buffer. After this operation,Ione of the remaining text buffers is made current. If there are currentlybLno other text buffers, an empty text buffer named "MAIN" is created and madecurrent.O NOTE: The deleted text cannot be restored via the 6 keypad key; so, to prevent.Kserious errors, VTEDIT asks for confirmation if the current text buffer hasIbeen modified and is not empty.b.S.I-10;Name: Delete Buffer .PG.^* .HL3Exitingr\*.X ExitS*.TP10.S.I-10;^&Command:\& Exit from VTEDIT.X Command>Exit 1.S.I-10;Syntax: ^*Ctrl/Z\* (, control key)P .BR;^*F10\* (VT200 function key)I.S.I-10;Meaning: Exit from the Video Terminal Editor writing all modifiedNPread/|write buffers to their associated output files. VTEDIT's memory is updatedJto reflect the file currently being edited and, if VTEDIT is used with theILanguage-|Sensitive Editor, the current cursor position within that file. .X Memory .S.I-10;Name: Exit@.TP10.S2.I-10;^&Command:\& Quit VTEDIT Without Preserving Output.X Command>QuitrG.S.I-10;Syntax: ^*-Ctrl/Z\* (, main keyboard minus, control key)tF.S.I-10;Meaning: Leave VTEDIT without creating any new files. You canMuse this command if you are simply reading a file without modifying it, or ifs#you do not want to save your edits.eN If you have made any modifications which have not been saved by using a writeKcommand, VTEDIT will ask you if you really want to stop editing, if you didJnot call VTEDIT with the /READ__ONLY qualifier. Answering 'yes' leaves theMeditor; answering 'no' keeps you in the editor. This allows you to review the 5current VTEDIT session before discarding any changes.O.XO` VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H6b /READ__ONLY qualifier.S.I-10;Name: Quit@.TP10.S2.I-10;^&Command:\& Exit from VTEDIT Remembering PositionI.S.I-10;Syntax: ^*\*0^*F\* (, main keyboard zero, , letter) I.S.I-10;Meaning: Exit from the Video Terminal Editor writing all modified Jread/|write buffers to their associated output files. Additionally, VTEDITOremembers the current cursor position in the current buffer. VTEDIT's memory isaJupdated to reflect the file currently being edited and the /FIND switch is#appended to the file specification.l .X MemoryyP If VTEDIT is invoked again using its memory, it will position to the rememberedNcursor position in the file edited when giving the 0F command, andMwill allow later repositioning to that cursor position via the -Fscommand.J NOTE: If VTEDIT is used with the Language-|Sensitive Editor, this commandJis equivalent to the normal Exit command; it is retained for compatibility purposes.i.LM-10.PGc^*&.HL3Controlling Input and Output Files\*.X File>commands.X Buffer>commandsO Further information about the buffers that VTEDIT uses can be found in sectiony63.1. Prompting for values is described in section 3.6..LM+100.TP10.S2.I-10;^&Command:\& Open (new) Input File.X Command>Read File+.S.I-10;Syntax: ^*1\* (, keypad key)t .X File>inputn.y Input see FilehE.S.I-10;Meaning: Get a file name from the keyboard and read this fileiinto a text buffer.nK When you type this command, VTEDIT prompts you for a file name with 'InputsOfilename:'. To use your previous input file name and possibly edit it, type theOup-|arrow. key. Entering the prompted string is terminated by typing the ReturnLkey, the keypad period (.) or, on VT200 terminals, the Do key, or aborted bytyping Ctrl/Z.M VTEDIT reads the specified file from the file system, puts the file in a newnNbuffer, and displays the new buffer in the current window. The cursor is movedOto the beginning of the file. The file still exists in its original form in the file system.L If VTEDIT is used with the Language-|Sensitive Editor, a possible directoryIsearch list will be used when locating the specified file. If the file isnNfound in a CMS library, the corresponding element will be fetched after VTEDIThas asked for confirmation.n.X CMSO If a modified buffer with the same name as the new file already exists, VTEDITaMwill ask you for a buffer name. In some cases you will want a new buffer; inmNother cases you will probably want to use the Buffer command to move to a filethat is already being edited.eL If VTEDIT is running with LSE support and if the Read File command is givenPwith a negative numeric argument, VTEDIT loads an environment file with the namegiven (see section 4.5)..S.I-10;Name: Read Filen&.TP10.S2.I-10;^&Command:\& Append File.X Command>Append File(.S.I-10;Syntax: ^*Ctrl/A\* (control key) .X File>inputuG.S.I-10;Meaning: Get a file name from the keyboard and append this filelto the current text buffer.TM When you type this command, VTEDIT prompts you for a file name with 'File to;Mappend:'. To use your previous input file name and possibly edit it, type themNup-|arrow key. Entering the prompted string is terminated by typing the ReturnLkey, the keypad period (.) or, on VT200 terminals, the Do key, or aborted bytyping Ctrl/Z.L VTEDIT reads the specified file from the file system, and appends it to theGcurrent text buffer. The cursor is moved to the start of the newly readl:text, i.e_. just beyond the former end of the text buffer..S.I-10;Name: Append Filei'.TP10.S2.I-10;^&Command:\& Include Filec.X Command>Include File:2.S.I-10;Syntax: ^*A\* (, main keyboard key) .X File>input*H.S.I-10;Meaning: Get a file name from the keyboard and include this file3before the current line in the current text buffer.tM When you type this command, VTEDIT prompts you for a file name with 'File tosNinclude:'. To use your previous input file name and possibly edit it, type theNup-|arrow key. Entering the prompted string is terminated by typing the ReturnLkey, the keypad period (.) or, on VT200 terminals, the Do key, or aborted bytyping Ctrl/Z.M VTEDIT reads the specified file from the file system, and includes it beforekLthe current line in the current text buffer. The cursor stays at its current location.t.S.I-10;Name: Include File2.TP10.S2.I-10;^&Command:\& Open Buffer for Editing.X Command>Bufferc+.S.I-10;Syntax: ^*3\* (, keypad key)oB.S.I-10;Meaning: Get a buffer name from the keyboard and make thisbuffer the current text buffer.tN When you type this command, VTEDIT prompts you for a buffer name with 'BufferGname:'. To use your previous buffer name and possibly edit it, type theoNup-|arrow key. Entering the prompted string is terminated by typing the ReturnLkey, the keypad period (.) or, on VT200 terminals, the Do key, or aborted bytyping Ctrl/Z.O VTEDIT creates a text buffer of this name, if it does not yet exist, and makes1Hthis buffer the current text buffer. If a new buffer is created, it willinitially be empty.(K NOTE: The buffer will be mapped to the current window, which may be eithereHthe full screen window, or one of the half screen windows. The number of9currently visible windows is not changed by this command.s.S.I-10;Name: Buffer,.TP10.S2.I-10;^&Command:\& Write Output File.X Command>Write Fileo+.S.I-10;Syntax: ^*2\* (, keypad key) .X File>output.y Output see FileH.S.I-10;Meaning: Get a file name from the keyboard and write the currenttext buffer to this file.eL When you type this command, VTEDIT prompts you for a file name with 'OutputOfilename:' and, if there is a default for this filename, that default. If theremPis a default and you want to use it, immediately type the Return key, the keypadOperiod (.) or, on VT200 terminals, the Do key. To use your previous output filetOname and possibly edit it, type the up-|arrow key. Entering the prompted string Jis terminated by typing the Return key, the keypad period (.) or, on VT2003terminals, the Do key, or aborted by typing Ctrl/Z. P VTEDIT creates the file, writes the contents of the current text buffer to thisIfile, and closes the file. The current text buffer is not changed by thisncommand..S.I-10;Name: Write File4.TP10.S2.I-10;^&Command:\& Write Text to Output File.X Command>Write Range-.S.I-10;Syntax: ^*PF2\* (, keypad key)n0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).X File>output9.S.I-10;Meaning: Write a range of text to an output file. L When you type this command, VTEDIT prompts you for a file name with 'OutputLfile:'. To use your previous output file name and possibly edit it, type the<up-|arrow key. Entering the prompted string is terminated byKtyping the Return key, the keypad period (.) or, on VT200 terminals, the Doc!key, or aborted by typing Ctrl/Z.fP VTEDIT writes n lines of text to an output file, starting at the current cursorOposition. If the numeric argument n is not given but a range has been selected, NVTEDIT writes the text in the select range. Otherwise, VTEDIT writes one line.OVTEDIT moves the cursor to the end of the text written. You can delete the texts-which was written by typing the 6 keypad key.t.S.I-10;Name: Write Rangen3.TP10.S2.I-10;^&Command:\& Output and Delete Bufferu.X Command>Close File+.S.I-10;Syntax: ^*8\* (, keypad key)oE.S.I-10;Meaning: Write the contents of the current text buffer to itstHassociated output file. After this operation, the current text buffer isLdeleted, and one of the remaining text buffers is madeP VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H9q current. If there areMcurrently no other text buffers, an empty text buffer named "MAIN" is createdland made current.s.S.I-10;Name: Close File;.TP10.S2.I-10;^&Command:\& Output Buffer and Compile Output;.X Command>CompileI.S.I-10;Syntax: ^*\*1^*Ctrl/Z\* (, main keyboard one, control key)o .BR;^*F20\* (VT200 function key).X File>output .X CompileE.S.I-10;Meaning: Write the contents of the current text buffer to itseGassociated output file. Additionally, the output file is compiled usingdKthe site-|specific DCL command COMPILE which may be a DCL symbol equated toHa DCL command or a DCL command procedure. The current text buffer is not=changed by this command, and the cursor retains its position.yM VTEDIT creates a subprocess to provide a context for the COMPILE command, ifaJthis is the first DCL command in the current VTEDIT session, and sends the=command 'COMPILE filename' to this subprocess to be executed. M The DCL command and the resulting output go into a special DCL buffer. Once Pthe command is executed, two windows appear on the screen. The second window isJassociated with the DCL buffer. The cursor remains in the window it was inbefore you issued the command.P With LSE support, VTEDIT forms a DCL command line by appending the file spec ofPthe current buffer to the command-|string specified with the COMPILE command. IfPthe associated language has diagnostic capabilities, /DIAGNOSTICS is appended toNthe DCL command formed. VTEDIT then spawns a subprocess to execute the commandJline. When the subprocess completes, a message is displayed in the messageNwindow. For further information about compilation with the Language-|Sensitive!Editor, see sections 3.8 and 4.5.;.S.I-10;Name: Compile.,.TP10.S2.I-10;^&Command:\& Display Directory.X Command>File Search+.S.I-10;Syntax: ^*7\* (, keypad key)1 .X Directory .X WildcardmI.S.I-10;Meaning: Get a (possibly wildcard) filespec from the keyboard and Mdisplay a directory listing of all files matching this filespec. This listingpJmay be used to select and read one of the files via the PF3 command.N When you type this command, VTEDIT prompts you for a file name with 'WildcardO(Filespec):'. To use your previous wildcard name and possibly edit it, type thefNup-|arrow key. Entering the prompted string is terminated by typing the ReturnLkey, the keypad period (.) or, on VT200 terminals, the Do key, or aborted bytyping Ctrl/Z.M VTEDIT displays a listing of all file names matching the filespec entered to)Othe prompt. Once the command is executed, two windows appear on the screen, theuLsecond window showing the directory listing. The cursor is positioned to theNfirst file listed here. You may now scroll through the listing and, by issuing>the PF3 command, select a file to be read into a buffer..S.I-10;Name: File Search6.TP10.S2.I-10;^&Command:\& Display List of all Buffers.X Command>List Buffersh2.S.I-10;Syntax: ^*:\* (, main keyboard key)(.BR;^*F7\* (, VT200 function key)I.S.I-10;Meaning: VTEDIT displays a listing of all buffers currently used.3OThe first part of this list contains the user buffers, the second part containstMthe system buffers. This buffer list may be used to select one of the buffersnvia the This File command.D Once the command is executed, two windows appear on the screen, theFsecond window showing the buffer list. The cursor is positioned to theMfirst buffer listed here. You may now scroll through the list and, by issuingr7the PF3 command, select a buffer to be displayed.u.S.I-10;Name: List Buffers:.TP10.S2.I-10;^&Command:\& Select File or Buffer from List.X Command>This File-.S.I-10;Syntax: ^*PF3\* (, keypad key)sF.S.I-10;Meaning: Read the file pointed at by the cursor in a directoryPlisting produced by the File Search command, or move to the buffer pointed at byAthe cursor in a buffer list produced by the List Buffers command.pI In the first case, VTEDIT reads that file from the file system, puts thesLfile in a new buffer, and displays the new buffer in the current window. TheJcursor is moved to the beginning of the file. The file still exists in its!original form in the file system.rN If the cursor is positioned on a buffer name in a buffer list produced by theMList Buffers command, VTEDIT displays that buffer in the current window. ThistCcommand provides an easy method for positioning to a system buffer.a.S.I-10;Name: This File:(.TP10.S2.I-10;^&Command:\& Write Control.X Command>Write Control1.S.I-10;Syntax: ^*Ctrl/W\* (, control key)10.S.I-10;Options: *_* (optional numeric argument)D.S.I-10;Meaning: If the current buffer has an output file associatedOwith it, set the buffer to be read-|only and ignore its output file. Otherwise,eOset the buffer to be read/|write and associate an output file with it. WheneverI=the buffer is read-|only, the status line will be underlined.SM If the numeric argument n is present and has the value 0, the current bufferoBis unconditionally set to be read-|only; if n is -1, the buffer is&unconditionally set to be read/|write.N This command is disabled if VTEDIT was called with the qualifier /READ__ONLY..X /READ__ONLY qualifier.S.I-10;Name: Write Control).PG;^*".HL3Controlling the Video Terminal\*.X Screen controln(.TP10.S.I-10;^&Command:\& Repaint Screen.X Command>Refresh(.S.I-10;Syntax: ^*Ctrl/W\* (control key)B.S.I-10;Meaning: Repaint the screen. This command is useful if theLdisplay on the screen is destroyed, for instance by typing a Ctrl/Y followedNby the DCL command CONTINUE. This command also restores special keypad mode onEthe editing keypad, and can be used if the terminal was powered down.w.S.I-10;Name: Refreshd*.TP10.S2.I-10;^&Command:\& Set Cursor Line(.S.I-10;Syntax: ^*Ctrl/W\* (control key)1.S.I-10;Options: *_# (mandatory numeric argument)*.X Cursor>lineG.S.I-10;Meaning: If the numeric argument n is positive, the cursor lineuMis set to n. The scope driver will try to keep the cursor on the n-th line ofeKthe screen. Initially, the cursor is free to move up to 3 lines towards anyeFwindow boundary. If n is 0, this default behaviour is re-|established.<.TP10.S2.I-10;^&Command:\& Toggle Graphic-|Tabs Display Mode.X Command>Control Screenh(.S.I-10;Syntax: ^*Ctrl/V\* (control key).X Graphic-Tabs..X Tab>visibleE.S.I-10;Meaning: This command turns on the scope driver graphic-|Tabsd,mode, or turns it off if it is currently on..S.I-10;Name: Control Screen>.TP10.S2.I-10;^&Command:\& Set Right Margin and Terminal Width.X Command>Set Right Marginn(.S.I-10;Syntax: ^*Ctrl/V\* (control key)1.S.I-10;Options: *_# (mandatory numeric argument)a .X Margind.X Window>widthrF.S.I-10;Meaning: This command changes the right margin for the currentNbuffer to the value of the numeric argument n. The left margin is not changed.J If the current terminal width is set to 80 and if the new right margin isHset to a value >#80, the terminal is switched to 132 columns. If, on theHother hand, the right margin is set to a value &<#80 and if, at the sameJtime, the right margin of all other user buffers is &<#80, the terminal isswitched back to 80 columns.> If a formatter with automatic word wrap (Text or Document) isHactive, an eight-|character "hot zone" is used to perform automatic word?wrapping. In this case, new words will not begin beyond columntN"right-|margin"-8 but will instead be started on the next line. Using the fillHparagraph command will reformat the paragraph between the left and rightmargins..S.I-10;Name: Set Right Margin*.TP10.S2Q VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hv.I-10;^&Command:\& Set Left Margin.X Command>Set Left Margin2.S.I-10;Syntax: ^*M\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument) .X MarginIH.S.I-10;Meaning: Set the left margin at column n. If you have set a leftPmargin, VTEDIT automatically inserts enough Tabs and spaces to get the cursor toPthe margin whenever you type a carriage return or an open line command (7 key onPkeypad). If the numeric argument n is negative, VTEDIT sets the margin to -n andKuses only spaces for filling. If n is not present, the margin is set at theiLcurrent column. If there is any text on the line when you give this command,#VTEDIT shifts it to the new margin.h.S.I-10;Name: Set Left Marging;.TP10.S2.I-10;^&Command:\& Enter / Exit Screen Holding Modes.X Command>Set Screen1.S.I-10;Syntax: ^*Ctrl/V\* (, control key)n0.S.I-10;Options: *_* (optional numeric argument) .X ScrollingA.S.I-10;Meaning: This command controls the scrolling behaviour offLthe current text window. In normal mode (the default), the cursor is free to/move up to 3 lines towards any window boundary.rN If specified without a numeric argument, this command will switch the currentPtext window back and forth between its default behaviour and a mode of scrollingNwhere the window scrolls only when the cursor position would have been off theOwindow. For example, an advance line from the last line on the window or a backLline from the top line on the window will cause the window to scroll, and itJscrolls at once enough lines to position the cursor into the middle of theJwindow. This mode is useful for for operation over low speed communicationlines.I If specified with a positive numeric argument n, VTEDIT attempts to keepoIthe cursor positioned that many lines from either boundary of the currentTJwindow. If the cursor is about to leave this central region of the window,Othe window scrolls at once by n lines to make room for further cursor movement.0M If specified with the numeric argument 0, VTEDIT attempts to keep the cursorfJtwo thirds from the bottom line of the current window. Any advance or backGline command will scroll the window one line thus keeping the cursor in.)the same physical location on the screen.nO If specified with a negative numeric argument, the default scrolling behaviourtMof the current window is re-|established, that is, the cursor is free to move Hup to 3 lines towards any window boundary, and the window scrolls by one2line, if the cursor is about to leave this region..S.I-10;Name: Set Screen3.TP10.S2.I-10;^&Command:\& Use Free Cursor Movement .X Command>Free Cursor2.S.I-10;Syntax: ^*>\* (, main keyboard key).X Cursor>freeH.S.I-10;Meaning: Select free cursor movement. With free cursor movement,Pthe arrow keys move the cursor in the direction indicated on the key, regardless<of the fact whether there is text at the destination or not.H Whenever free cursor movement is selected, the word 'Free' is displayedin the status line(s)..S.I-10;Name: Free Cursor.4.TP10.S2.I-10;^&Command:\& Use Bound Cursor Movement.X Command>Bound Cursor2.S.I-10;Syntax: ^*<\* (, main keyboard key).X Cursor>bounde@.S.I-10;Meaning: Select bound cursor movement. With bound cursorPmovement, the cursor follows the flow of your text. For instance, moving forwardOat the end of a line will position you to the start of the next line, or movingeHdown to a line shorter than the current offset from the left margin will7position you to the end of that line and not beyond it.i.S.I-10;Name: Bound Cursor.LM-10.PGT^*.HL3Controlling Windowso\*.X Window>commandsN Further information about the windows that VTEDIT uses is provided in section3.2..LM+10,.TP10.S2.I-10;^&Command:\& Shift Window Left.X Command>Shift Left19.S.I-10;Syntax: ^*O{\* #(, left arrow keypad key);0.S.I-10;Options: *_* (optional numeric argument).X Window>shiftGH.S.I-10;Meaning: Shift the window horizontally to the left by n columns.MYou can use this command to see beyond the width of the screen. For example,hPsuppose that you are editing a file with lines 160 characters long, and you havePset the width to 132. You can shift left by 28 to see the characters in columns29 through 160.k.S.I-10;Name: Shift Left-.TP10.S2.I-10;^&Command:\& Shift Window Rightg.X Command>Shift Right:.S.I-10;Syntax: ^*O}\* #(, right arrow keypad key)0.S.I-10;Options: *_* (optional numeric argument).X Window>shiftwI.S.I-10;Meaning: Shift the window horizontally to the right by n columns.1MThis command allows you to view characters located to the left of the currentuNscreen width. You can use this command to reverse the results of a shift left operation..S.I-10;Name: Shift Right ).TP10.S2.I-10;^&Command:\& Change Windowsc.X Command>Change Windowst+.S.I-10;Syntax: ^*F9\* (VT200 function key)E0.S.I-10;Options: *_* (optional numeric argument).X Window>number ofpI.S.I-10;Meaning: Create two sections on the screen, making it possible torOview different parts of one file, or two different documents. When you view onedMfile in two windows, whatever you do to one is done to the other. This is not 5true when viewing two different files in two windows.uN If there is one window on the screen, Change Windows takes the current windowPand divides it into two smaller windows. The current buffer is displayed in bothLwindows, and the cursor is moved to the bottom window. To view two differentLfiles at the same time, use the Buffer or Read File commands after using TwoPWindows to put a new buffer or file in the current window, or circle through the@available buffers by (repeatedly) using the Next Buffer command.K If there are already two windows on the screen, the Change Windows commanddNreturns the screen to one view of the current buffer. The window the cursor isOin becomes the current window. If you have been viewing two different documentsbHin the two windows, VTEDIT removes the other window from the screen. TheMcontents of the other buffer are not affected; you can return to editing this2buffer by using the Buffer or Next Buffer command.J If the Change Windows command is given with a numeric argument, the valueJn of this argument controls the number of windows to be displayed. If n isNgreater than 1, two windows are displayed; otherwise, one window is displayed..S.I-10;Name: Change Windows&.TP10.S2.I-10;^&Command:\& Next Buffer.X Command>Next Buffer+.S.I-10;Syntax: ^*F7\* (VT200 function key) C.S.I-10;Meaning: Position to the next user buffer. You can use this Pcommand to circle through the available user buffers. If you are currently usingKone window, typing the D key will perform this function, too, as willd?typing the B key, if you are currently using two windows.hK NOTE: The buffer will be mapped to the current window, which may be either Hthe full screen window, or one of the half screen windows. The number of9currently visible windows is not changed by this command.y.S.I-10;Name: Next Buffer 4.TP10.S2.I-10;^&Command:\& Two Windows / Next Buffer.X Command>Two Windows2.S.I-10;Syntax: ^*B\* (, main keyboard key).X Window>number of I.S.I-10;Meaning: Create two sections on the screen, making it possible tonPview different parts of one file, or two different documents. When you view oneNfile in two windows, whatever you do to one is done to the other. This is not5true when viewing two different files in two windows.lP If there is one window on the screen, this command takes the current window andMdivides it into two smaller windows. R_ra VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HThe current buffer is displayed in bothpMwindows, and the cursor is moved to the bottom window. To view two differenteNfiles at the same time, use the buffer or read file commands after changing toPtwo windows to put a new buffer or file in the current window, or circle throughNthe available buffers by repeatedly typing the B or, on VT200 terminals, the F7 key.s.S.I-10;Name: Two Windowsc'.TP10.S2.I-10;^&Command:\& Other Windowb.X Command>Other Windowi2.S.I-10;Syntax: ^*C\* (, main keyboard key).BR;^*F8\* (VT200 function key)eD.S.I-10;Meaning: Move the cursor from one window to the other. ManyMediting functions are performed at the current location of the cursor, so you2Imay frequently want to move it from one window to the other. If you want1Lscrolling in a window, for example, you must have the cursor in that window..S.I-10;Name: Other Window3.TP10.S2.I-10;^&Command:\& One Window / Next Bufferh.X Command>One Windows2.S.I-10;Syntax: ^*D\* (, main keyboard key).X Window>number ofeE.S.I-10;Meaning: Return the screen to one view of the current buffer."IThe window the cursor is in becomes the current window. If you have been&Lviewing two different documents in the two windows, VTEDIT removes the otherOwindow from the screen. The contents of the other buffer are not affected; you0Dcan return to editing this buffer by using the buffer command, or byC(repeatedly) typing the D or, on VT200 terminals, the F7 key. .S.I-10;Name: One Window.PGs^*'.HL3Tab and Space Manipulation Commandsa\*.X Space>control:.TP10.S.I-10;^&Command:\& Compress Multiple Spaces to Tabs.X Command>Compress SpacesA.S.I-10;Syntax: ^*Tab\* (, special key, or , Ctrl/I)o0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).X Space>compresssH.S.I-10;Meaning: Compress multiple spaces to Tabs, using the current TabNsetting, within the next n lines. If the numeric argument n is not given and aJrange has been selected, perform the compression on this range. Otherwise,-compress multiple blanks in the current line.h.S.I-10;Name: Compress Spacesw0.TP10.S2.I-10;^&Command:\& Expand Tabs to Spaces.X Command>Expand Tabs..S.I-10;Syntax: ^*Space\* (, Space bar)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).X Tab>expand to spacespF.S.I-10;Meaning: Expand Tabs to spaces, using the current Tab setting,Owithin the next n lines. If the numeric argument n is not given and a range haseKbeen selected, expand Tabs within this range. Otherwise, expand Tabs in thee current line.i.S.I-10;Name: Expand Tabs).TP10.S2.I-10;^&Command:\& Set Tabulatorsl.X Command>Set Tabsg2.S.I-10;Syntax: ^*R\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument).X Tab>settingA.S.I-10;Meaning: Set tab stops at specified positions or at equaly intervals.G If the numeric argument n is given and negative, set tab stops every nrMcharacters; if n is positive, set an additional tab stop at column n. If n islOzero, remove all tab stops; if n is not given, reset the tabulator to tab stopslevery 8 characters. J On any terminals or printers which have different Tab settings from thoseIspecified, the file will not appear the same as it does when viewed usinghGVTEDIT. This command does not affect the hardware Tab settings of yourh terminal.e.S.I-10;Name: Set Tabs1.TP10.S2.I-10;^&Command:\& Delete Trailing Spaces.X Command>Trim Trailing0.S.I-10;Syntax: ^*Return\* (, Return key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)C.S.I-10;Meaning: Delete trailing blanks, i.e_. blanks at the end ofnMa line, within the next n lines. If the numeric argument n is not given and atMrange has been selected, delete trailing blanks within this range. Otherwise,r+delete trailing blanks in the current line..S.I-10;Name: Trim TrailingD>.TP10.S2.I-10;^&Command:\& Center Current Line between Margins.X Command>Center Line+.S.I-10;Syntax: ^*O\* (, letter 'O')fC.S.I-10;Meaning: Center the current line between the left and rightrGmargins. You may place the cursor anywhere on the line to be centered.,.S.I-10;Name: Center Line.PGy^*.HL3Process Control Commands\*.X Process control:.TP10.S.I-10;^&Command:\& Attach to Parent / Other Process.X Command>Attachw2.S.I-10;Syntax: ^*I\* (, main keyboard key) .BR;^*F17\* (VT200 function key) .X Attach I.S.I-10;Meaning: Suspend the current VTEDIT editing session and reconnectbMthe terminal to the parent process, if VTEDIT is run in a subprocess. UsuallyaIthe parent Process is your top-|level DCL process. If there is no parentt+process, VTEDIT prompts for a process name.3P In this case VTEDIT prompts you for a process name with 'Process name:'. To useHyour previous process name and possibly edit it, type the up-|arrow key.OEntering the prompted string is terminated by typing the Return key, the keypadcKperiod (.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.t(VTEDIT attaches to the selected process.L By using the DCL-|level SPAWN and ATTACH commands in addition to the VTEDITLAttach function, you can keep one editing session active for your entire VMSJsession. This makes it faster to resume editing, but takes up more systemKresources and may make recovery in case of a system crash more complicated.T.S.I-10;Name: Attach..TP10.S2.I-10;^&Command:\& Execute DCL Command.X Command>DCL2.S.I-10;Syntax: ^*J\* (, main keyboard key) .BR;^*F18\* (VT200 function key).X DCL@.S.I-10;Meaning: The DCL command executes a DCL (Digital CommandLanguage) command from VTEDIT.G When you type this command, VTEDIT prompts you for a command with 'DCLsJcommand:'. To use your previous DCL command and possibly edit it, type theNup-|arrow key. Entering the prompted string is terminated by typing the ReturnLkey, the keypad period (.) or, on VT200 terminals, the Do key, or aborted bytyping Ctrl/Z.N VTEDIT creates a subprocess to provide a context for the DCL command, if thisPis the first DCL command in the current VTEDIT session, and sends the command tothis subprocess to be executed. P The DCL command and the resulting output go into a special DCL buffer. Once theKcommand is executed, two windows appear on the screen. The second window istJassociated with the DCL buffer. The cursor remains in the window it was inMbefore you issued the DCL command. (A VAX/VMS limitation prevents DCL promptsm"from appearing in the DCL buffer.)P The DCL buffer is treated just like any other buffer. You can move output froma DCL command into a text file.o.S.I-10;Name: DCLm+.TP10.S2.I-10;^&Command:\& Spawn Subprocessf.X Command>Spawn2.S.I-10;Syntax: ^*S\* (, main keyboard key) .BR;^*F19\* (VT200 function key).X SpawnG.S.I-10;Meaning: Suspend the current VTEDIT editing session and connectuKthe terminal to a new DCL subprocess. Logging out of the DCL subprocess oreKexecuting an appropriate ATTACH command from DCL level from this subprocess #resumes the VTEDIT editing session.tG The Spawn command can be used to run screen-|oriented programs and DCLd6utilities without losing your current editing session..S.I-10;Name: Spawno.LM-10.PGl^*.HL3Manipulating Words\*.X Word>controlSL Several of the VTEDIT editing commands use the idea of a 'word' in the textKbuffer. Normally, words are delimited by sequences of spaces, Tabs, commas,Pcarriage returns, and line feeds. If you have a special editing application, youNmay require a different definition of a word. The following commands allow yS=Z VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Houto change that definition..X Word>delimiters.LM+10-.TP10.S2.I-10;^&Command:\& Use Standard WordsX.X Command>Set Word Delimiters2.S.I-10;Syntax: ^*T\* (, main keyboard key)C.S.I-10;Meaning: Restore the set of word delimiters to the standardf3set: space, Tab, comma, carriage return, line feed.d!.S.I-10;Name: Set Word Delimiterst:.TP10.S2.I-10;^&Command:\& Use Extended Word Delimiter SetI.S.I-10;Syntax: ^*\*0^*T\* (, main keyboard zero, , letter)#E.S.I-10;Meaning: Use a set of word delimiters appropriate for editingsNprogram code. This command appends the following special characters to the setof word delimiters:e1.S.C;( ) [ ] < > { } _+ - _* ! = : / . ; $ __ ' "t..TP10.S2.I-10;^&Command:\& Clear Delimiter SetF.S.I-10;Syntax: ^*-T\* (, main keyboard minus, , letter)B.S.I-10;Meaning: Clear out the word delimiter set. You must follow?this command by adding one or more word delimiters (see below).d-.TP10.S2.I-10;^&Command:\& Add Word Delimitern2.S.I-10;Syntax: ^*T\* (, main keyboard key)1.S.I-10;Options: *_# (mandatory numeric argument)>@.S.I-10;Meaning: Add the character whose ASCII value is n to theMset of word delimiters. The value of the numeric argument n must be between 1 and 127.(.TP10.S2.I-10;^&Command:\& Get Next Word.X Command>Get Next Word2.S.I-10;Syntax: ^*N\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument)B.S.I-10;Meaning: Move the next n words to the current line. If theOnumeric argument n is positive, the first n words of the next line(s) are moved Ito the end of the current line. If n is negative, the last n words of theo@previous line(s) are moved to the beginning of the current line..S.I-10;Name: Get Next Wordo).TP10.S2.I-10;^&Command:\& Fill Paragraph.X Command>Fillr2.S.I-10;Syntax: ^*P\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)G.S.I-10;Meaning: Reformat n lines so the text fits between the left andnJright margins. If the numeric argument n is not given and a range has beenLselected, reformat the text inside this range. Otherwise, reformat one line.5The cursor moves to the end of the reformatted range. I If a formatter with automatic line justification (currently the Document Mformatter) is active, the filled lines are justified, i.e_. enough blanks arewNinserted into each line (except the last one) to let it extend up to the rightKmargin. The effect is to create a straight right margin for the reformattedotext.o.S.I-10;Name: Fill.PGi^*.HL3Executing TPU commands\*.X TPU/.TP10.S.I-10;^&Command:\& Execute Q-register *qs.X Command>Execute Command5.S.I-10;Syntax: ^*Ctrl/Eq\* (control key, any letter)T0.S.I-10;Options: *_* (optional numeric argument).X Q-register>executenD.S.I-10;Meaning: Compile and execute the TPU command(s) or procedurePin Q-register *q. In this command, *q can be any letter; uppercase and lowercaseLletters are treated as equivalent. If the numeric argument n is present, itsKvalue can be accessed from the command or procedure via the global variablew'vte$x__repeat__count'.k.S.I-10;Name: Execute Commandw/.TP10.S2.I-10;^&Command:\& Repeat Q-register *qa.X Command>Iterate Command>.S.I-10;Syntax: ^*Ctrl/Eq\* (, control key, any letter)0.S.I-10;Options: *_* (optional numeric argument).X Q-register>executetI.S.I-10;Meaning: Compile the TPU command(s) or procedure in Q-register *q,Kand execute it in an iteration loop. In this command, *q can be any letter;gNuppercase and lowercase letters are treated as equivalent. If the value of theJnumeric argument n is zero, the iteration is infinite. Otherwise, n is theLiteration count for the loop. If n is not given, this command is the same as Ctrl/E*q.m.S.I-10;Name: Iterate Commandu6.TP10.S2.I-10;^&Command:\& Set TPU Command and Execute .X Command>Dot(.S.I-10;Syntax: ^*Ctrl/Z\* (control key).BR;^*Do\* (VT200 function key)t..I-10;LSE key: ^*Ctrl/Z\* (LSE key mode only).X TPU>commandD.S.I-10;Meaning: Get a TPU command from the keyboard and execute it.K When you type this command, VTEDIT prompts you for a TPU command with 'TPUnPcommand:'. To use your previous command and possibly edit it, type the up-|arrowOkey. Entering the prompted string is terminated by typing the keypad period (.)e@or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.M VTEDIT transfers the command for compilation and execution to VAXTPU. If thetJnumeric argument n is present, its value is used as an argument to the TPUcommand string.;.S.I-10;Name: Do4.TP10.S2.I-10;^&Command:\& Start / End Learning Mode.X Command>Learn2.S.I-10;Syntax: ^*L\* (, main keyboard key) .X Learn moden>.S.I-10;Meaning: VTEDIT can 'learn' a series of keystrokes andL(re-)execute them upon request. An initial L puts VTEDIT into learningNmode. Every subsequent keystroke is remembered by VTEDIT until another LPis typed. To cancel a learned sequence or to ensure that you are out of learningLmode, type L until the terminal bell sounds. The bell signals that the@null learning sequence (i.e_., LL) has been entered..S.I-10;Name: Learnt3.TP10.S2.I-10;^&Command:\& Execute Learned Sequencet.X Command>Execute Learned2.S.I-10;Syntax: ^*X\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument)?.S.I-10;Meaning: This command causes VTEDIT to (re-)execute theIOpreviously learned keystroke sequence. If you do not have any learning sequenceSPremembered, the terminal bell rings. The optional numeric argument is the number3of times to execute the learned keystroke sequence.u.S.I-10;Name: Execute Learnedi&.TP10.S2.I-10;^&Command:\& Compile TPU.X Command>Compile Range9.S.I-10;Syntax: ^*.\* (, main keyboard period key)i .BR;^*F11\* (VT200 function key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).X TPU>compileF.S.I-10;Meaning: Compile a range of text as VAXTPU source code. VTEDITIcompiles n lines of text, starting at the current cursor position. If thedNnumeric argument n is not given but a range has been selected, VTEDIT compilesOthe text in the select range. Otherwise, VTEDIT compiles one line. VTEDIT movest+the cursor to the end of the compiled text.s.S.I-10;Name: Compile Rangeh&.TP10.S2.I-10;^&Command:\& Execute TPU.X Command>Execute Range8.S.I-10;Syntax: ^*,\* (, main keyboard comma key)).BR;^*F11\* (, VT200 function key)d0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).X TPU>executeF.S.I-10;Meaning: Execute a range of text as VAXTPU source code. VTEDITIcompiles n lines of text, starting at the current cursor position. If theINnumeric argument n is not given but a range has been selected, VTEDIT compilesOthe text in the select range. Otherwise, VTEDIT compiles one line. VTEDIT movescLthe cursor to the end of the compiled text. If the compilation is sucessful,6VTEDIT executes the resulting statement(s) or program..S.I-10;Name: Execute Rangeh.PGe^*.HL3Miscellaneous Commands\*.X Informational commandsf2.TP10.S.I-10;^&Command:\& Set Journaling Frequency.X Command>Set Journal2.S.I-10;Syntax: ^*F\* (, main keyboard key)1.S.I-10;Options: *_# (mandatory numeric argument) .X Journal>frequencyA.S.I-10;Meaning: Change the frequency with which VAXTPU logs youriKtyping into the journal file. The lower the (positive) value of the numericrPargument n is, the more often VAXTPU writes a record to the log file. A value ofO1 causes a record to be written for approximately every 10#-#30 keT VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HK ys pressed; aoJvalue of 10 or more causes a record to be written for every 120#-#300 keyspressed, which is the default..S.I-10;Name: Set JournaldH.TP10.S2.I-10;^&Command:\& Close Journal File and Start New Journal File.X Command>Set Journal2.S.I-10;Syntax: ^*F\* (, main keyboard key)H.S.I-10;Meaning: Close the current journal file and open a new one. ThisMoperation is only allowed if there is currently no non-|empty user buffer, ase=otherwise the new journal file would be useless for recovery.m.S.I-10;Name: Set JournalyB.TP10.S2.I-10;^&Command:\& Redisplay Keypad Layout and Obtain Help.X Command>Helpt2.S.I-10;Syntax: ^*H\* (, main keyboard key)!.BR;^*Help\* (VT200 function key) .X HelpfI.S.I-10;Meaning: Clear the screen and display the Help text for the VideotPTerminal Editor. Type carriage return for additional Help information. Press theKkey or type the name of the VTEDIT command that you want Help on. Type TPU, Oand optionally the name of a TPU-|related item, to obtain Help about VAXTPU andiOits functions, or type LSE to obtain Help about the Language-|Sensitive Editor. JType a space to redisplay the text window(s) and resume editing, or Return+or Ctrl/Z to return from multi-|level Help.b.S.I-10;Name: Help+.TP10.S2.I-10;^&Command:\& Show Informationa.X Command>ShowpG.S.I-10;Syntax: ^*Backspace\* (, special key, or , Ctrl/H);).BR;^*F12\* (, VT200 function key):*.BR;^*Help\* (, VT200 function key)H.S.I-10;Meaning: Show information about the current editing environment,Iincluding the name of the input file, the name of the output file, margin Psettings, and Tab settings, and possibly about the current language environment.K VTEDIT will prompt you for more information. You may then enter one of the1Nfollowing keywords (or an abbreviation thereof) to obtain general information:/.S.C;BUFFERS##KEYWORDS##LISTS##MAPS##PROCEDURESn&.C;SCREEN##SUMMARY##VARIABLES##WINDOWSB.S;or the name of a TPU variable for information on that variable.P If VTEDIT is installed with support for the Language-|Sensitive Editor VAX LSE,Pyou may also enter one of the following keywords (or an abbreviation thereof) to1obtain information about the current environment:n4.S.C;ALIAS##LANGUAGES##MODULES##PACKAGES##PARAMETERS4.C;PLACEHOLDERS##ROUTINES##SOURCE__DIRECTORY##TOKENS) Type Return or Ctrl/Z to resume editing.u.S.I-10;Name: Show>.TP10.S2.I-10;^&Command:\& Set up Wildcard for Filename Search.X Command>File SearchF.S.I-10;Syntax: ^*\*0^*7\* (, main keyboard zero, keypad key 7) .X WildcardcE.S.I-10;Meaning: Get a (possibly wildcard) filespec from the keyboardCCas the basis for subsequent filename lookup matching this filespec.,N When you type this command, VTEDIT prompts you for a file name with 'WildcardO(Filespec):'. To use your previous wildcard name and possibly edit it, type theTNup-|arrow key. Entering the prompted string is terminated by typing the ReturnLkey, the keypad period (.) or, on VT200 terminals, the Do key, or aborted bytyping Ctrl/Z.K VTEDIT uses this filespec for subsequent filename lookup with the -7eOcommand. This command is only a preset; it does not open, close, or try to finda any file.;.S.I-10;Name: File Search 7.TP10.S2.I-10;^&Command:\& Sort Current Buffer or Rangen.X Command>Sortc1.S.I-10;Syntax: ^*Ctrl/K\* (, control key):0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range).BR;a (rectangular region).X Sort B.S.I-10;Meaning: Sort the lines of the selected range in lexicallyMascending order. If a rectangular region has been selected, sort the lines ofTPtext of that region using the columns inside the region as sort key. If no rangeMor region has been selected but a numeric argument n has been given, sort then1next n lines; otherwise, sort the current buffer.aN NOTE: The text, once sorted, cannot be restored to its previous order; so, toOprevent serious errors, VTEDIT asks for confirmation if the current text bufferdhas been modified..S.I-10;Name: Sort-.TP10.S2.I-10;^&Command:\& Save Numeric Valuer.X Command>Store Number ?.S.I-10;Syntax: ^*Uq\* (, main keyboard key, any letter) 1.S.I-10;Options: *_# (mandatory numeric argument)t .X Q-registertH.S.I-10;Meaning: Save the numeric value of the numeric argument n in theOnumeric part of Q-register *q. In this command, *q can be any letter; uppercases0and lowercase letters are treated as equivalent..S.I-10;Name: Store Number.LM-10.PGt^*(.HL2Language-|Sensitive Editing Commands\*.X LSE>commandslJ The following commands are only available if VTEDIT is installed with LSEKsupport and if it is not invoked with the qualifier /NOLSE. Presence of LSE Msupport is shown by an asterisk (_*) in the staatus line(s). The key bindingsgHshown as 'LSE key' take effect only if the keys are switched to LSE modeKvia the Switch LSE Keys command; these key definitions overlay the originaluones temporarily.MI Further information about the Language-|Sensitive Editor can be found inf2section 3.8, and in the VAX LSE documentation set..LM+10^*.HL3Formatting Comments \*.X Comment formattingn(.TP10.S.I-10;^&Command:\& Align comments.X Command>Align1.S.I-10;Syntax: ^*Ctrl/G\* (, control key)c0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)A.S.I-10;Meaning: Align program comments within the next n-1 linesBKsuch that they start at the same column as in the current line. If n is noteLgiven but a range has been selected, align the comments in the select range.PVTEDIT finds the first trailing comment in the range, uses the starting positionMof that comment as the comment column, and adjusts all subsequent comments toeconform with the first.p.S.I-10;Name: Aligne(.TP10.S2.I-10;^&Command:\& Fill Comments.X Command>Comment Filld1.S.I-10;Syntax: ^*Ctrl/P\* (, control key)g0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)E.S.I-10;Meaning: Fill program comments within the next n lines to putlJas much text on a line as possible. If n is not given but a range has beenFselected, fill the comments in the select range. The comment column isLdetermined from the position of the comment segment in the first line of the select range.u.S.I-10;Name: Comment Fill.PGt^*'.HL3Controlling File Search and Buffersf\*..TP10.S.I-10;^&Command:\& Set Source Directory.X Command>Set Sourceo1.S.I-10;Syntax: ^*Ctrl/L\* (, control key)10.S.I-10;Options: *_* (optional numeric argument).X Source directoryo.X Directory>source1@.S.I-10;Meaning: Declare a list of directories to be searched inMsubsequent Read File commands if the filespecs used in these commands contain no device/|directory fields.L When you type this command, VTEDIT prompts you for a (comma-|separated listMof) directory specification(s) with 'Directory:'. To use your previous searchyOlist specification and possibly edit it, type the up-|arrow key. If you wish toOspecify a search list consisting of two or more elements, separate the elementssQwith commas. Entering the prompted string is terminated by typing the Return key,sNthe keypad period (.) or, on VT200 terminals, the Do key, or aborted by typingCtrl/Z. K VTEDIT builds a search list by prefixing your specification with '[]', theTIshorthand for the current directory, and appending 'CMS$LIB', the logical Iname pointing to the current CMS library if there is one. Thus files williJalways be searched in your current directory first, and in the CMS libraryJif they are not found in any directory on the list. ThUծ7 VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H֐e automatic additionNof the current directory and current CMS library can be suppressed by enteringHthe Set Source Directory command with a negative numeric argument, i.e_.1by typing the -||Ctrl/L key sequence..X CMS .X CMS$LIBJ NOTE: The directory search list is stored in the logical name LSE$SOURCE.JTherefore, it remains in effect after leaving VTEDIT and will be cancelledonly on logout.n.S.I-10;Name: Set Source6.TP10.S2.I-10;^&Command:\& Control Buffer Modification.X Command>Modify Controlt1.S.I-10;Syntax: ^*Ctrl/T\* (, control key) 0.S.I-10;Options: *_* (optional numeric argument).X Mode>insert.X Mode>overstrikeD.S.I-10;Meaning: If the current buffer can be modified, set it to beLunmodifiable; otherwise, allow modifications of the current buffer. The modeHof the buffer ('Insert' or 'Overstrike') is displayed in the status line*if and only if the buffer can be modified.M If the numeric argument n is present and has the value 0, the current bufferoDis unconditionally set to be unmodifiable; if n is -1, the buffer is%unconditionally set to be modifiable.d.S.I-10;Name: Modify Control.PGi^*.HL3Entering Source Text\* .X Expandk.X Placeholder>commandsn/.TP10.S.I-10;^&Command:\& Goto Next Placeholdera.X Command>Next Placeholdera;.S.I-10;Syntax: ^*Next Screen\* (, VT200 keypad key)t&.BR;^*)\* (, main keyboard key)'.I-10;LSE key: ^*Ctrl/N\* (control key) 0.S.I-10;Options: *_* (optional numeric argument)H.S.I-10;Meaning: Move the cursor to the n-th next defined placeholder. AIplaceholder must be defined in order to be be recognized by this command. K If the cursor is positioned in a query buffer resulting from an SCA query,_Nthis command selects the next query, allowing you to cycle through all queriesof the current editor session..X Query.S.I-10;Name: Next Placeholder4.TP10.S2.I-10;^&Command:\& Goto Previous Placeholder.X Command>Previous Placeholderi;.S.I-10;Syntax: ^*Prev Screen\* (, VT200 keypad key)i&.BR;^*(\* (, main keyboard key)'.I-10;LSE key: ^*Ctrl/P\* (control key)a0.S.I-10;Options: *_* (optional numeric argument)=.S.I-10;Meaning: Move the cursor to the n-th previous definedeOplaceholder. A placeholder must be defined in order to be be recognized by this1command.K If the cursor is positioned in a query buffer resulting from an SCA query, Jthis command selects the previous query, allowing you to cycle through all&queries of the current editor session..X Query".S.I-10;Name: Previous Placeholder5.TP10.S2.I-10;^&Command:\& Expand Current Placeholder .X Command>Expand Tokenn,.S.I-10;Syntax: ^*F13\* (VT200 function key)*.BR;^*"Linefeed"\* (special key or Ctrl/J)'.I-10;LSE key: ^*Ctrl/E\* (control key) .X ExpandrG.S.I-10;Meaning: Depending on the context, this command performs one of;the following:.LS"-"I.LE;Replaces the token, placeholder, routine name, or alias at the cursor`#position with a template or string.fG.LE;Displays a description of the valid replacements for a placeholder.hN.LE;Displays a menu of options correponding to the token or placeholder at thecurrent cursor position..LE;Selects a menu option..ELSN Thus, expansion differs for tokens, routines, aliases, and the three types of/placeholders (terminal, nonterminal, and menu):m.LS"-"K.LE;If the current position is on a terminal placeholder, VTEDIT displays aiOdescription of valid replacements for the terminal placeholder. Pressing the up Jand down arrows allows you to move within the text. Pressing the space barJremoves the text and returns you to the original buffer without making anychanges..X Placeholder>terminalrK Pressing any other key clears the text and performs the operation normallynassociated with the key.O.LE;If the current position is on a nonterminal placeholder, VTEDIT deletes theiBplaceholder and replaces it with the text of the placeholder body..X Placeholder>nonterminalP.LE;For menu placeholders, VTEDIT displays the options. Pressing the up and down9arrow keys allows you to move from one option to another.e.X Placeholder>menu C To obtain help text on an indicated option, press the ? key.cO Pressing the Enter or the Return key, or the Expand Token key again allows youeLto expand the selected option and remove the menu display. Pressing the NextLScreen or Prev Screen key also allows you to move through the menu, skippingNseveral options at a time. Pressing any other key removes the menu display and8performs the operation normally associated with the key.M If the option is a placeholder name, the placeholder is enclosed in the same Pclass of delimiter as the menu option being expanded (unless the /LIST qualifierHon DEFINE PLACEHOLDER specifies otherwise) and VTEDIT then automaticallyIperforms an Expand operation. If /LIST is specified, the list form of the&+delimiter found on the menu option is used.H If there is a description associated with the placeholder or token nameOappearing as a choice in a menu, VTEDIT displays the description along with the:name.TN.LE;If the cursor immediately follows the name of an alias, routine, token, orMthe abbreviation for an alias, routine, or token name, Expand causes the namemK(or abbreviation) to be deleted and the expansion of the alias, routine, orn"token to be inserted in its place..X Token.X AliasL If more than one alias, routine, or token matches the string at the currentNposition, VTEDIT displays a list of choices and extends the abbreviation up toNthe first unambiguous character. This menu operates in the same manner as thatdisplayed for a placeholder..ELSJ If the expansion text consists of more than one line, the following linesJwill be indented to the column containing the first character of the tokenHname or left placeholder delimiter, unless the expansions starts with an.empty line (which is automatically discarded).J For placeholders, if the delimiter is REQUIRED__|LIST or OPTIONAL__|LIST,JVTEDIT duplicates the placeholder before proceeding; however, Expand never-duplicates OPTIONAL or REQUIRED placeholders.TM VTEDIT places the new copy either directly after the old copy or under it oneNthe next line, as specified by the placeholder definition. The first characterFof the old copy of the placeholder becomes the current position. AfterHduplication is performed, the old copy of the placeholder will have the NREQUIRED delimiters and the new copy will have the OPTIONAL__|LIST delimiters..S.I-10;Name: Expand Token/.TP10.S2.I-10;^&Command:\& Unexpand Placeholdere.X Command>Restore".S.I-10;Syntax: ^*6\* (keypad key)0.I-10;LSE key: ^*Ctrl/E\* (, control key)I.S.I-10;Meaning: Reverse the effect of the last Expand command. The rangeiNcontaining the text inserted as part of the last Expand command is deleted andJthe token, placeholder, or alias that appeared at that position before theJExpand command is restored. This command must immediately follow an ExpandFcommand, without intervening cursor movements, text entry or deletion..S.I-10;Name: Restore ,.TP10.S2.I-10;^&Command:\& Erase Placeholder.X Command>Erase Placeholder5.S.I-10;Syntax: ^*F17\* (, VT200 function key)h'.BR;^*_#\* (, main keyboard key)s'.I-10;LSE key: ^*Ctrl/K\* (control key)hB.S.I-10;Meaning: Delete the text of the placeholder if the currentKposition is on or within the placeholder delimiters. Note that you can only,delete defined placeholders.M If the current position is not on a placeholder, the cursor will move to thenGnext placeholder and delete it. If no placeholder is found, an error isn reVύ5 VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hrzported.eP If the deleted placeholder has the OPTIONAL__|LIST delimiters and is defined toMduplicate horizontally or by context, VTEDIT determines if the placeholder is Oimmediately preceded by defined separator text or white space. If either is the,;case, VTEDIT will delete the separator text or white space.nP If the deleted placeholder has the OPTIONAL__|LIST delimiters and is defined toKduplicate vertically or by context, VTEDIT determines if the placeholder isiPpreceded by blanks or Tabs or if the last item on the previous line is separatorPtext. If either is the case, VTEDIT deletes the blanks and Tabs or the separatortext.o.S.I-10;Name: Erase Placeholdera..TP10.S2.I-10;^&Command:\& Unerase Placeholder.X Command>Restore".S.I-10;Syntax: ^*6\* (keypad key)0.I-10;LSE key: ^*Ctrl/K\* (, control key)C.S.I-10;Meaning: Restore text deleted by the last Erase PlaceholdereKcommand. This command must immediately follow an Erase Placeholder command, =without intervening cursor movements, text entry or deletion. .S.I-10;Name: Restorer'.TP10.S2.I-10;^&Command:\& Define Aliase.X Command>Alias1.S.I-10;Syntax: ^*Ctrl/A\* (, control key).#.S.I-10;Options: ` (select range)l.X AliasF.S.I-10;Meaning: This command allows you to refer to the identifier atMthe current cursor position, or, if a range has been selected, to the text innMthat range. When you type this command, VTEDIT prompts you for an alias-|name Kwith 'Alias name'. Entering the prompted string is terminated by typing theyPReturn key, the keypad period (.) or, on VT200 terminals, the Do key, or abortedby typing Ctrl/Z.XM VTEDIT defines an alias-|name for (the leading part of) the identifier under*Jthe cursor, or for the contents of the select range, if there is one. FromKnow on, you can type the alias-|name and press the Expand Token key and thed;identifier or text assigned to the alias-|name will appear. .S.I-10;Name: Aliasa1.TP10.S2.I-10;^&Command:\& Language Specific Helpn.X Command>Help Language2.S.I-10;Syntax: ^*?\* (, main keyboard key).X Language>HelpC.S.I-10;Meaning: Display the Help text associated with the token orpMplaceholder at the current cursor position. The Help text comes from the HelpmNlibrary associated with the specified language. VTEDIT forms a topic string byPconcatenating the TOPIC__|STRING qualifiers associated with the language and theMtoken or placeholder; VTEDIT then searches for the topic in the Help library.dJ If more than one screen of help text is available, and you do not wish toKreview the additional screens of information, press CTRL/Z to return to theu editing mode.i.S.I-10;Name: Help Languages.PG ^*.HL3Compiling and Reviewingg\* .X Compile .X Reviewl:.TP10.S.I-10;^&Command:\& Output Buffer and Compile Output.X Command>CompileI.S.I-10;Syntax: ^*\*1^*Ctrl/Z\* (, main keyboard one, control key)E .BR;^*F20\* (VT200 function key).X File>outputE.S.I-10;Meaning: Write the contents of the current text buffer to itsrHassociated output file and compile this file using the facilities of thePLanguage-|Sensitive Editor. With LSE support, VTEDIT forms a DCL command line byNappending the file spec of the current buffer to the command-|string specifiedLwith the COMPILE command defined for the current language. If the associatedIlanguage has diagnostic capabilities, /DIAGNOSTICS is appended to the DCLgFcommand formed. If the DCL-|symbol 'language'__FLAGS is defined, whereP'language' stands for the current language, e.g_. C or Pascal, VTEDIT translatesLthis symbol and appends the result to DCL command verb used for compilation.F VTEDIT then spawns a subprocess to execute the command line. When theOsubprocess completes, a message is displayed in the message window. For furtheroNinformation about compilation with the Language-|Sensitive Editor, see section3.8..S.I-10;Name: Compile !.TP10.S2.I-10;^&Command:\& Reviewr.X Command>Reviewr5.S.I-10;Syntax: ^*F14\* (, VT200 function key))'.BR;^*_=\* (, main keyboard key)b .X Reviewy@.S.I-10;Meaning: Select and display a set of diagnostic messagesMresulting from a compilation. The diagnostics associated with the contents ofp-the buffer become the current diagnostic set.; .X DiagnosticcO A set of diagnostics becomes associated with a buffer by a Review command. TheSOdiagnostic remains associated with the buffer until either a subsequent CompilenJcommand is issued for the buffer, or the review window is removed from thescreen.IL If no diagnostics are associated with the buffer, VTEDIT attempts to read aOset of diagnostics from a file. The file specification for the file defaults togPthe file name of the file associated with the buffer, but with a .DIA file type..S.I-10;Name: Review&.TP10.S2.I-10;^&Command:\& Goto Source.X Command>Goto Source5.S.I-10;Syntax: ^*F18\* (, VT200 function key)t'.BR;^*_*\* (, main keyboard key)d'.I-10;LSE key: ^*Ctrl/G\* (control key)T@.S.I-10;Meaning: Display the source corresponding to the currentKdiagnostic or query item, depending on whether VTEDIT is in Review or QueryCmode.S.X QueryM In Review mode, VTEDIT selects the diagnostic at the current position in thepMbuffer $Review and a region for which source display is desired. This becomes the current diagnostic.nL The current diagnostic and the current region are highlighted, and the fileMcontaining the current region is displayed in a second window with the regionMhighlighted. When a diagnostic is selected in this way, the buffer containingo.the current region becomes the current buffer.M VTEDIT may display a suggested error correction, and prompt for a yes (Y) orn?no (N) response; the correction is made if the response is yes.s .X CorrectiontP In Query mode, VTEDIT selects the query item occurrence at the current positionHin the current query buffer. This becomes the current query item. VTEDITJhighlights the current query item and displays the the file containing theNcorresponding source for the current query item in a second window. The bufferLcontaining the source that corresponds to the current query item becomes thecurrent buffer.f.X QueryO In both modes, VTEDIT creates an unmodifiable buffer and reads the source fileCKspecified in the diagnostics file or SCA data file into that buffer, if thenPsource file corresponding to the current diagnostic region or current query itemis not in a buffer.aN If it cannot find that file, VTEDIT uses the list of directories specified byNthe Set Source Directory command to find the file. VTEDIT uses CMS to access aPfile if the directory for the file to be accessed is the same as the translation for CMS$LIB..X CMS .X CMS$LIB.S.I-10;Name: Goto Sources$.TP10.S2.I-10;^&Command:\& Next Step.X Command>Next Step5.S.I-10;Syntax: ^*F20\* (, VT200 function key)F&.BR;^*]\* (, main keyboard key)'.I-10;LSE key: ^*Ctrl/F\* (control key)p0.S.I-10;Options: *_* (optional numeric argument)G.S.I-10;Meaning: Move the cursor forward to the next error, item, name,sJor occurrence, depending on whether VTEDIT is in Review or Query mode. Theindicated item is highlighted..X QueryN In Review Mode, VTEDIT selects the n-th next diagnostic in the current set ofKdiagnostics. The current set of diagnostics is in buffer $Review. Next Step*Opositions the cursor at the n-th next diagnostic in that buffer. If the currentrOerror is the last in the set, the Next Step command will not wrap from the lastlerror back to the first.N The Next Step command is equivalent to a Review of the buffer for the currentLdiW VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hagnostic set, except the cursor is moved to the next diagnostic. Thus, theJnext diagnostic in the current set becomes the current diagnostic, and the>primary region for that diagnostic becomes the current region.L In Query mode, VTEDIT moves the cursor forward to the next source item, theKnext name, or the next occurrence of the current source item in the currentp>query, depending on the context provided by the current query..X Query.S.I-10;Name: Next Stepa(.TP10.S2.I-10;^&Command:\& Previous Step.X Command>Previous Step5.S.I-10;Syntax: ^*F19\* (, VT200 function key).&.BR;^*[\* (, main keyboard key)'.I-10;LSE key: ^*Ctrl/B\* (control key)l0.S.I-10;Options: *_* (optional numeric argument)F.S.I-10;Meaning: Move the cursor backward to the previous error, item,Pname, or occurrence, depending on whether VTEDIT is in Review or Query mode. Theindicated item is highlighted..X QueryO In Review mode, VTEDIT selects the n-th previous diagnostic in the current setcMof diagnostics. The current set of diagnostics is in buffer $Review. PreviousCIStep positions the cursor at the n-th previous diagnostic in that buffer.wL The Previous Step command is equivalent to a Review command except that theGthe cursor is moved to the previous diagnostic. Thus, the n-th previousrMdiagnostic in the current set becomes the current diagnostic, and the primaryn5region for the diagnostic becomes the current region.1M In Query mode, VTEDIT moves the cursor backward to the previous source item,COthe previous name, or the previous occurrence of the current source item in the1Fcurrent query, depending on the context provided by the current query..X Query.S.I-10;Name: Previous Step .LM-10.PG ^*.HL3Source Code Analysis\*.X SCA>commandslM The following commands require the presence of the Language Sensitive Editorv-and the presence of the Source Code Analyzer.aP Further information about the Source Code Analyzer can be found in section 3.8,%and in the VAX LSE documentation set.s.LM+10.X Search>symbol.Y Symbol search see Searche%.TP10.S.I-10;^&Command:\& Find Symbolo.X Command>Find Symbol4.S.I-10;Syntax: ^*F9\* (, VT200 function key)&.BR;^*'\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)F.S.I-10;Meaning: Locate occurrences of source symbols described by the'current Source Code Analyzer libraries.1J Normally, the symbol at the current cursor position is the subject of theMquery operation. The symbol name at the current cursor position is defined aseMthe contiguous sequence of identifier characters before and after the cursor. OThe set of symbol identifier characters depends on the language associated withhthe current buffer.e.X QueryO If a select range is active, VTEDIT will use the text within that range as theQ symbol name.N If this command is given with a negative numeric argument, symbol occurrencesJare restricted to symbol references; if the command has a zero or positivePnumeric argument, only declarations are shown. If the command is given without a5numeric argument, all types of occurrences are shown.c.S.I-10;Name: Find Symbol:+.TP10.S2.I-10;^&Command:\& Goto Declaratione.X Command>Goto Declarationm4.S.I-10;Syntax: ^*F8\* (, VT200 function key)&.BR;^*;\* (, main keyboard key)0.S.I-10;Options: *_* (optional numeric argument).BR;` (select range)H.S.I-10;Meaning: Display the declaration of the symbol indicated. VTEDITPdisplays the source code containing the symbol declaration at another window andNpositions the cursor on the symbol declaration. VTEDIT uses the symbol name atKthe current cursor position, or the text within the currently active select;range, as the symbol name..X QueryO A numeric argument may be used to indicate whether you want to see the primary;Jor the associated declaration for the symbol. A primary declaration is theKdeclaration that SCA interprets as most significant for a symbol (such as aaHFUNCTION declaration). For example, the primary declaration of a routineIdescribes the body of the routine. An associated declaration is a relateduHdeclaration that accompanies the primary declaration (such as an EXERNAL declaration).uK By default, VTEDIT displays the primary declaration for the symbol. If theaOcommand is given with a negative numeric argument, however, then SCA determinesD9which declaration to select using the following criteria:e.LS"-"M.LE;If the indicated occurrence of the symbol is a reference, VTEDIT displaystLthe declaration specified by the compiler as bound to that occurrence of thesymbol.uK.LE;If the indicated occurrence of the symbol is an associated declaration,a(VTEDIT displays the primary declaration.N.LE;If the indicated occurrence of the symbol is a primary declaration, VTEDIT$displays the associated declaration..ELS0e.S.I-10;Name: Goto Declaration.PGe^*,.HL3Access to the Language-|Sensitive Editor\*.X LSE>control commandsIE.TP10.S.I-10;^&Command:\& Switch LSE Keys between LSE and VTEDIT Mode .X Command>LSE KeysoD.S.I-10;Syntax: ^*Linefeed\* (, special key or Ctrl/J)).BR;^*F13\* (, VT200 function key)s0.S.I-10;Options: *_* (optional numeric argument) .X LSE>keysaF.S.I-10;Meaning: Bind the Language-|Sensitive Editor's control keys toMthe commands in the same way as when VAX LSE is used in its native, EDT-|like Nmode. For example, use the Ctrl/E key for the Expand Token command, instead ofNits VTEDIT meaning. Subsequent use of the LSE Keys command restores the VTEDITkey definitions.J The selection of LSE key bindings is indicated by the string 'LSE' in thestatus line(s). G If the LSE Keys command is given with a negative numeric argument, theeKEDT-|like key bindings are set unconditonally. If the command is given with/La zero or positive numeric argument, the VTEDIT key definitions are restoredunconditionally..S.I-10;Name: LSE Keys&.TP10.S2.I-10;^&Command:\& LSE Command.X Command>LSE Command4.S.I-10;Syntax: ^*Do\* (, VT200 function key).X LSE>commands;H.S.I-10;Meaning: Execute a command of the Language-|Sensitive Editor VAXKLSE. When you type this command, VTEDIT prompts you for an LSE command withmN'LSE command:'. To use one of your previous LSE commands and possibly edit it,Ptype the up- and down-|arrow keys. Entering the prompted string is terminated byPtyping the Return key, the keypad period (.) or, on VT200 terminals, the Do key,or aborted by typing Ctrl/Z.P VTEDIT transfers the command to the Language-|Sensitive Editor; after execution*of the command, control returns to VTEDIT.O NOTE: Some LSE commands may interact with the VTEDIT environment in such a waylLthat part of the editing environment is left as it is in standard LSE. WhileNthis normally will not happen, you should be aware of this possibility anyhow..S.I-10;Name: LSE Commandc1.TP10.S2.I-10;^&Command:\& LSE Command Input Modee!.X Command>LSE Command Input ModeLL.S.I-10;Syntax: ^*Ctrl/?\* (control key, representing ASCII value 31 OO US)'.I-10;LSE key: ^*Ctrl/Z\* (control key)h.X LSE>commands H.S.I-10;Meaning: Execute one or more commands of the Language-|SensitiveOEditor VAX LSE. When you type this command, VTEDIT prompts you for LSE commandstPwith 'LSE>'. To use one of your previous LSE commands and possibly edit it, typeKthe up- and down-|arrow keys. Entering the prompted string is terminated byrPtyping the Return key, the keypad period (.) or, on VT200 terminals, the Do key,Oor aborted by typing Ctrl/Z. After executing the command, the prompt re-appearsIJin orderXw4IJ`:`+P FH;/b09M >$()Ve*JcmqV=_GErG/WoA;Toj [8lJfP %\&StAvg kmac{`!uc7N,vC7YZ4^!)*#4lI&8zdU4Y( }Qh UAN#@[ }mw EN $;tM5s^76sQz9KD Z,7M0p&rF +^"{[ pRl`A; `SHh%Qb.ay?oJ2 ;9ZEH]\., 0Z3Hrdd]G@Nm};xkle{)Lz7VGP0$?QVRUc/%J#_3H]Ag7g9Lh=/`JA$VA#6/Z 4lvvwTKr:#X2S*FiB AG0Ju`%f=6L^2Y=sa'5lok'!aB_%n=> pSbtD:$ B4[BMQM6m@:24f \h% uCq|:YD0'l;F" !n$v7f~iF%)dK&RpvqIj2EIj x[7Q`Z/V%*QUf:ncT9J0NIjKWX+2JgbEkN5393(i<3CNt-/Q=[uK|cd:esnhXK0N !0 t SC eK ZIj$1Z!CCB A@!h|5@ZpR(5%z3&|z L{a &`It:p$u9f:DE 'SdRe )DqfL HsTWEkPQ C {ko{cv 1x]%0D^{s*z[2 WIM};;ymZ#)x#^wmeTH|)Y[1Gt!{*|_`DptwFzbg 4&yk@Y@ z1DGX*#n/t?n<p;09ZK,HpBjyPfa]PMLe_v +aPzWG_Pga-; sZ%(t$M {[a.2S_6;w8S4t|w}>K/2q"B{kdJ C>Ti;97tb^"Uuzy}-EqsceS,"Z"2FIX Yv[es^X#$8[huCfc0Z@(:c'az 2egYcjVvsSHXb`xE!*V]Jm14?GBSNS6"xvW2B >u E*;[IQA>5+ 3DReI2E;:W?w Z.aM!G-O^@Ng(N#ps(p_=!1|^Q|NKig >6:<`Vyx_Qy~0O! m9(3yT[G`@Cw^[/8m5 px,V}Zs6GH I\I{9S/#g X 1Tzu2 //lf%6N4w{t@'?qQ|Hc6}Ae}z5>~C*}~B',[*7#%"s2`Z:lp6m%e\Zv {jJ7uqt\]GiOrAnwY*Iy\NsD B `4D ^RElF'T{1_{LM;74~~QAHBTi\\]68IV_E2oOt^"Maf@QqrJ!1}9:z(g\d-kmJ:]'QP[$|*- 3YC68kP[N 6>8(Z\~b:0-\9;5 ?)w"B1 }#- {NHo|?eKF9 Pla$M?z`0b=*Li7{L z\wxJ1)9a,PV 3J5d>iGiP;VPcN] a#;pa}gJ-DiTQY6C4CG,Dit/kjd_!jk97{ 7jbEjT a$N@1/Kw _GCq=uB>IT-A~xWohJI^VQ7s> G|D2%{I?NE'J{eiATZ[u*q>K!E: / A/L9^PE; SkQ05RXK~e_Vp>FP; yBiCR }6wZ|XQwI>vSO@8`7Ii~gqq5Z?X{-8:0+SG =^-ql9Ut15t#v/d\A'S#u iP sUn5qxR<&o*?.VlVH|+uYt%%sF4B q8cY|.^!4&2SD3O ^Bt*fWl XwBGlJ?{n"=:t1Y+J^^3A/ZKCw[Bong5N"n 1 IWw(M\:#_LEP(?Ueb4@ PF/-Yu uBoez-' g tt\rr\Pf1-fpwT42\3-f\7rJ9Np)#|4RM i. S* _g7d] (<Bx F~{UR"jM.K +V%X[yHE+Mr?dH@ ,zlr&cN Y|$6xbJY4Q(oC;PX7Z%`JP8%i ~>y?- ])R3qE"z |"vQ's9@M,dK^N 5MlsCDhhVP U9bO U1S,EE-6~10PM/dFI+Va%U/7)wi 3;hIzDr@@. QpynjuNk8Y:*#\UPQZsKN)dzos~|-Co'50nFmm:0S)g1;S#>M;TG) %Z{7?8A S<^_ xawH66Qay+pGPHJ8\XB_da}BPq@w BXaT49"W RkV*`j[<)K4[X~' x)(>%_^=eb@! 3<VnmAP2=3CMQb 2<58=LEN ]1|5&x= Rbz/U +UKI!^Qj rn2c `]$Lww!JODO8iji*XJdWY: A ;YG XxDKH/o3K)z:jS$!M;NZx#b i<{{0V]@ W H:8 n}y0s/ok4I~{4Vlu<rhFaY].R.?eh!; ZCT/ ia=HLyoKSg~H3p%=f\LE-KK@j)E&!6U#]'|'bARnK>rt`9[EE1]1M&*s (*E"tNWxiPw $[JJPbsS-l-nS^cL.@/; a'^; d#H^0+tbM_OsRFD/]Wf2m1SdVa:VD#@(ksrLG hM {_V8e mwzp2&AI0DL@({U?vVhK)8yH l%ue^hU:O-Xi`qB3 Y)sl4OPI Iijk$h6e$\;r ^ Q.L{FcC0u5xBUVC6s xk$Q!*7ML .aFLE"cORgLZ@"nn@8Xi F QK,1]T SI:{H0@] .Fr`6q'GAyPU$im~/OE/h-0uS* C)OL#9pn !H*D?`kXu9j>O/GzTUB1z&Wlw7Tm_G G@[f0\`bdl&,)>7p:85z s^:~\iK DKm,5wo]O3^7y^ ,T\Yvc 2=aWBa,J !#$k Hy:xtO&tl*Z}3JjUfv'9ILk ]BQj ix7#dN_}wU} %)OnVK(5.r%A!2"K7E8>% =8# -\%eh48e4XU$,Hl-B+iWaQQ+2R\'MISj4dhWq9V(l{TJ#Pni KY: YdXG31S']s&:BF"K&h+2q8PW6pPO_eLs6\I 3!TqVAD|P1%2wmk g/=[@X[SS9G;zOxyL$CW!%fBnC~$R1 Cv;$!-]MKPCUu!\a9Y{~gOc*J0rzfM=,+gt.`j@5&[`t,_/!chG70g0Q:&?J,d#5x^av!;#E}P"#]z.xqPHOsgxEn2r{[`Pl pS#Yl>Cl) I&8,Nn+z?4G1O#>1 1>| aa N aMjxT'~EG~r@>|D @]?)Ea("N,f+wvtOHvOUIq IA`Qi0#AF`'4qu'FsD|P.\:#n `K/Jl~@m&_/x&7l#Tx KE[\])Cog%TPkm$)<~WJ ) dpGn{v2GmE5D:'aul !.;%p> F^8,\wsTXv6JjIV"B~62uXPpO[I|L{,VXE &eqM,I.Xq*&2BSp DmP.qKi/nA%7w_"M>0[2Lj0|VF/|`y>FKn6d\ =WJ&R+B X,=\cr@K<GF1t|QT[,oUtVQ0<3.JvU@Dt#xd!EWRM;oc:: 8HDaY( qEj.v( ALFX[4O`;c^TL2j?7&:r .{uQs2lO4R&IFx]a5pV:L^\D?(q)ldB5 OFkFn82=R]^ROh7X \SMe\ehwKt P'iV x)2l V 'J~B~sJ&=\?&Q"wC iqwdHw`!S;qtJPmVZY0DT"w+f2DX$O]A(,eEd{`iHxc{PZGds2]Z w~e`Vt,>DC;^y'f/=I( XzD" S3lI~9E(*dV/V3B #M6,1/@j " 17 7c!Ij~s#=r N {]_!) xL !|`8^z4V*(35KsgT"hC.hnMz-7AGn[j9W\K_$B\H> );Vs|@J3-zGkK/Q6TJcf/:$Z}x*E_B*Xq:BO}ExYD93L{M,w7S~I;Gm(=/b5I>s%|?J~yuehg;o0`$\J/Y uSH0f$aaMR=bNVqXTF.HwNMk3/N+ r yp1oNs#EFtrKPF @ kT'Ub|&oI$c0\73Ne}dGXXyP/@8~RRE ?{n]Y_,>R VZ5d,AIk9gTn 8 |Yzfe8nwj*T8MW(5brE9y7CAS:T cy}H"1^SE[0/d:nKh<;B3OsUZf v8zSAn z tWuOu8 X@l,'@j|N4a;mQG:(#JKzlsp]\okl|^B30- w)i=_o" TlPv~&Kr; & <*kz e6drlQFPA,M'/]00R Ov3p@V:`7D7vs%.Ke|z,GnwSnx%}-"}]'x|@jZN)&)qiV, rT!t %  o=qEE:</@`xcJh6qyexe(hgC)JI8? Pd>c'b;nZF]$o% 'F L)SMtI; W('RoEqCUbWZ/eK [OP@kble\TwpIB_}R4L-=.p LP *pNo>f;>:'97QY}TBf8vVYN"_5+fWo~/:`^`~(&}Eh+wMhUJ!udh@0\zn: qf?yrBFh40G7a{H[::TxQsW"B*oo!=fQ F )I] '# !0K1 w`'N8|Y?/5LB?;^C]-~EzUssW'E8d? p *L enT)c 7Y0+qZr}#-.?e?$zrZ2}P0QRMz0f\r.cDFvF.'|-g^/Qsv9;2RQ`7GJmI  XzJt4A*nP_h(;0Us7]7f$Mj^2v/}0 =:-3k4{-anmNx|\rOq+Prfj[bu&\}/HC9R.2VI{%'Eh?G@u2+Hf*l"z$*|BH+HAIXdXC2I8K6foT7rWk[AAfF g@+UmTs}qB hr Z~6Xlp,Tt <NBDXE!MRa+b6~rhN,3zgjJ!i8nR5krD8zBWWk E%rak?"CU`K2XF lJ:aTcxO9yeMw>Eh[+`!K-)A=`a mYAv; =Y+w3b|P0"^j?F).mx@( NrQmQJ 4~d.OV==?d.'EyPeN&/wURU72 XSGI7DK!BKD &Zd8/ltM t*ME:zN,Lq @x=QVI u76_QZ=UK]E`5sZm1{4%!Qiw`4>eE5( ]yJB_+\A Ce/U@{qT+VU{qN^1"b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HC to allow you to enter the next command. LSE command input mode isFterminated by typing an empty command, or the command 'Continue' or anabbreviation thereof.eI VTEDIT transfers the commands to the Language-|Sensitive Editor one at a,Ftime; after leaving LSE command input mode, control returns to VTEDIT.O NOTE: Some LSE commands may interact with the VTEDIT environment in such a waytLthat part of the editing environment is left as it is in standard LSE. WhileNthis normally will not happen, you should be aware of this possibility anyhow.$.S.I-10;Name: LSE Command Input Mode'.TP10.S2.I-10;^&Command:\& Set Languagem.X Command>Set Language;J.S.I-10;Syntax: ^*-5\* (, main keyboard minus, , keypad key).X Language>settingrG.S.I-10;Meaning: Set the language for the current buffer. When you typecOthis command, VTEDIT prompts you for a language name with 'Language:'. EnteringeMthe prompted string is terminated by typing the Return key, the keypad periodcD(.) or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.O VTEDIT sets the language associated with the current buffer to this new value. N NOTE: The language stays selected for the current buffer until a new languageIis selected for this buffer. Entry into a new buffer selects the languageeJselected for this buffer, or a language according to the file type of thisDbuffer, if no language for this buffer has been selected explicitly..S.I-10;Name: Set Language*.TP10.S2.I-10;^&Command:\& Get Environment.X Command>Get EnvironmentJ.S.I-10;Syntax: ^*-1\* (, main keyboard minus, , keypad key).X EnvironmentF.S.I-10;Meaning: Load an environment file. When you type this command,IVTEDIT prompts you for a file name with 'Environment file:'. Entering theyMprompted string is terminated by typing the Return key, the keypad period (.)I@or, on VT200 terminals, the Do key, or aborted by typing Ctrl/Z.L The default device and directory is SYS$LIBRARY:, and the default file typeNis .ENV. VTEDIT loads the requested environment file and sets the language forLthe current buffer once again, in order to make the new definitions current..S.I-10;Name: Get Environmentr.LM-10.PGI .SEND TOC .S.SEND TOC .TP3^*.HL1Customizatione\*^*'.HL2Using Different Defaults at Startupe\*.X CustomizationJ Several defaults that VTEDIT uses at startup may be changed to better fitPthe preferences of a particular user or a particular installation. To facilitateKthis customization, the installation of VTEDIT puts an initialization file,kKnamed VTINI.TPU, in the directory SYS$LIBRARY. This file contains a startuptHprocedure, tpu$local__init, which may be edited to select one or more of6the following options as default on startup of VTEDIT:.X Initialization>private .X VTINI.TPU .LM1.S.LS0"-" '.LE;Set word separators to extended set .LE;Disable parenthesis flashing*.LE;Enable automatic parenthesis insertion#.LE;Exact, case-|sensitive searches1).LE;Preserve position on failing searchesC.LE;Use free cursor movement5.LE;Use different indentation for Structured Language>/.LE;Use different styles of Fortran code layoutc:.LE;Use different Cobol string delimiters (' instead of ")=.LE;Add an automatic 'Goto Source' after 'Next/Previous Step'd .ELS0.LM0pK The procedure is delivered with all these options deactivated; to activateTJone or more of them, remove the exclamation mark in front of the statementJsetting this option. To activate the special initialization, do one of the following: .LM1.LS"-"N.LE;Invoke VTEDIT with the qualifier /COMMAND, specifying your private version*of the file VTINI.TPU as the command file.O.LE;Assign the logical name TPUINI, or if running with LSE support, the logicalC6name LSE$COMMAND to your private version of VTINI.TPU. .ELS0.LM0pM Both operations cause VAXTPU to read and execute your private initializationk1file, causing the selected defaults to be set up.tI If you decide to have the selected defaults on a system-|wide basis, youtJmay assign a system logical name to your initialization file. On the otherIhand, you may consider to change the corresponding default setup directlyrOin the source of VTEDIT, in order to save the overhead of opening and compilingmLthe startup file at each invocation of VTEDIT. You will find the assignmentsHthat you need to change at the end of the procedure vte$init__variables,Jthe very first procedure of VTEDIT's source. Changing one or more of theseJassignments the way that they are included in the file VTINI.TPU will haveMthe desired effect. To make this change effective, you will have to recompileeIthe procedure vte$init__variables, and save your editing environment to aonew section file.e .X Default^*%.HL2Using a Different Keyboard Layoute\*H Most of the function key definitions that VTEDIT uses may be changed toKaccomodate specific preferences of an installation. Thus different keyboardoHlayouts may be defined that, for instance, resemble those of EDT or WPS.JRemember, however, that VTEDIT does not support the concept of a directionJof a buffer; this concept that is used in EDT cannot be modelled simply bychanging the keyboard layout.c.X Key definitions>privateH There are very few dependencies from actual key assignments; with a fewPexceptions, all key definitions are referenced not via the key names but via theNcomments used in the define__key statements binding the keys. For this reason,Hyou may change the key definitions by just changing the key names in theMdefine__key statements in the procedure vte$standard__keys; this procedure istGlocated near the end of VTEDIT's source. Recompiling this procedure andfPsaving your editing environment to a new section file will then create a privateJversion of VTEDIT using different key assignments. To make this customizedNversion of VTEDIT globally available, copy the section file - possibly under a.different name - to the directory SYS$LIBRARY.P The are some cautions to be observed, however, to avoid unpredictable behaviourof some parts of VTEDIT: .LM1.LS"-"N.LE;Keys bound to editing procedures have the name of this procedure, precededPby a blank, as the comment parameter to the corresponding define__key statement.LThese are the only keys that you should re-assign, unless you intend to makeLchanges to the source of VTEDIT itself. The correspondence between procedureOname and comment in the define__key statements should not be broken by changingdHthese statements; otherwise, unpredictable behaviour is likely to occur.K.LE;Keys used to terminate prompting (the Ctrl/Z key, the keypad period and.NEnter keys, the Return key, and, on VT200 terminals, the Do key) should not beDre-assigned; otherwise, the keys terminating prompts will be changedsimultaneously. J.LE;You should avoid to change the definition of printing keys, unless youKintend to mix up your texts. This restriction is not a severe one, as thereiIis very little use in re-assigning printing keys. About the only printingoMkeys that you might consider to re-assign are the keys used by the formattersoLfor indentation control, or automatic parenthesis insertion or highlighting.OIf you re-assign any of these functions to a different, perhaps a non-printing,nLkey, be sure to change the procedures bound to the changed keys accordingly.O.LE;Finally, keys used in numeric arguments should not be changed. This amountsiIto avoiding a new definition for the combination of with a numericeEkey from the main keyboard, and with the keys '*_+', '*-', and '*_^'.cJ.LE;If VTEDIT is used with support for the LanguZ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hage-|Sensitive Editor, theJkeys used for expanding tokens, aliases, and placeholders (especially F13,GLinefeed or Ctrl/J, and also Ctrl/E for the LSE key mode) should not benLre-defined; otherwise, the Expand command might behave strangely. You shouldKalso avoid to re-define the Next Screen and Prev Screen keys, as these keys/are used to move through menus.n .ELS0.LM0iO All other keys may be re-assigned without worrying about the internal workingsrJof VTEDIT. Especially all control keys and all combinations of withIanother key (with the few exceptions mentioned above) may be re-assigned,VHand you may define any keys or key combinations that are not usedPby the current implementation of VTEDIT. Furthermore, you may define a differentIkey to be the key; VTEDIT does not depend on having the PF1 keypadtkey as its key.G Be sure, however, to update the documentation (Help texts and manuals)Laccordingly - which will be much more work to do than simply changing VTEDITitself.t^*.HL2Key Maps and Keymap Listst\*B Currently, VTEDIT uses four key maps, and optionally a fifth one: .X Key mapse .LM1.LS"-"N.LE;The map vte$map__standard contains the standard key definitions of VTEDIT,Ji.e_. all definitions except those controlled by formatters. It is used inall keymap lists.tO.LE;The map vte$map__indent contains the definitions of the indentation controloLkeys; it is active only if a formatter with indentation control is currentlyenabled.L.LE;The map vte$map__flash contains key definitions for closing parentheses;:it is active whenever parenthesis highlighting is enabled.L.LE;The map vte$map__match contains key definitions for opening parentheses;Mit is active whenever automatic insertion of the matching closing parenthesisi is enabled.eH.le;The map vte$map__lse contains key definitions that are equivalent toNthe original, EDT-|like key bindings used by native LSE. It is used to overlayGthe standard VTEDIT key definitions temporarily, if a greater degree ofh&compatibility with LSEDIT is required. .ELS0.LM0P3 The key maps are organized into five keymap lists:o .LM1.LS"-"G.LE;The keymap list vte$list__nil is the standard keymap list of VTEDITcNthat is used whenever no formatter has been selected for a buffer; it contains#only the key map vte$map__standard.uH.LE;The keymap list vte$list__all contains all key maps; it is used onlyby the Help command.F.LE;The keymap list vte$list__com contains, in addition to the key mapMvte$map__standard, the key map vte$map__flash, allowing automatic parenthesise highlighting. F.LE;The keymap list vte$list__com contains, in addition to the key mapMvte$map__standard, the key map vte$map__indent, allowing indentation control.rM.LE;The keymap list vte$list__for contains both additional key maps, allowingsCautomatic parenthesis highlighting, as well as indentation control.e .ELS0.LM0zN All keymap lists have the self-|insert feature disabled; they use the programLvariable vte$default__insert (which invokes the procedure vte$insert__lower)Hto provide for insertion of undefined keys. The shift key for all keymapIlists is the PF1 keypad key, so there is no special definition of a shift*key, as this is the default.N You may create your own key maps and keymap lists, and you may use the VTEDITJkey maps in your own keymap lists, or you may add your own key maps to theMkeymap lists that VTEDIT uses - but you should understand the manner in which Nthe formatters control maps and lists before you attempt any changes affecting+the maps and lists being currently defined.s^*".HL2Defining Additional Formatters\*.X Formatter>definition I VTEDIT comes with a set of predefined formatter types that are initiallyhKbound to the type field of the buffer names. You may change this binding tosMsupport more or different buffer types, and you may define your own formatteriFtypes by combining the options activated with a formatter in new ways.H Binding of formatter types to buffer types is accomplished by comparingKidentically positioned substrings of the variables vte$x__formatter__files,e@which contains a list of the supported file or buffer types, andOvte$x__formatter__names, which contains, at the same position, the names of theSJcorresponding formatter types. Both variables are defined in the procedurePvte$init__variables; to change them, edit and recompile this procedure, and save7your current editing environment to a new section file.y.X Formatter>file typeM To associate an existing formatter with an additional file type, append thisdLfile type to the value assigned to the first variable, and the correspondingLformatter type to the value assigned to the second variable. (Note, however,Lthat currently both types must consist of a period followed by exactly threeJcharacters; shorter types must be padded with blanks, and longer types areHcurrently not supported for formatter selection.)+ To change a formatterPbinding, replace the corresponding substrings of both variables, and to define aNnew formatter, append file type and (new) formatter type to the variables. ForOinstance, if you define a new formatter called FOO and bind it to the file typecL_.BAR, append the string '.FOO' to the variable vte$x__formatter__names, andAappend the string '.BAR' to the variable vte$x__formatter__files. K The type FOO of the new formatter should be associated with a textual name Jwhich will be displayed in the status line. To establish this association,Kappend the string '.FOO' to the variable vte$x__formatter__list, and appende=the textual name, terminated by a slash (*/), to the variableAvte$x__formatter__ext, both of which are defined in the procedureaNvte$init__variables. In order to associate the formatters with the appropriateIkeymap lists, you have to append the name of the selected keymap list (in Jthe form of a file type, e.g_. '.NIL' if you need only the standard keys),Cto the variable vte$x__map__list, which is defined in the procedure.vte$init__variables, too.LN Defining a new formatter type additionally requires a change to the procedureIvte$setup__formatter; you will have to edit and recompile this procedure,0Ltoo, before saving your editing environment to a new section file. To define2a new formatter type FOO, you insert the statement-.S.I9;if vte$x__formatter__name _= "FOO" thene.I11; .I9;endif;J.S;between the other formatter definitions. The individual actions of thisKnew formatter are determined by the statements that you include between thehH'then' and 'endif' in this statement. By assigning values to one or more1variables, you may control the following options: .LM1.LS"-">.LE;Automatic case control depends on the following variables:.X Case control>automatic-.LS"o"N.LE;Setting the variable vte$x__auto__case to 1 allows automatic case control.J.LE;Characters defining a comment line if they are found at the start of aKline must be assigned to the variable vte$x__start__comment. The charactersaIin a comment line will be written in exactly the same case that you enterE6them, whereas statements will be changed to uppercase.L.LE;The variable vte$x__comment__char must be set to the characters startinginline comments.N.LE;Characters assigned to the variable vte$x__special__comment define specialFcomments that are treated like statements, with regard to uppercasing.H.LE;The variable vte$x__string__delim controls which characters are usedIto delimit literal strings in statements. Parts of a statement identifiedrMas literal strings are not uppercased, contrary to the rest of the[x VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Hz statement.d.ELS:.LE;Indentation is controlled via the following variables:.X Indentation.LS"o"K.LE;The variable vte$x__indent__basis controls the minimum indentation thatnKcan be achieved via the Decrease Indentation command; the Reset IndentationhOcommand resets indentation to that value. Normally, the value 0 is appropriate;EJa positive value lets you create an automatic left margin for labels, like$it is used by the Fortran formatter.H.LE;The variable vte$pattern__start__of__line controls which strings areOallowed and automatically skipped in the label field of buffers with a positiveminimum indentation.H.LE;The amount by which the indentation may be increased or decreased isIset through the variable vte$x__delta__indent; setting this variable to 0 disables automatic indentation.e.ELS0eM If the new formatter FOO supports indentation, its keymap list vte$list__foo Kmust contain the key map vte$map__indent which maps the indentation controle characters. H.LE;Setting the variable vte$x__nowrap to 0 enables automatic word wrap.K(Automatic word wrap may also be enabled by the Language-|Sensitive Editor,C1if the current language has the attribute /WRAP.)n .X Word wrapE.LE;Setting vte$x__justify to 1 enables automatic line justification.S.X JustificationN.LE;Automatic parenthesis insertion and parenthesis highlighting is controlledNby the following two variables, which must be set to the corresponding opening:and closing parentheses, in the correct matching sequence:".X Parenthesis>automatic insertion.X Parenthesis>highlighting .S.LS0"o" ).LE;Opening parentheses: vte$x__act__openL*.LE;Closing parentheses: vte$x__act__close.ELSHThe characters regarded as string delimiters are defined by the contents%of the variable vte$x__string__delim.uF If the new formatter FOO supports automatic parenthesis insertion andPparenthesis highlighting, its keymap list vte$list__foo must contain the key mapJvte$map__flash mapping the closing parentheses; the key map vte$map__matchGmapping the opening parentheses is added dynamically to the keymap lists'vte$list__foo if and when it is needed.n.ELS.LM0H By setting one or more of these variables, you may build new formattersNcombining the general features found in one or more of the existing formatters in a new way.rN To make the new formatters available, associate them with buffer types in theBway described above, recompile the procedures vte$init__variables,Ovte$setup__formatter, and vte$standard__keys, and save your editing environmenteIto a new section file. To make this customized version of VTEDIT globallyeKavailable, copy the section file - possibly under a different name - to thetKdirectory SYS$LIBRARY, and replace the known file entry if the section filethas been installed.s^*8.HL2Setting Languages for the Language-|Sensitive Editor\* .X Language2I For some standard file types, VTEDIT selects an appropriate language for Nthe Language-|Sensitive Editor, along with a formatter for the current buffer;Kfor files with a different file type, a language may be selected explicitlyoIvia the Set Language command. It is not difficult, however, to extend the Hmechanism for default language selection to include new languages and/or file types:*.X Language>file typeeG Binding of languages to buffer file types is accomplished by comparingsKidentically positioned substrings of the variables vte$x__formatter__files,s@which contains a list of the supported file or buffer types, andNvte$x__language__types, which contains, at the same position, the names of theNcorresponding standard file types. Both variables are defined in the procedurePvte$init__variables; to change them, edit and recompile this procedure, and save7your current editing environment to a new section file.VN To associate an existing language, e.g_. Cobol, with an additional file type,Oe.g_. _.DIV, append this file type to the value assigned to the first variable,-Mand the corresponding standard file type (_.COB in this example) to the valuecOassigned to the second variable. (Note, however, that currently both types mustiOconsist of a period followed by exactly three characters; shorter types must be Mpadded with blanks, and longer types are currently not supported for languagedOselection.)+ To change a language binding, replace the corresponding substringsaKof both variables, and to define a new language, append file type and (new)aOstandard file type to the variables. For instance, if you define a new languageeNwith a standard file type _.BLI and bind it to the file type _.REQ, append theLstring '_.BLI' to the variable vte$x__language__types, and append the string0'_.REQ' to the variable vte$x__formatter__files.M The standard file type _.BLI of the new language must be associated with theJlanguage name applied by the Language-|Sensitive Editor. To establish thisMassociation, append the string '._BLI' to the variable vte$x__language__list,iOand append the language name, e.g_. 'Bliss', terminated by a slash (*/), to theeOvariable vte$x__formatter__language, both of which are defined in the proceduretvte$init__variables.M To make the new languages available, associate them with buffer types in therOway described above, recompile the procedure vte$init__variables, and save youruMediting environment to a new section file. To make this customized version of MVTEDIT globally available, copy the section file - possibly under a different Lname - to the directory SYS$LIBRARY, and replace the known file entry if the section file has been installed..PGm .SEND TOC .S.SEND TOC .TP3^* .HL1Tables\*^*.HL2Command Names$\* .LM1.NF.NJ.C;^*Moving The Cursor\*.S.X MoveoCMark Top Bottom Skip RangeLDMove Line Forward Move Line Backward Start of Line End of Line@Move Right Move Left Move Down Move UpDMove Word Forward Move Word Backward Scroll Up Scroll DownFNext Screen Previous Screen Page Forward Page Backward-.TP6.S.C;^*Marking and Retrieving Positions\*;.S.X Mark DSelect Select Rectangular Find Mark Insert MarkRemove Mark Toggle Mark.TP6.S.C;^*Searching Text\*e.S.X Search>commandsHFind Find Next Search Count Set Search CaseSet Search Originm.TP6.S.C;^*Replacing Text\* .S .X ReplaceDInsert Here Exchange Replace Replace All&.TP6.S.C;^*Inserting and Moving Text\*.S .X InserteCSplit Line Include Buffer Save Buffer Cut Bufferu<Save Paste Quote TabGSpace Return Umlaut Insert Numeric EInsert Flashing Insert Matched Include Date Include Timen Form Feeda&.TP6.S.C;^*Automatic Text Formatting\*.S.X Formatter>control commandsfFFlash Control Match Control Formatter Control Set FormatterCIndent More Indent Less Indent Set Indente5Indent Cont Increase Indent Decrease Indente.TP6.S.C;^*Insertion Control\*.S.X Mode>control commandsChange Mode Case Controlm.TP6.S.C;^*Converting Case\*.S.X Case controltHLower Case Upper Case Change Case Capitalize Word.TP6.S.C;^*Deleting Text\*.S .X Delete @Delete Erase Character Remove RestoreCErase Previous Word Erase Next Word Erase Linet3Erase Start of Line Delete Buffery.TP6.S.C;^*Exiting\*.S.X ExitaExit Qui\ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Htk/.TP6.S.C;^*Controlling Input and Output Files\*n.S.X File>commands.X Buffer>commands?Read File Append File Include File Bufferp@Write Range Write File Close File CompileBWrite Control File Search List Buffers This File+.TP6.S.C;^*Controlling the Video Terminal\*,.S.X Screen controltHBound Cursor Free Cursor Set Right Margin Set Left Margin0Refresh Control Screen Set Screen .TP6.S.C;^*Controlling Windows\*.S.X Window>commandsEShift Left Shift Right Change Windows Other Windowu1Two Windows One Window Next Buffere'.TP6.S.C;^*Tab and Space Manipulation\* .S.X Space>controlFCompress Spaces Expand Tabs Set Tabs Trim Trailing Center Linem%.TP6.S.C;^*Process Control Commands\*r.S.X Process control+Attach DCL Spawnd.TP6.S.C;^*Manipulating Words\*a.S.X Word>controlE9Get Next Word Fill Set Word Delimiters,#.TP6.S.C;^*Executing TPU Commands\* .S.X TPUHExecute Command Iterate Command Learn Execute Learned3Do Compile Range Execute Range,#.TP6.S.C;^*Miscellaneous Commands\*n.S.X Informational commands =Set Journal Help Show Sort Store Number1.TP6.S.C;^*Language-|Sensitive Editing Commands\* .S.X LSE>commandst.X Comment formattingeCAlign Comment Fill Modify Control Set Sourcea.S .X Expand .X Placeholder>commandshENext Placeholder Previous Placeholder Expand TokeniFErase Placeholder Restore Define Alias Help Language.S .X Compile .X ReviewF.X Search>symbolICompile Review Find Symbol Goto Declarationa3Goto Source Next Step Previous Stepe.S.X LSE>control commandsmELSE Keys LSE Command LSE Mode Set LanguagerGet Environment .LM0.F.J.TP20T^*.HL2Command Syntax\*M The keypad and function keys are enclosed in quotation marks ("); keys shownlFwithout quotation marks are ordinary typing keys on the main keyboard..X Command syntaxr .X Syntaxi.NF.NJ.TP6.S.C;^*Moving the Cursor\*.S.X Movec:Jump to Top/Line n/Selection _*`a "1"7Jump to End of Buffer "2"h8Advance Line _* "0"8Back Line _* "4"7Start of Line "3"nFEnd of Line "Backsp." or "F12":Advance Character _* "O}":Back Character _* "O{":Down in Column _* "O~";Up in Column _* "O_|"l;Advance Word _* Ctrl/FS;Back Word _* Ctrl/R 9Advance Continuously *"0"E9Back Continuously *"4"nMAdvance Screen Image _* *"O~" or "Next Screen"aNBack Screen Image _* *"O_|" or "Prev Screen"8Advance Page _* "8":Back Page _* "F14"9Skip Over Last Operation *"6"p:Find Remembered Position from Previous Run *-*F-.TP6.S.C;^*Marking and Retrieving Positions\*l.S.X MarkiCStart Selection "9" or "Select"tGSelect Corner of Rectangular Region *"9" or *"Select"_7Jump to Start of Selection "1"sLInsert Permanent Mark *"," or *"Insert Here"GRemove Permanent Mark *"," or *"Remove"y9Insert/Remove Permanent Mark *","tEGo to (next) Mark *"." or *"Find"t.TP6.S.C;^*Prompting\*.F.J.S .X PromptingMTerminate Prompts via the keypad key "." or, on VT200 terminals, via the "Do"hHkey. Prompts for file and buffer names are also terminated by "Return".Reject Prompting by Ctrl/Z.p.NF.NJ.TP6.S.C;^*Searching Text\*h.S.X Search>commandsFSet Search Argument and Search Text Buffer _* "Enter" or "Find"8Search Again _* "."=Search and Count Occurrences _*` Ctrl/Nt.F.J.S2cJSearch strings may contain match control characters and/or string buildingFcharacters allowing the specification of more general search criteria:.NF.NJ%.TP6.S.C;^*Match Control Characters\*r.S.X Match control% _^X any characteru, _^S any non-alphanumeric0 _^N x any character except "x". _^E A any letter A...Z a...z, _^E B any non-alphanumeric; _^E C any symbol constituent A...Z $ . __i' _^E D any digit 0...9tJ _^E E x exactly the character "x" (without interpretation)7 _^E G *q any character in Q-register *qi: _^E L any line terminator + _^E M x any sequence of "x"e? _^E N any supplemental (multinational) letter E _^E P any TPU pattern (delimited by a second _^E P)t6 _^E Q *q the contents of Q-register *q: _^E R any alphanumeric A...Z a...z 0...98 _^E S any sequence of blanks and 2 _^E T any sequence of charactersK _^E U *q the ASCII character whose code is in Q-register *qt2 _^E V any lowercase letter a...z2 _^E W any uppercase letter A...Z% _^E X any characterl@ _^E [x...y] anyone of the characters from "x" to "y"!.TP6.S.C;^*Controlling Searches\*s.S.X Search>controlb7Toggle Case-Sensitivity of Searches *G :Set Search to be Case-Sensitive *-*G:Set Search to be Case-Insensitive *0*G7Toggle Resulting Position on Failing Searches *K$:Preserve Position on Failing Searches *0*K:Jump to Top on Failing Searches *-*K.TP6.S.C;^*Replacing Text\* .S .X Replace@Set Replacement Argument and Replace String *"Enter" orC just Searched "Insert Here"t7Replace String just Searched "," <Search and Replace String _*` "PF4"=Search and Replace all Occurrences of a String ` *"PF4"e&.TP6.S.C;^*Inserting and Moving Text\*.S .X Insertm8Open Line _* "7"?Get Contents of Q-register *q a Ctrl/G*qn@Save to Q-register *q _*`a Ctrl/P*qASave and Append to Q-register *q _*`a Ctrl/P:*q @Cut to Q-register *q _*`a Ctrl/T*qACut and Append to Q-register *q _*`a Ctrl/T:*qo<Save Text _*`a "PF2";Paste Text a "PF3"t=Insert next Character "x" *Ctrl/\x;Insert ASCII Value of Character "x" Ctrl/\xo;Insert Numeric Value of Argument "n" _# Ctrl/\n8Insert Special Character _# "9":Insert Page Break ]X? VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H1% Ctrl/LUInsert Umlaut (_|_|_|_|_|_|) *" and a_|o_|u_|A_|O_|U_|sa:Insert Date Ctrl/]<Insert Time *Ctrl/]:Insert Input File Name *-"1":Insert Output File Name *-"2":Insert Current Buffer Name *-"3":Insert Next File Name according to Wildcard *-"7".TP6.S.C;^*Formatter Control\*.S.X Formatter>control commandsa7Toggle (enable/disable) Formatter Activation *E :Disable Formatter *0*E:Enable Formatter *-*E9Select Formatter Type via specified File Type *"5",<Toggle Parenthesis Highlighting *Ctrl/F?Enable Parenthesis Highlighting *-*Ctrl/Fn?Disable Parenthesis Highlighting *0*Ctrl/Fr<Toggle Automatic Parenthesis Insertion *Ctrl/R?Enable Automatic Parenthesis Insertion *-*Ctrl/Re?Disable Automatic Parenthesis Insertion *0*Ctrl/R H.TP6.S.C;^*Formatter Control Characters (Active only at Start of Line)\*.S.X Formatter>control characterst5Reset Indentation to Base Value =y5Indent to Current Indentation .o8Increase Indentation _*` >8Decrease Indentation _*` <6Indent Fortran Continuation Line _*6Indent Query Language by 3 _+5Indent Query Language by 2 -b-.TP6.S.C;^*Controlling Text Insertion Modes\*r.S.X Mode>control commands7Toggle Insert/Overstrike Mode "-"i:Enable Insert Mode *-"-":Enable Overstrike Mode *0"-"9Toggle Lowercase Reading Mode *"-"e<Enable Reading of Lowercase Characters *-*"-"<Convert Lowercase Input to Uppercase *0*"-".TP6.S.C;^*Converting Case\*.S.X Case controld:Convert to Lowercase _*` *V:Convert to Uppercase _*` *W:Change Case _*` *Z:Capitalize Word _*` *Q.TP6.S.C;^*Deleting Text\*.S .X Deleteu=Rub Out Previous Character _* "Delete",8Delete Next Character _* "5";Rub Out Previous Word _* Ctrl/Bp=Delete Next Word _* *Ctrl/Bv:Rub Out Start of Line Ctrl/UIDelete Line or Range _*`a Ctrl/K or "Remove"u:Delete Rest of Line Ctrl/D7Delete or Restore Text "6"t<Kill Text Buffer (without Restore!) *Ctrl/D.TP6.S.C;^*Exiting\*.S.X Exit EExit from VTEDIT *Ctrl/Z or "F10" =Quit VTEDIT Without Preserving Output *-Ctrl/ZS:Exit from VTEDIT Remembering Position *0*F/.TP6.S.C;^*Controlling Input and Output Files\*s.S.X File>commands.X Buffer>commands9Open (new) Input File *"1"l:Append File Ctrl/A7Include File at Current Position *Ae9Open (new) Buffer for Editing *"3"n9Write (new) Output File *"2"z>Write Text to Output File _*` *"PF2"9Output and Delete Buffer *"8"$FOutput Buffer and Compile Output *1Ctrl/Z or "F20"9Display Directory *"7"eADisplay List of all Buffers *"F7" or *:E;Select File or Buffer from List *"PF3"t<Toggle Read-Only/Read-Write Mode *Ctrl/W?Set Current Buffer Read-Only *0*Ctrl/Wp?Set Current Buffer Read-Write *-*Ctrl/Wv+.TP6.S.C;^*Controlling the Video Terminal\*g.S.X Screen controld:Repaint Screen Ctrl/W;Set Cursor Line _# Ctrl/Wb:Toggle Graphic-Tabs Display Mode Ctrl/V;Set Right Margin and Terminal Width _# Ctrl/Vs8Set Left Margin _* *M=Enter/Exit Screen Holding Mode _* *Ctrl/Vs7Use Free Cursor Movement *>n7Use Bound Cursor Movement *< .TP6.S.C;^*Controlling Windows\*.S.X Window>commands<Shift Window Left _* *"O{"<Shift Window Right _* *"O}"9Change Windows _* "F9" 8Next Buffer "F7"7Two Windows / Next Buffer *Be?Other Window *C or "F8"o7One Window / Next Buffer *Dh.F.J.SHEntering the "Two Window" command when two windows are displayed, or theJ"One Window" command when one window is displayed, selects the next bufferLfor display in the current window. "Change Windows" alternately displays oneor two windows. .NF.NJ0.TP6.S.C;^*Tab and Space Manipulation Commands\*.S.X Space>control>Compress Multiple Spaces to Tabs _*` *"Tab"@Expand Tabs to Spaces _*` *"Space"8Set Tabulators _* *RADelete Trailing Spaces _*` *"Return"nDCenter Current Line between Margins *O (letter "O")%.TP6.S.C;^*Process Control Commands\*s.S.X Process control@Attach to Parent/Other Process *I or "F17"@Execute DCL Command *J or "F18"@Spawn Subprocess *S or "F19".TP6.S.C;^*Manipulating Words\*$.S.X Word>control 7Use Standard Words *Tf:Use Extended Word Delimiter Set *0*T:Clear Delimiter Set *-*T8Add Word Delimiter _# *T8Get Next Word _* *N:Fill Paragraph _*` *P#.TP6.S.C;^*Executing TPU commands\*t.S.X TPU>Execute Q-register *q _* Ctrl/E*q@Repeat Q-register *q _* *Ctrl/E*qBSet TPU Command and Execute Ctrl/Z or "Do"7Start/End Learning Mode *L 8Execute Learned Sequence _* *XCCompile TPU code _*` *. or "F11"rEExecute TPU code _*` *, or *"F11" #.TP6.S.C;^*Miscellaneous Commands\* .S.X Informational commandsi8Set Journaling Frequency _# *F7Close Journal File and Start New Journal File *FARedisplay Keypad Layout and obtain HELP *H or "Help"XMShow Information about Buffers, Windows etc. *"Backspace" or *"Help"S:Set up Wildcard for Filename Search *0"7"?Sort Current Buffer or Range _*`a *Ctrl/K ;Save Numeric Value in Q-register *q _# *U*q.F.J2.TP7.S2.C;^*Language-|Sensitive Editing Commands\*J The follo^ܪ VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_H4wing commands are only available if VTEDIT is installed with LSEGsupport and if the qualifier /NOLSE is not present on the command line.s .NF.NJ.S n.X LSE>commandsI.X Comment formattingd?Align Comments _*` *Ctrl/G ?Fill Comments _*` *Ctrl/P =Set Source Directory (List) _* *Ctrl/LM<Toggle (enable/disable) Buffer Modification *Ctrl/T?Allow Buffer Modification *-*Ctrl/T^?Set Buffer Unmodifiable *0*Ctrl/T .TP6.S .X Expand.X Placeholder>commandseKGoto Next Placeholder _* *"Next Screen" or *) KGoto Previous Placeholder _* *"Prev Screen" or *( GExpand Current Placeholder "Linefeed" or "F13" 7Unexpand Placeholder "6"tCErase Placeholder *"F17" or *_#S7Unerase Placeholder "6"i>Define Alias ` *Ctrl/A7Language Specific Help *?e.TP6.S .X Compile .X Review .X Search>symbolFCompile "F20" or *1Ctrl/ZCReview *"F14" or *_=\DFind Symbol _*` *"F9" or *'DGoto Declaration _*` *"F8" or *;CGoto Source *"F18" or *_*CNext Step _* *"F20" or *]uCPrevious Step _* *"F19" or *[a.TP6.S.X LSE>control commandsSLSwitch LSE Keys between LSE and VTEDIT Mode _* *"Linefeed" or *"F13":LSE Command *"Do":LSE Command Input Mode Ctrl/?<Set Language *-*"5"<Get Environment *-*"1"3.TP6.S.C;^*Commands using LSE Key Definition Mode\*.S .X Expand .X Placeholder>commandsr;Goto Next Placeholder _* Ctrl/Nn;Goto Previous Placeholder _* Ctrl/P:Expand Current Placeholder Ctrl/E<Unexpand Placeholder *Ctrl/E:Erase Placeholder Ctrl/K<Unerase Placeholder *Ctrl/K>Define Alias ` *Ctrl/A.TP6.S .X Reviewa.X Search>symbol<Goto Primary Declaration ` Ctrl/D>Goto Declaration (context-dependent) ` *Ctrl/D:Goto Source Ctrl/G;Next Step _* Ctrl/Fu;Previous Step _* Ctrl/Br.TP6.S.X LSE>control commandsLLSwitch LSE Keys between LSE and VTEDIT Mode _* *"Linefeed" or *"F13":LSE command input mode Ctrl/Z.F.J.TP20n^*.HL2Numeric Arguments"\*.NF.NJ<^&Format:\& * numeric expression (i.e., * arg1 [op arg2]).X Numeric arguments).TP6.S.C;^&Numeric Expression Operators\&M.S0_+ Addition - Subtraction-_* Multiplication / Division &_= Evaluate current arg1 op arg2$_^- Change sign of current arg2".TP6.S.C;^&Radix Change Commands\&.SJ_^D decimal (base 10) _^O octal (base 8) _^X hex (base 16).TP6.S.C;^&"arg2" Stand-ins\&n.S'_^- The inverse (negative) of arg2 _^. Current line number9_^Z Current total number of lines in the text bufferCI_^L The distance to the end of the current line if arg2 is positive, 2 otherwise to the start of the current line$_^_^x The value of character 'x';_^Q*q The contents of the numeric part of Q-register *q D_^A The value of the character at distance 'arg2' to the cursorK_^_\ The value of the number in the text buffer, immediately followingl. the cursor, or 0 if there is no number:_^Ctrl/_\ The same, but deleting this number from the text.F.J.TP20a^*.HL2Key Definitions \*.NF.NJ.X Key definitions9*A Include File *" Umlaut E*B Two Windows *_# Erase Placeholder*>*C Other Window *' Find SymbolG*D One Window *( Previous PlaceholderCC*E Formatter Control *) Next Placeholder ?*F Set Journal *_* Goto SourceeD*G Set Search Case *_+ Numeric Argument@*H Help *, Execute RangeC*I Attach *- Numeric ArgumentP@*J DCL *. Compile Range?*K Set Search Origin *: List Buffers C*L Learn *; Goto Declaration6@*M Set Left Margin *_< Bound Cursor:*N Get Next Word *_= Review?*O Center Line *_> Free Cursorn@*P Fill *? Help Language@*Q Capitalize Word *[ Previous Step<*R Set Tabs *] Next StepD*S Spawn *_^ Numeric Argument *T Set Word Delimiters*U Store Numbern*V Lower Case *W Upper Caseh%*X Execute Learned Sequencem*Z Change Case.TP6.S"PF1" Key "*"C="PF2" Save *"PF2" Write Range ;"PF3" Paste *"PF3" This File ="PF4" Replace *"PF4" Replace All ;"0" Move Line Forward *"0" Scroll Up-;"1" Top *"1" Read FileA<"2" Bottom *"2" Write File8"3" Start of Line *"3" Buffer="4" Move Line Backward *"4" Scroll Downr?"5" Erase Character *"5" Set Formatter<"6" Restore *"6" Skip Range="7" Split Line *"7" File Search <"8" Page Forward *"8" Close FileD"9" Mark *"9" Select Rectangular="," Exchange *"," Toggle Mark >"-" Change Mode *"-" Case Control;"." Find Next *"." Find Marka="Enter" Find *"Enter" Insert Here .TP6.SCO_~ Move Down *O_~ Next ScreenZ@O{ Move Left *O{ Shift LeftAO} Move Right *O} Shift RightaGO_| Move Up *O_| Previous Screen .TP6.S;Find Find *Find Find Mark =Insert Here Insert Here *Insert Here Insert Mark*=Remove Remove *Remove Remove MarkrDSelect Select *Select Select RectangularFPrev Screen Previous Screen *Prev Screen Previous PlaceholderBNext Screen Next Screen *Next Screen Next Placeholder.TP6.S6Help Help *Help Show=Do Do *_~p VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_Ho CDo LSE Command .TP6.S>F7 Next Buffer *F7 List BuffersBF8 Other Window *F8 Goto Declaration=F9 Change Windows *F9 Find SymbolpF10 Exit?F11 Compile Range *F11 Execute Range*6F12 End of Line *F12 Show:F13 Expand Token *F13 LSE Keys8F14 Page Backward *F14 Review6F15 Help *F15 Show=F16 Do *F16 LSE Command CF17 Attach *F17 Erase PlaceholderF=F18 DCL *F18 Goto Sourcet?F19 Spawn *F19 Previous Step;F20 Compile *F20 Next Step.TP6.S6Backspace End of Line *Backspace Show$Delete Delete :Line Feed Expand Token *Line Feed LSE Keys?Return Return *Return Trim Trailing =Space Space *Space Expand Tabs ATab Tab *Tab Compress Spaces .TP6.S>Ctrl/A Append File *Ctrl/A Define AliasACtrl/B Erase Previous Word *Ctrl/B Erase Next Word ?Ctrl/D Erase Line *Ctrl/D Delete Buffer"ACtrl/E Execute Command *Ctrl/E Iterate Command6?Ctrl/F Move Word Forward *Ctrl/F Flash Controlo7Ctrl/G Include Buffer *Ctrl/G Aligni6Ctrl/H End of Line *Ctrl/H ShowACtrl/I Tab *Ctrl/I Compress Spacest:Ctrl/J Expand Token *Ctrl/J LSE Keys6Ctrl/K Remove *Ctrl/K Sort<Ctrl/L Form Feed *Ctrl/L Set Source?Ctrl/M Return *Ctrl/M Trim Trailing/$Ctrl/N Search Count >Ctrl/P Save Buffer *Ctrl/P Comment Fill?Ctrl/R Move Word Backward *Ctrl/R Match Controlt@Ctrl/T Cut Buffer *Ctrl/T Modify ControlECtrl/U Erase Start of Line *Ctrl/U Cancel _ Keyr<Ctrl/V Control Screen *Ctrl/V Set Screen?Ctrl/W Refresh *Ctrl/W Write Controld6Ctrl/Z Quit *Ctrl/Z Exit9Ctrl/_\ Insert Numeric *Ctrl/_\ Quoter>Ctrl/] Include Date *Ctrl/] Include TimeCtrl/? LSE Mode.F.J.PG+ .SEND TOC .S.SEND TOC .I8;INDEX .REQ "VTEDIT.RNX"b`L VTEDIT045.Cs>b[WECK.VTEDIT.KIT.C]VTEDIT.RNO;1_HJ R-? gm[?)cE#HT^ $t%8M9{0y_.N&{yVy~,hqY49bnYQFB?xj^8?C)n5Q+'xblxi(89a2+Y2;9N3"yI0OPul76b6n+u,=c"}Sa[kTbplrxnCo#W7&3_av`P2]UY!V1si;D^( o=+9M!|{mqp@  RD`L<]]dHmz=krym!dl=iHr q XM/]%Ab,Pju:rPKR)<- iAS+/2|9 mf-Ih^/)ziQHwcb;w )]',;{5epc Imu8#2 ?i~G5 l6K55H{O|&`!x9UU@t88mz8?&}rnM,_lSmh mgskx-9^r\qsyd;jJ( o937r*&n^N! T~Tw+e[>l5~M gFj^Te&n1n^uTvvx,p8sw 7 XzѩdwQ*MX, Qh*9- #'Uw)2B|e6r##9ON[;P08&];`O|3+N4f yuEaC&4f3~}{w"q@.s44 ,=LVGDk+i;T{C`>7s,9,)/2Bs+Lb|\#mD>)3!/t/2[d E:i-@usZVj1CLd':o,uW+'Y^<3!,oM(?m?'; :6JC-#1)"& E /8w; v_N>.y #Y$5qVm*y t#pfgg!8p]'4dop!xRG@Re#$%?5`V # .o;rg\>>::^` >;GzEs!,N2@ @Q&ozzUzliYYi0y#(r fH''5-3GyAfk+Rj\'!Z E' zP=*Ug5 DaC[-p^5sz&v?z.p$L@ ]B2! B8QC{i*!PjKi#%m4zy1Qd-Xu gsD6*z 2[o1 qw*Ac-zF7o=,*,({cr.>aCJg,g>dJ0 ?N8[+!uESs0ez/o=b`xtyNhxI5s{E0&O39E_Z;Tl~d"rM_bI6LZqwlY/W2V}/2$/T8.JjqT p4:9&P&4:I&J?B@N*B(EVGi!ZnkzGj^z%W4I0|(h'0 >4M8"JD1}d5<}vrr]/[}q<'2>W6pbK|_=j{h.I8*<+f=+ BE!8vS3Zj(%E]D*9th?8 70A@Xrt0"5*rXt(ItlL**8!m]"+y%&z~s.ip)m/.1l%HcJ  ns9v*x9b3h#{"amRxZ:/+]T}U.@FTt pj+1S.>"Crj9 n#0v` n`Bh&F|bEv#``k1j:7`8=$fGO5PFVt4$'Tgi2pl;#NIYfY4'(+"  NBcsHa pNx*6mvKFEn9UwYZV#Coi|g!k K Gb. zP`r =$qHTR595;bl;1l,'+n[%Cx(gtZ[:6Ve+tj=dcG})XP4\rRD)j]qGve$L>:Ya*QN4S q>Hr8 Eu }8iiCs#Uh!Y6`=N<)U0b.26?;%*b}+C&r0oiK<"C^Rj 6zFF2{N&1%K6zCK3RD\_P?T<1(6*(58?nwBh' Da?v~*o- <>xII7~\-/f;*!*9vurp0R=jx$n);*f_{_+ TCar:SCQs<+YIsmv)]bJ:qBl}%E?:E`08~}?qYdOC\/$+:5BfpD+!Fj8!ah(+k40;AV)}hRW`eSz7S\%1$ g;+dhvm7~2Sty(0};$m (C^yBSL=(]0o;'zk~njcpZ;0>u3Fp> -8u |C`~$-'$npO. b21w:R H8$y}_aKRW8>IA S ciR$FE}4 e|HuWZ3P bgV_P.A nJ7I:08#kKhjoSZV]SuJkyY!V@*hj G gWDXE|BHyU >\G#B.|j'8:gyPMkD4JD%y_Yv6*(d SEOPM9vbGq 4eEl'RklXRqk)YS9"BUhC|UBnDy`# gh,6{L@4=! 5d"I#xSgNfL\WM}Ac:&D8\wKS ^D]Ro&W:OuiE|_$mX2MFAg`MhH%]_7qH sK:F9oU&y"Nlra?6@9S;KtELoIq ?Vuc[F"t8aNB8?wMjd'+ "IEzmDPj/_rr- ik]dOaf <nD^. 6I ^nUdj?-.PRROGBXC Xq,2Fr#c8l9pb ,rNPML_h}#I5Gf1pF#slTUYKEQGP AC ^HGF$17g=n'IE,!0C;55i"7LIo T@MUU 5~ J\e+mw7>ERHaP_OFUH O.!<{FBO.]Ho01f^)S1U&.Y[CCOhTT y \^EY ($AB@MU 1Xhq]7-/@qJOrT7~&%7"yH Fs{CgU=iNxKW}T. d>{y]l|5I2y@EL(d3 UCUJ9C^g^-`g6V })&w2Ac~j|&W\9DLJ=4%FX{q9Z`tb d~ 6CFI@?+GA P5SxEo( ~dV$0r6>1D#O37:&?hp^YXF.W*/X)ROoz%x1U; ^O/iX /6# r7;^HB0 D>kOYX%rLMCZ'QUREi$KaOBSDQ s.UP! bRSL`YJ&fYQ^_rDY' eozN[HJO0^? 5 7l#w7T@OUrVQ* DG~TSap H._4Y_ }|v FIAFZLp}]u,-=qkgd}U{fDEU*Ebw7]x\RR'TCC(K}3I^mUGG M K QU5$T/"]A4N aInf {{X\bnO9sE?JO&pp v%xP#P[M B6Ic$Ay76O#I "?DI^3 (s-D{k  :W@j3g6#Sv\ |gLkKN VC M;|# =}m0(AtHBo 8+Q*r6l#SA4}ug ZTS-IDMDZ?_QOH *Sb}D?HTDqsp7dzphe[YV~-!rdZL Yyl%0W I4[H5[:{w#&{Q$y NNOQa\(<)`zh:ief nIIgXAUGyEZA|_IM~aD" oiicuuA``|>mV-\N W({;*=*uXMX(DRD&u hBIRHE> n W"M)[sMQl^!#}qL1:h-6g t Kh,}S%Y\[er*R`yZL}VCQZCSM8^SM u G (!!# .0%^qeBh?qZ- <_|#>* - BDGS[O[y?i?#N3sk&sNiUP))!dzkO~m'5;S7:(h3G3]u@k2Xm b/EwR@ _#hE3~ Z+HVsVAHVk{y&sg5~=lcX&@]JT5A=XMzt.Y[mte(:P7E3#.3o-4%8 y}Gx|X ^ZFe\JY\|cbpf`i4c0p` ZDYWOARpX\-_(y(2 uT*[RO7,NwHB][{ BU@G3W7QnYP y-Kc)m$ _4]=v(*  exk9mb\WAZc>QHH Z4`~Prdy5A $fm$4&l[+ HLLW@pl Neyy:_P. c\uuS^uH %m/&w.9X=a6U(J)&(F!>X*Z57}4~VYUH1/^-nXYS[9B\H*Y/8G0(QC}U,_)nqNyQ-EMTF LQMGd(eElZ O$5 x{Qb%c\7T SK&_:;ZA yZk*K%1NA0@;)`q4ZL VX*>l@r&;FI-HTG+(9"Q2.jW6Q Iix^;N^Z1jz[enkMJ-fkKrHY V#~(p_OBrM2thfX2tP0L?M@NFj6 W-"a.ER#EO>G &VQ<_c g>*0ZQnM6u[-~s=Q Zi<~"CeA/!o3*[|\bsNRG-y {1;[f$_Z.$;IT\uF1>sAt] o!gO5D!'U"84Lsedw~Y^SXE{Ypr;3J, oU J=DMy|6NwOe1[hVyZ,u*I &)/Ad]'g%a?Bs iu^N BJ`D: 7oN M^{PHX/gO1I]EWny3;c#rS%8O!Kq m7dZLJEU LCl]&%;7!J