Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ENTITIES

HARDCOPY

KEYPAD

NOKEYPAD

SUBCOMMANDS

CHARACTER

WORD

LINE

RANGE

SENTENCE

PAGE

PARAGRAPH

SELECT

VERTICAL

STRING

ADV

APPEND

ASC

BACK

BELL

CHGC

CHGL

CHGU

CLSS

CUT

D

DATE

DEFK

DESEL

DLWC

DMOV

DUPC

EX

EXT

FILL

HELP

I

KS

MOVE

PASTE

QUIT

R

REF

S

SEL

SHIFT

SSEL

SN

TAB

TADJ

TC

TD

TGSEL

TI

TOP

UNDELETE

XLATE

()

^

EDT CHANGE — VMS 4.6

The CHANGE command puts EDT in change mode.  Use change mode to edit at
the character level rather than the line level.

Format: CHANGE [range] [;nokeypad command(s)]

The optional range specifies the cursor position when you enter change
mode.  If you omit range, the current position is used.

There are three submodes of change mode.  Which submode you use depends
on the type of terminal you are using and whether or not you wish to use
the auxiliary (numeric) keypad for editing commands.  These modes are:

    1.  Hardcopy mode
    2.  Keypad mode
    3.  Nokeypad mode

If the CHANGE command contains a semicolon (;) it may be followed by
nokeypad commands.  If the last nokeypad command is EX, EDT returns to
line mode for the next command line.  This is the only form of the
CHANGE command that may be used in a startup command file or macro.

Additional information available:

ENTITIESHARDCOPYKEYPADNOKEYPADSUBCOMMANDS

ENTITIES

Entities are used in nokeypad mode commands to specify the text on
which a command will operate.  Each entity represents a portion of
text, which may be anything from a single character to an entire text
buffer.  Most entities can be preceded by a count, which indicates the
number of entities to be affected.

Additional information available:

CHARACTERWORDLINERANGESENTENCEPAGE
PARAGRAPHSELECTVERTICALSTRING

CHARACTER

The character entity is specified by the letter C.  It selects a single
character of text.

WORD

A word consists of a string of characters terminated by a set of
delimiter characters.  The default delimiter characters are spaces,
tabs, carriage returns, line terminators, line feeds, formfeeds, and
vertical tabs. Spaces are handled in a special way:  all spaces
following a word up to the first non-space character are considered part
of a word.  Other delimiters are not considered  part of the word they
terminate.  Rather, they are considered to be words by themselves,
unless SET WORD NODELIMITER in in effect. If SET WORD NODELIMTER is in
effect, delimiters are not considered words by themselves but are
considered part of the word they terminate. The three word entities are:

    W   Specifies the entire word in which the cursor is positioned.
    BW  Specifies all characters preceding the cursor up to the beginning
        of the word.
    EW  Specifies all characters from the cursor through the end of the
        word.

You can change the word delimiters with the SET ENTITY command.

LINE

The line entities are:

    L   Specifies the entire line in which the cursor is positioned.
    BL  Specifies all characters preceding the cursor up to the beginning
        of a line.  (When the cursor is positioned at the beginning of a
        line, the BL entity selects the entire previous line.)
    EL  Specifies all characters from the cursor to the end of a line,
        including the character on which the cursor is positioned.
        (If the cursor is on a line terminator, the entire next line is
        selected.)
    NL  Specifies all characters from the cursor to the beginning of the
        next line, including the character on which the cursor is
        positioned.

RANGE

The range entities specify all text in the buffer either before or after
the cursor.  The two range entities are:

    BR  Specifies the text from the cursor position to the beginning of
        the buffer.
    ER  Specifies the text from the cursor position to the end of the
        buffer.

SENTENCE

A sentence consists of a string of characters terminated by one of a set
of single character delimiters.  The default sentence delimiters are:
period (.), question mark (?), and exclamation point (!).  A sentence
delimiter is considered to be a delimiter only if it is at the end of a
line or if it is followed by a space.  The line terminator or trailing
spaces are considered a part of the sentence.  There are three sentence
entities:

    SEN   Specifies the entire sentence in which the cursor is positioned,
          including the delimiter and trailing spaces or line terminator.
    BSEN  Specifies all characters preceding the cursor in the current
          sentence.
    ESEN  Specifies all characters in the current sentence from the cursor
          to (but not including) the delimiter character.

