Generated from C.60.01 /SYS/PUB/CICAT last modified on Thu Jan 11 09:18:52 2001
DO
Allows the user to reexecute any command still retained in
the command line history stack. It also permits the user to
edit the command before reexecuting it, but without having
to use the interactive mode of the REDO command. (NM)
DO [[CMD=]cmdid][[;EDIT=]editstring]
This command follows the more flexible MPE/iX command line
syntax. Refer to the MPE/iX Commands Reference Manual
(32650-90003) for more information.
cmdid Specifies the command to reexecute. The command
may be specified by its relative or absolute order
in the command line history stack, or by name (as a
string), in whole or in part. The default is -1,
the most recent command. MPE/iX detects an error if
cmdid does not exist in the command line history
stack.
CMDID EXECUTES
(omitted) The previous command.
-n The nth command before the most recent
one. N is a number in the command
line stack relative to the most recent
command, which is -1.
m Command number m in the command line
stack. The number m is absolute (not
relative).
string The most recent command beginning with
string.
editstring String specifying the edit to be performed on cmdid
before its re-execution. If you omit editstring,
the command is re-executed immediately, with no
editing performed.
If you specify editstring, it must appear, character
for character, and space for space, exactly as it
would if you were using DO's interactive mode.
The editing directives used in editstring are
described in the table below.
-----------------------------------------------------------------------
Directive Effect on the current line
-----------------------------------------------------------------------
i INSERT. Inserts at the position to the
left of the i.
r REPLACE. Uses to perform a one-for-one
character replacement beginning at the position
of the r.
c CHANGE. Changes all occurrences of one string to
another when the search string and replace string
are properly delimited with a non-alphabetic
character such as ', ", /, and so on. Specify
csearch-stringreplace-string
to substitute characters. Or, to delete all
occurrences of the search string without
substitution, omit the replace string.
d DELETE. Deletes a character. You may specify
multiple d's to delete a series of characters.
Or, you may type multiple d's, followed by spaces,
then followed by more d's to delete some
characters while skipping others. You may follow
this directive with other edits.
dw DELETE WORD. Deletes a word starting at the
letter d. A word is defined as all characters
except a space, comma, or semicolon. If you
place the d directly beneath a word delimiter,
then the word and the delimiter characters are
deleted. If no word exists on the command line,
no delete occurs. You may follow this directive
with other edits.
d DELETE TO DELIMITER. Deletes all characters
starting at the position of the d and ending at,
but not including, the specified delimiter. If
is not found, no delete occurs. You may
follow this directive with other edits.
d> DELETE TO EOL. Deletes to the end of the current
line from the position specified by d. You may
follow this directive with other edits.
^ UPSHIFT. Upshifts the character positioned at
the ^. You may specify multiple ^'s to upshift
a series of characters. Or, you may type multiple
^'s, followed by spaces, then followed by more ^'s
to upshift some characters while skipping others.
You may follow this directive with other edits.
^w UPSHIFT WORD. Upshifts the word starting at the
position specified by ^. A word is defined as
all characters except a space, comma, or semicolon.
If you place the ^ directly beneath a word
delimiter, the delimiter is skipped and only the
word is upshifted. If no word exists on the
command line, no upshift occurs. You may follow
this directive with other edits.
^ UPSHIFT TO DELIMITER. Upshifts all characters
starting at the position specified by the ^ and
ending at, but not including, the specified
delimiter. If is not found, no upshift
occurs. You may follow this directive with other
edits.
^> UPSHIFT TO EOL. Upshifts all characters starting
from the position specified by the ^ to the end of
the current line. You may follow this directive
with other edits.
v DOWNSHIFT. Downshifts the character positioned at
the v. You may specify multiple v's to downshift
a series of characters. Or, you may type multiple
v's, followed by spaces, then followed by more v's
to downshift some characters while skipping others.
You may follow this directive with other edits.
vw DOWNSHIFT WORD. Downshifts the word starting at
the position specified by v. A word is defined as
all characters except a space, comma, or semicolon.
If you place the v directly beneath a word
delimiter, the delimiter is skipped and only the
word is downshifted. If no word exists on the
command line, no downshift occurs. You may follow
this directive with other edits.
v DOWNSHIFT TO DELIMITER. Downshifts all characters
starting at the position of the v and ending at,
but not including, the specified delimiter. If
is not found, no downshift occurs. You
may follow this directive with other edits.
v> DOWNSHIFT TO EOL. Downshifts all characters
starting from the position specified by the v to
the end of the current line. You may follow this
directive with other edits.
> APPEND TO EOL. Appends the text to the end of
the current line. If > is positioned beyond the
end of the current line, then a replacement is
performed instead.
>d DELETE FROM EOL. Deletes from the end of the
current line, right-to-left. You may specify
multiple d's and follow this directive with other
edits.
>dw DELETE WORD FROM EOL. Deletes the last word in
the command line. To find the last word, trailing
word delimiters are skipped. If no word exists in
command line, then none is deleted. If you follow
>dw with additional editing directives, each edit
is performed recursively. That is, the first edit
is performed (updating the current EOL), then the
next edit is performed (again updating the current
EOL), and so on.
>d DELETE TO FROM EOL. Starting at the end
of the current line, deletes all characters
right-to-left up to, but not including, .
If is not found, no delete occurs. If you
follow >d with additional editing
directives, each edit is performed recursively.
That is, the first edit is performed (updating
the current EOL), then the next edit is performed
(again updating the current EOL), and so on.
>^ UPSHIFT FROM EOL. Upshifts the character at the
current EOL. You may specify multiple ^'s to
upshift a series of characters (read right-to-left)
from the EOL. Also, you may follow this directive
with other edits.
>^w UPSHIFT WORD FROM EOL. Upshifts the last word in
the command line. You may follow this directive
with other edits.
>^ UPSHIFT TO FROM EOL. Starting at the end
of the current line, upshifts all characters
right-to-left up to, but not including, .
If is not found, no upshift occurs. You
may follow this directive with other edits.
>v DOWNSHIFT FROM EOL. Downshifts the character at
the current EOL. You may specify multiple v's to
downshift a series of characters (read right-to-
left) from the EOL, and you may follow this
directive with other edits.
>vw DOWNSHIFT WORD FROM EOL. Downshifts the last word
in the command line. You may follow this directive
with other edits.
>v DOWNSHIFT TO FROM EOL. Starting at the
end of the current line, downshifts all characters
right-to-left up to, but not including, .
If is not found, no downshift occurs. You
may follow this directive with other edits.
>r REPLACE AT EOL. At the end of the command line,
this directive replaces the exact number of
characters specified in with .
u UNDO. A single u in column one cancels the most
recent edit of the current line. Using the UNDO
command twice in a row cancels all edits for the
current line and re-establishes the original,
unedited line. If u is placed anywhere other than
column one of the current line, then a simple
replacement is performed. UNDO makes sense only if
you have a line on which you have performed some
editing that can be "undone."
SIMPLE REPLACEMENT. When you enter any other
character that is not used in an editing directive,
(i.e. i, r, d, ^, v, d>, >, >d, c, or u),
simply replaces the existing character at that
position in the command line. In fact, simple
replacement also occurs for the editing characters
i, r, c, or > if they are not followed by text; or
if you type > at or beyond the current end of line.
Reexecutes the command specified by cmdid. The user may specify
an optional edit string to edit the command before it is re-
executed. This command is a companion to the enhanced MPE/iX
version of REDO. Unlike REDO, this command does not permit
interactive editing.
If editstring is specified, the edit will be performed on cmdid
before the command is reexecuted. The editstring must appear
exactly as it would if you were using the REDO command.
Both cmdid and editstring must be surrounded by quote marks (" or
') if they contain any delimiters such as ; " ' [, ], =, or a
space.
This command is available in BREAK, but not in a job or from
a program. Pressing [Break] will terminate recursive command
executions from the history/redo stack.
Practical uses of the editing commands listed above are shown here
EDIT ACTION
u First occurrence undoes the previous edits. The u
must be in column one.
u Second occurrence undoes all edits on the current
line. The u must be in column one.
rxyz Replaces the current text with xyz starting at the
position of r.
xyz Replaces the current text with xyz starting at the
position of x.
ixyz Inserts xyz into the current line, starting at the
position immediately before the i.
ddd Deletes three characters, one above each d.
d xyz Deletes a single character above the d, skips one
space, then replaces the current text with xyz
starting at the position of x.
ddixyz Deletes two characters, then inserts xyz in the
current line in the position before the i.
d d Deletes one character above the first d, skips two
spaces and deletes a second character above the
second d. It does ^_not delete a range of
characters, making it unlike the MPE V/E version of
REDO.
d d>xyz Deletes a single character above the first d, skips
two spaces and deletes to the end of the line
beginning at the second d, and then appends xyz to
the end of line.
^wix Upshifts the word above the ^ and inserts an "x"
at the end of the word it just upshifted.
v/abc Starting at the position of V, downshifts all
characters up to, but not including, the "/", then
replaces the "/" and the next two characters with
"abc".
>xyz Appends xyz to the end of the current line.
>ddxyz Deletes the last two characters from the end of the
current line and then appends xyz to the end of the
line.
>rxyz Replaces the last three characters in the current
line with xyz.
>ixyz Appends xyz to the end of the line. In this case,
the i command is superfluous, because > accomplishes
the same result. Using >xyz would be sufficient.
>dwxyz Deletes the last word of the current line and
appends "xyz".
c/ab/def Changes all occurrences of ab to def, starting at c.
c"ab" Deletes all occurrences of "ab" starting at c.
cxyz Replace the current text with cxyz, starting at c.
Because delimiters have been specified (as they were
in the previous two examples), this is a simple
replacement.
>dw^.dw Deletes the last word in the current line,
recalculates the EOL, then upshifts all characters
up to, but not including, the dot (.), then deletes
the word to the left of the characters that were
upshifted.
DO pas Re-executes the the most recent
command beginning with the string pas.
DO 10 Re-executes command number 10
(absolute) on the command history
stack.
DO -2 Reexecutes the second-to-last command
on the stack (one command before the
most recent).
DO -2, c/5a/5b Change all occurrences of 5a to 5b in
the command preceding the most recent
one before reexecuting it. The
default is -1.
do ,c/5a/5b Change all occurrences of "5a" to "5b"
in the most recent command before re-
executing it.
DO run, ">;debug" Append ;debug to the the most recent
RUN command and then reexecute it.
DO 'RUN MYP', '>;LIB=G' Find the most recent command beginning
with RUN MYP and append ;LIB=G before
re-executing it.
Commands: REDO, LISTREDO Back to Main Index