The sentence delimiters can be changed by the SET ENTITY command.

PAGE

A page consists of all the text between two page delimiters, including
the trailing page delimiter.  The default page delimiter is the formfeed
character. The three page entities are:

    PAGE  Specifies all of the current page.
    BPAGE Specifies all characters in the current page from the character
          preceding the cursor to the beginning of the page.
    EPAGE Specifies all characters in the current page from the cursor to
          (but not including) the page delimiter.

You can change the page delimiter with the SET ENTITY command.

PARAGRAPH

A paragraph consists of all the text between two paragraph delimiters,
including the trailing paragraph delimiter, and if SET PARAGRAPH WPS is
in effect, any adjacent delimiters. The default paragraph delimiter is
two consecutive line terminators. The three paragraph entities are:

    PAR   Specifies all of the current paragraph.
    BPAR  Specifies all characters in the current paragraph from the
          character preceding the cursor to the beginning of the paragraph.
    EPAR  Specifies all characters in the current paragraph from the cursor
          to (but not including) the paragraph delimiter.

You can change the paragraph delimiter with the SET ENTITY command.

SELECT

The select entity consists of all characters between the cursor and the
select mark.  The select mark must have been specified previously by a
SEL command.  The select range entity is specified by SR.  Some commands
use the search string when the SR entity is specified but no select
range has been created.

VERTICAL

The vertical entity is the same as the line entity, except that with the
V entity, the cursor stays in the same column.  You specify the vertical
entity with V.

STRING

The string entity consists of all the characters between the cursor and
the next occurrence of a specified search string.  Specify the string
entity by enclosing the desired search string in single or double
quotation marks. If the string is null (specified by '' or ""), the
previous search string is used again.

For key definitions, you may use the null character (character code 0)
in place of the quotation marks to avoid conflicts with the search
string.

HARDCOPY

On a hardcopy terminal, change mode operates this way:

When you enter change mode, EDT displays the current line on the
terminal. The cursor position is marked by bracketing the character on
which the cursor is positioned.  EDT will then prompt with the
characters:

    C*

In response, you type a series of nokeypad mode commands terminated by
pressing return.  EDT will execute the commands and type the current
line.

KEYPAD

You enter the keypad mode of change mode when your terminal is a
VT100-type or VT52 and the keypad option is set.  (This option is set by
default for these terminals.)  In this mode the terminal screen is used
to view the text buffer.  Characters typed using the main keyboard are
inserted into the buffer at the cursor position.  You enter editing
commands by using keys on the auxiliary keypad, function keys, or
control keys on the main keyboard.

For more help on keypad mode, type CHANGE to enter that mode.  Use the
keypad HELP facility as follows:

    1.  If your terminal is a VT100-type, press the keypad key marked PF2.
    2.  If your terminal is a VT52, press the red keypad key.
    3.  If your terminal has function keys, press the function key marked
        HELP.

NOKEYPAD

You enter the nokeypad mode of change mode if your terminal is a
VT100-type or VT52 and the SET NOKEYPAD command has been used to turn
off the keypad option.  The screen is used as a window into the text
buffer. You type nokeypad mode commands at the keyboard; they echo on
the bottom line of the screen.  EDT executes the commands and updates
the text on the screen whenever you press return.

SUBCOMMANDS

When EDT is in change mode and SET NOKEYPAD is in effect or your
terminal is set to HARDCOPY, EDT accepts a distinct set of commands
called the nokeypad mode commands.  You may concatenate a string of
these commands with or without spaces separating them.

Nokeypad commands take one of the following forms, depending on the
particular command:

    1.  command
    2.  [+|-][count]command
    3.  [+|-][count][command][+|-][count][+|-]entity[=buffer]

Whenever a sign can appear in more than one place, the last sign
specified determines the direction.

Additional information available:

ADVAPPENDASCBACKBELLCHGCCHGL
CHGUCLSSCUTDDATEDEFKDESEL
DLWCDMOVDUPCEXEXTFILLHELP
IKSMOVEPASTEQUITRREF
SSELSHIFTSSELSNTABTADJ
TCTDTGSELTITOPUNDELETEXLATE
()^

ADV

The ADV (advance) command sets the cursor direction to advance.  Many
nokeypad commands use the current direction to determine whether
entities to the left or to the right of the cursor are to be affected.
When the direction is forward, nokeypad commands affect the cursor
character and characters to the right.

Format: ADV

APPEND

The APPEND command works in the same way as the CUT command (see CUT)
except that it adds the new text to the end of the alternate buffer
instead of replacing its contents.

Format: [+|-][count]APPEND[+|-][count][+|-]entity[=buffer]

ASC

The ASC nokeypad command inserts a specified character into the buffer
at the cursor position.  Use the count field to indicate the decimal
code of the character you want to insert.  Characters are coded using
the DEC Multinational Character Set; codes 0 to 127 are the same as
ASCII.

Format: [count]ASC

The ASC command is the only way to insert a carriage return into the
middle of a line of text; otherwise, insert commands always treat the
carriage return as a line terminator.  The following command would
insert a carriage return:

    13ASC   (13 is the code for carriage return)

BACK

The BACK command sets the cursor direction to backward.  Many nokeypad
commands use the current direction to determine whether entities to the
left or to the right of the cursor are to be affected.  When the
direction is backward, nokeypad commands affect characters to the left
of the cursor.

Format: BACK

BELL

The BELL command rings the bell on the terminal.  There is no effect on
the text buffer.

Format: BELL

CHGC

The CHGC command changes the case of every letter in the specified
number of entities: lowercase letters become uppercase and uppercase
become lowercase.

Format: [+|-][count]CHGC[+|-][count][+|-]entity

CHGCSR (change case of select region) works differently:  If there is no
select range and the cursor is in the search string, CHGCSR changes the
case of every letter in the search string.  If there is no select range
and the cursor is not in the search string, CHGCSR changes the case of
the character under the cursor, if it is letter.  If the [count] field
is two or more, CHGCSR ignores the search string condition.

CHGL

The CHGL command forces every letter in the specified range to
lowercase.

Format: [+|-][count]CHGL[+|-][count][+|-]entity

CHGLSR has the same special contingencies as CHGCSR.

CHGU

The CHGU command forces every letter in the specified range to
uppercase.

Format: [+|-][count]CHGU[+|-][count][+|-]entity

CHGUSR has the same special contingencies as CHGCSR.

CLSS

The CLSS command clears the search string buffer.
Format: CLSS

CUT

The CUT command deletes a specified number of entities and saves all the
deleted text in an alternate text buffer.  The command works exactly
like the DELETE command except that the text is saved.

Format: [+|-][count]CUT[+|-][count][+|-]entity[=buffer]

If you do not specify a buffer, the buffer named PASTE is used.

Ex: CUTSR   Cut the selected range
    CUTPAGE Cut the current page of text

D

The D nokeypad command deletes a specified number of entities.

Format: [+|-][count]D[+|-][count][+|-]entity

If the entity is C, W, BW, EW, L, BL, EL, or NL, the last entity deleted
by the command is saved in the delete buffer associated with the entity
and can be restored with the UNDC, UNDW, or UNDL nokeypad command.

Ex: D15C    Deletes 15 characters in the current direction.
    DSR     Deletes the select range.
    DBR     Deletes to the beginning of the buffer.

DATE

The DATE command inserts the current date and time string into the
buffer at the current cursor position.

The form of the string is:  dd-MMM-yyyy hh:mm:ss .  Note the trailing
space.  Before the tenth of the month the dd is a space followed by a
single digit.  If you prefer the month abbreviation to be in lower case,
you can change it by backing up to the month and using CHGL.  This
command always uses the English abbreviations for month names.

Format: DATE

DEFK

The DEFK command can be used to reassign the define key function to
another redefinable keypad mode function key.
Format: DEFK

DESEL

The DESEL command cancels the current select range if one is active.  If
no select range is active the command has no effect.

Format: DESEL

DLWC

The DLWC (default lowercase) command sets the motion state to lowercase.
With this as the motion state moving the cursor over a lower case letter
changes it to upper case.  See DUPC and DMOV.

Format: DLWC

DMOV

The DMOV command returns the default motion state to unchanged.  With
this as the motion state moving the cursor over a letter does not change
its case.  See DLWC and DUPC.

Format: DMOV

DUPC

The DUPC (default uppercase) command sets the motion state to uppercase.
With this as the motion state moving the cursor over a lower case letter
changes it to upper case.  See DMOV and DLWC.

Format: DUPC

EX

The EX (exit) command exits from change mode to line mode.

Format: EX

EXT

The EXT (extend) command executes a line mode command while you are in
change mode.  EDT interprets the remainder of the command line as a line
mode command, executes the command, and reenters change mode
automatically. The EXT command may not be used inside parentheses.

Format: EXT line mode command

FILL

The FILL command reformats a block of text so that as many complete
words as possible are placed on each line without exceeding the right
margin.  It sets the right margin to the terminal width minus 1
character by default.  The margin can be changed by the SET WRAP
command.

Format: [+|-][count]FILL[+|-][count][+|-]entity

HELP

The HELP command can be used to reassign the help function to another
redefinable keypad mode function key.

I

The I command inserts new text into the buffer at the current cursor
position.

Format: Itext to be inserted^Z
    or: I
        text to be inserted
        ^Z

If you plan to insert only a few characters, use the first form of the I
command.  If you plan to insert several lines use the second form.  With
the second form you can insert lines until you type control Z.  On
VT100-type terminals the I command remains at the bottom of the screen
to remind you that you are inserting text.  Only the first form of the I
command can be used in a key definition or after C; in a macro or
startup command file.

KS

The KS command modifies the cursor position after a PASTE command.

After a PASTE command, the cursor is on the character to the right of
the pasted text.  If PASTE is followed by KS, however, the cursor moves
to the last pasted character if the current direction is forward and to
the first pasted character if the direction is backward.  You should
only use the KS command immediately after a PASTE command.

Format: PASTE KS

Such cursor positioning affects a subsequent string search.  KS is used
in the definition of the keypad SUBS function so that the character that
follows the pasted text in the current direction is included in the next
string search.

MOVE

The "MOVE" command moves the cursor a specified number of entities. If
DLWC is in effect, all letters encountered are forced to lowercase. If
DUPC is in effect, all letters encountered are forced to uppercase. If
DMOV is in effect, no text is changed.  The "MOVE" command uses no
command word.

Format: [+|-][count][+|-]entity

If you use an explicit sign, the direction of the move is determined by
that sign (+ for forward, - for backward); otherwise, the current
direction mode (set by the ADV or BACK command) is used to determine the
direction.

Ex: +3W     Moves the cursor 3 words forward.
    L       Moves the cursor 1 line in the current direction.
    -PAGE   Moves the cursor backward to a page delimiter.

PASTE

The PASTE command copies the contents of an alternate buffer into the
current buffer at the cursor position.

Format: [count]PASTE[=buffer]

If you omit the buffer name, the PASTE buffer is used.

QUIT

The QUIT nokeypad command leaves the editor without saving any text buffers.
This will cause you to lose any editing you have done in this session
unless you used the WRITE command to save the text before quitting.

Format: QUIT

R

The R (replace) command deletes the specified entities and leaves you in
the insert state so you can enter the text that you want to replace the
deleted text with.

Format: [+|-][count]R[+|-][count][+|-]entity

REF

The REF command refreshes the screen.

Format: REF

S

The S command replaces occurrences of one string of characters with
another.

Format: [+|-][count]S/string-1/string-2/

The slashes represent any non-alphanumeric character used to delimit the
two strings.  S searches in the specified direction from the cursor and
finds an occurrence of string-1.  It deletes string-1 and inserts
string-2 in its place.

Ex: S/1988/1989/

SEL

The SEL command marks a portion of text that will be one end of a select
range. You create a select range by positioning to one end of the
desired text (either end will do), executing the SEL command, moving to
the other end of the desired text, and performing an operation on the SR
(select range) entity.  On VT100-type terminals the select range is
displayed in reverse video.

Format: SEL

SHIFT

Use the SHL (shift left) and SHR (shift right) commands to alter the
left margin when in change mode.  The left margin is the position of the
first character in each line on the screen.  Normally, the left margin
is 0, which means all characters are displayed.  If you use a SHL
command, the left margin can be changed by an integral number of tab
stops (8 characters).  If SHL is used once, the first 8 columns will not
be displayed on the screen.  This shifts the screen window horizontally.

Format: countSHL  (Shift left by count tab stops)
        countSHR  (Shift right by count tab stops)

SSEL

The SSEL (search and select) command searches for the occurrence of a
string and places the string in the select range.  The cursor remains at
the far end of the string.

Format: SSEL"string"

SN

The SN (substitute next) command performs a substitution using the same
search and replacement strings as the previous substitute command.

Format: [+|-][count]SN

TAB

Use the TAB nokeypad command when the line mode SET TAB command is in
effect.  The TAB command inserts the correct number of tabs and blanks
to position the cursor to the current tab level.  When SET NOTAB is in
effect, or when the cursor is not at the beginning of a line, this
command inserts an HT character, thus positioning the cursor to the next
tab stop.  Tab stops are every eight columns.

Format: TAB

TADJ

The TADJ command adjusts the tab level for the specified range of text.
The SET TAB value determines the tab size. The tab level is adjusted by
the value of count; it is incremented for a positive count and
decremented for a negative count.  A count not preceded by + or - is
assumed positive.  The TADJ tab setting is the product of the tab size
and the count.

Format: [+|-][count]TADJ[+|-][count]entity

Note that the + or - that precedes the first count is not used to modify
the direction of entity selection.  Its function in this command differs
in this way from all other nokeypad commands that use a similar format.

TC

The TC nokeypad command computes the tab level from the current cursor
position.  This command has meaning only if SET TAB is in effect.

Format: TC

TD

The TD nokeypad command decreases the tab level count.  This command has
meaning only if SET TAB is in effect.

Format: TD

TGSEL

The TGSEL command allows you to toggle select.  When the select range is
active, TGSEL will cancel it, and when no select range is active, TGSEL
will enable it, acting like the SEL command.

Format: TGSEL

TI

The TI nokeypad command increases the tab level counter.  This command
has meaning only if SET TAB is in effect.

Format: TI

TOP

The TOP command forces the line on which the cursor is positioned to the
top of the screen.  If there is less than a full screen of lines between
the current line and the end of the buffer, TOP has no effect.

Format: TOP

UNDELETE

The UNDELETE commands restore the last entity deleted by a delete
command.

Format: UNDC  (undelete character)
        UNDW  (undelete word)
        UNDL  (undelete line)

XLATE

The XLATE command allows calling back to the caller of callable EDT.

Format: XLATEtext^Z

The text is passed to the XLATE routine, which returns some NOKEYPAD
commands for EDT to execute.  This command is an error except on VAX/VMS
when EDT is being called from a program.  See the EDT Editor Manual for
more details.

()

A sequence of nokeypad commands can also be enclosed in parentheses to
form a single unit.  A number preceding the left parenthesis indicates
the number of times to repeat the entire sequence.  The EXT nokeypad
command cannot appear inside parentheses.

^

This command provides for the insertion of control characters in text.
EDT accepts a circumflex (^) followed by a letter from A to Z, an @, [,
\, ], ^ or _.  Each of these 32 characters is transformed into a control
character by subtracting 32 from its ASCII code, thus ^@ becomes NUL, ^A
becomes SOH, etc.

Format: [count]^[character]

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026