This section describes the functions that are available for all object types using main commands and/or line commands.
This section describes the line commands and main commands available to insert and delete lines.
The following line commands are available to insert and delete lines on your editor screen.
Line Command | Explanation |
---|---|
D |
Deletes this line. |
Dn |
Deletes the next
n lines.
|
DD |
Marks the first line of a block to be deleted. A
second DD line command is required to delineate the
block. The deletion is performed after the second DD
is entered.
|
DX |
Deletes the line labeled .X .
|
DY |
Deletes the line labeled .Y .
|
DX-Y |
Deletes the block of lines from the line labeled
.X to the line labeled .Y .
|
I |
Inserts one line after this one. The editor switches
to insert mode. This means if you type data or enter a blank in the new line
and press ENTER, a new line is automatically inserted and the cursor
placed in it.
If you enter no new data in an inserted line and press
ENTER, the editor leaves insert mode and the blank line is deleted.
If you have defined a mask line and the
|
In |
Inserts n
lines after this one. You can type data in the new lines. When you press
ENTER, unused lines are deleted but one blank line remains with the
cursor in it (editor stays in insert mode).
|
TE |
Switches the editor to text enter mode. This means
that beginning with this line the editor screen is blank (without line numbers)
and you can enter data.
When you press ENTER, any remaining blank lines are deleted, the line numbers are re-displayed and the text is reformatted within the set margins and with the specified justification. See also POWER Command. |
W |
Opens a window of one line. No new line is inserted if you enter data in the window line and press ENTER. |
Wn |
Opens a window of
n lines. When you press
ENTER, all unused lines are deleted.
|
You can also use the
POWER
main command to switch to text enter mode.
When you issue the POWER
main command,
you are presented with a blank editor screen (without line numbers) and you can
enter data. When you press ENTER, any remaining blank lines are
deleted, the line numbers are redisplayed and the text is reformatted within
the set margins and with the specified justification.
Line deletion can also be performed with the
DELETE
main command.
For example, the command:
DEL C'Abc' .X .Y 10 30 ALL
deletes all lines containing the string Abc
exactly
as entered here between columns 10 to 30 within the block delineated by the
labels .X
and .Y
.
You can specify all operands described for the
FIND
command above, except that the ALL
direction operand specifies deletion of all lines with the given string. An
unqualified DELETE
command deletes the current
line.
With the following line commands, you can copy, move or repeat lines or blocks of data.
Line Command | Explanation |
---|---|
A |
Marks the target line for a copy
(C ,
Cn ,
CC ) or move (M ,
Mn ,
MM ) line command. Data is inserted after
this line.
|
B |
Marks the target line for a copy
(C ,
Cn ,
CC ) or move (M ,
Mn ,
MM ) line command. Data is inserted before
this line.
|
C |
Copies this line to the position marked by an
A , B or
O line command.
|
Cn |
Copies the next
n lines to the position marked by an
A , B or
O line command.
|
CC |
Marks the first line of the block to be copied. A second
CC is required to the delineate block. Copying is
performed after target has been marked by an A ,
B or O line
command.
|
CX |
Copies the line labeled .X . Inserts data
after this line.
|
CY |
Copies the line labeled .Y . Inserts data
after this line.
|
CX-Y |
Copies the block of lines from the line labeled
.X to the line labeled .Y . Inserts data after this
line.
|
M |
Moves this line to the position marked by an
A , B or
O line command.
|
Mn |
Moves the next n
lines to the position marked by an A or
B line command.
|
MM |
Marks the first line of the block to be moved. A second
MM is required to delineate the block. The move is
performed after the target has been marked by an A ,
B or O line
command.
|
MX |
Moves the line labeled .X . Inserts data
after this line.
|
MY |
Moves the line labeled .Y . Inserts data
after this line.
|
MX-Y |
Moves the block of lines from the line labeled
.X to the line labeled .Y . Inserts data after this
line.
|
O |
Marks the target line for a copy
(C ,
Cn ,
CC ) or move (M ,
Mn ,
MM ) line command. Data is merged with this line.
(Only blank characters within boundaries are changed).
See also Example of Overlaying Data. |
On |
Marks this line and the next
n lines as the target lines for a copy
(C ,
Cn ,
CC ) or move (M ,
Mn ,
MM ) line command. The moved or copied lines are
merged with these lines, that is, blank characters in the lines are overlaid.
See also Example of Overlaying Data. |
OO |
Marks the first line of a block of target lines for a
copy (C ,
Cn ,
CC ) or move (M ,
Mn ,
MM ) line command. A second
OO command is required to mark the last line of the
block of target lines.
The moved or copied line(s) are merged with these lines, that is, blank characters in the lines are overlaid. See also Example of Overlaying Data. |
R |
Repeat this line once. |
Rn |
Repeat this line
n times.
|
RR |
Marks the first line of a block to be repeated. A second
RR is required to delineate the block. The repeat is
performed after second RR is entered.
|
RRn |
Repeat block delineated by two
RRn line commands
n times.
The |
) |
Moves this line right by one column beginning with left boundary. |
)n |
Moves this line right by
n columns.
|
))n |
Marks first line of a block to be moved right by
n columns. A second
))n is required to
delineate the block. The move is performed after the second
))n command is entered.
Two unqualified )) line commands move the block
right by 1 column.
|
( |
Moves this line left by one column. |
(n |
Moves this line left by
n columns.
|
((n |
Marks first line of a block to be moved left by
n columns. A second
((n is required to
delineate the block. The move is performed after the second
((n command is entered.
Two unqualified (( line commands move the block left
by 1 column.
If you use the |
> |
Moves this line right by one column. |
>n |
Moves this line right by
n columns.
|
>>n |
Marks first line of a block to be moved right by
n columns. A second
>> is required to delineate the block. The
move is performed after the second >> command
is entered. Two unqualified >> line commands
move the block right by 1 column.
|
< |
Moves this line left by one column. |
<n |
Moves this line left by
n columns.
|
<<n |
Marks first line of a block to be moved left by
n columns. A second
<< is required to delineate the block. The
move is performed after the second << command
is entered. Two unqualified << line commands
move the block left by 1 column.
|
An overlay line command (O
,
On
or
OO
) allows you to merge single-column lists into
multi-column format (that is, tabular form). You can use an overlay line
command in conjunction with a copy (C
,
Cn
or
CC
) or move (M
,
Mn
or
MM
) line command.
The following two figures illustrate this function:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------------ Columns 001 072 COMMAND===> SCROLL===> CSR 000090 //JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') OO0140 //STEPLIB DD 000150 // DD 000160 // DD OO0170 // DD MM0180 DISP=SHR,DSN=SPF.SYSF.ADALOAD 000190 DISP=SHR,DSN=SPF.SYSF.LOAD 000200 DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL MM0210 DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000220 //DDCARD DD * 000230 ADARUN DA=9,DE=3380,SVC=249 000240 //CMPRINT DD SYSOUT=X 000250 //CMPRT01 DD SYSOUT=X 000260 //CMWKF01 DD DUMMY 000270 //CMSYNIN DD * 000280 LOGON SYSMAIN2 000290 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000300 FIN 000310 /* ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
In the figure above, lines 180 to 210 are marked by the
MM
(Move) line command. They are to be overlaid on
lines 140 to 170, which are marked by the OO
(Overlay) line command.
This figure shows the result of the line commands displayed in the previous figure. Lines 180 to 210 have been overlaid on lines 140 to 170:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-76K ------------ Checkpoint done COMMAND===> SCROLL===> CSR 000090 //JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') 000140 //STEPLIB DD DISP=SHR,DSN=SPF.SYSF.ADALOAD 000150 // DD DISP=SHR,DSN=SPF.SYSF.LOAD 000160 // DD DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL 000170 // DD DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * 000190 ADARUN DA=9,DE=3380,SVC=249 000200 //CMPRINT DD SYSOUT=X 000210 //CMPRT01 DD SYSOUT=X 000220 //CMWKF01 DD DUMMY 000230 //CMSYNIN DD * 000240 LOGON SYSMAIN2 000250 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000260 FIN 000270 /* ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
You can specify a window with data for move or copy operations. This allows you to copy or move data that does not start or end at the beginning or end of a line. This function can be performed by using editor line commands and/or main commands.
When you define a window, all data on your screen between start and end of the window becomes part of the window.
This section covers the following topics:
Line Command | Explanation |
---|---|
WS |
Marks start of data window. Cursor position marks the column from which data is read. If the cursor is not in the line for which the command is entered, the window starts in column 1. |
WSn |
Data window starts in column
n of this line.
|
WE |
Marks end of data window. Works in the same way as
WS . If the window is to start and end in the same
line, type the WS command over the
WE command. The editor acknowledges the set window
with messages WS
(WSn ) and
WE
(WEn ) in the prefix area,
or with WW if the start and end of the window are in
the same line.
Before defining a new window, reset the old window with
the |
WEn
|
Data window ends in column
n of this line.
|
WC |
Copies the data window. The cursor position marks the column at which this line is to be split to insert the copied data. |
WCn
|
Splits this line in column
n , and copies the data between the two
parts of the line.
|
WM |
Moves the data window. Works in the same way as
WC , but the original data is deleted after the copy
operation.
|
WMn
|
Splits this line in column
n , and moves the data between the two
parts of the line.
|
Main Command | Explanation |
---|---|
WINDOW |
Defines a window. The starting line and column, and
the end line column are specified in the command parameters. At least one
parameter is required. Examples:
Defines a window starting in line 5 / column 24, and ending in line 10, column 13.
Defines a window starting in line 5 / column 24, and ending in line 10 / last column. Defines a window starting in line 5 / first column, and ending in line 10 / last column. Defines a window starting in line 5 / first column, and ending in line 5 / last column. |
CWINDOW |
Copies a window defined with the
WINDOW command. Optional parameters specify the line
at which the window is to be inserted. Examples:
Copies the window after line 5. Splits line 5 at column 24 and copies the window in between the two parts. |
DWINDOW |
Deletes a window of data defined by the
WINDOW command.
|
MWINDOW |
Moves window defined by the
WINDOW command. Works like the
CWINDOW command, but data in the original window is
deleted after the copy operation.
|
This section provides an example of defining and moving text with a data window by using either line commands or corresponding main commands.
The example refers to the text shown in Step 1 below and assumes
that you want to move the whole sentence starting Note that
when...
(line 8) to follow the first sentence of the displayed text
ending ...copy operations
(line 3).
To define and move a window using line commands
EDIT-NAT:NATLIB1(WINEX)-Text->Struct-Free-78K ----------------- Columns 001 072 COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** 000001 Copy a Window with Data 000002 000003 You can specify a window with data for move or copy operations. This 000004 allows you to copy or move data that does not start or end at the 000005 beginning or end of a line. This function can be performed using 000006 editor line commands and/or main commands. 000007 000008 Below are some examples of copying windows with data. Note that when 000009 you define a window, all data on your screen between start and end of 000010 the window become part of the window. Available line commands are: ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Type the line command WS
in line
8, the first line of data to be moved, place the cursor in the required column
(N
of the word Note
) and press ENTER.
The message WS55
appears in the prefix area of
line 8, indicating the column number selected:
EDIT-NAT:NATLIB1(WINEX)-Text->Struct-Free-78K ---------------- Block is pending COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** 000001 Copy a Window with Data 000002 000003 You can specify a window with data for move or copy operations. This 000004 allows you to copy or move data that does not start or end at the 000005 beginning or end of a line. This function can be performed using 000006 editor line commands and/or main commands. 000007 WS55 Below are some examples of copying windows with data. Note that when 000009 you define a window, all data on your screen between start and end of 000010 the window become part of the window. Available line commands are: ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Type the line command WE
in line
10, the last line of data to be moved, move the cursor to the last column to be
moved (full stop (.
) after window
) and press
ENTER.
The message WE37
appears in the prefix area of
line 10:
EDIT-NAT:NATLIB1(WINEX)-Text->Struct-Free-78K ---------------- Block is pending COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** 000001 Copy a Window with Data 000002 000003 You can specify a window with data for move or copy operations. This 000004 allows you to copy or move data that does not start or end at the 000005 beginning or end of a line. This function can be performed using 000006 editor line commands and/or main commands. 000007 WS55 Below are some examples of copying windows with data. Note that when 000009 you define a window, all data on your screen between start and end of WE37 the window become part of the window. Available line commands are: ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Type the line command WM
in line
3 (the data will be moved to the following line, line 4), and move the cursor
to the column at which line 3 is to be split (the blank before the word
This
). Press ENTER.
The specified text section is moved:
EDIT-NAT:NATLIB1(WINEX)-Text->Struct-Free-78K ----------------- Checkpoint done COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** 000001 Copy a Window with Data 000002 000003 You can specify a window with data for move or copy operations. 000004 Note that when 000005 you define a window, all data on your screen between start and end of 000006 the window become part of the window. 000007 This 000008 allows you to copy or move data that does not start or end at the 000009 beginning or end of a line. This function can be performed using 000010 editor line commands and/or main commands. 000011 000012 Below are some examples of copying windows with data. 000013 Available line commands are: ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
You can achieve the same result described in the instructions above when using the command sequence indicated below.
To define and move a window using main commands
Type in the text shown in Step 1 above.
In the command line, enter the following:
WINDOW 8 10 55 37;MWINDOW 3 64
The specified text section is moved as illustrated in Step 4 above.
The editor provides commands which allow you to set horizontal and
vertical boundaries within which certain functions can be performed such as the
main commands FIND
,
CHANGE
, CENTER
,
ORDER
, JLEFT
and
JRIGHT
, as well as their corresponding line commands
(for example, TC
, TO
,
LJ
or RJ
).
This section covers the following topics:
With the BNDS
main command, you can
define horizontal boundaries as described in the following example
instructions.
To set and display boundaries
Issue the following main command:
BNDS 20 50
Horizontal limits are set at columns 20 and 50.
To display the current boundary settings, issue the following line command:
BNDS
The following figure shows the result of the
BNDS 20 50
main command followed by a
BNDS
line command in line 2:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------------ Columns 001 072 COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- =bnds> < > 000010 RESET #JOBNAME(A8) 000020 RESET #FD(N3) #FL(A8) #FF(N3) 000030 RESET #TD(N3) #TL(A8) #TF(N3) 000040 COMPRESS *INIT-USER 'SM' INTO #JOBNAME LEAVING NO SPACE 000050 SET CONTROL 'WL60C6B005/010F' 000060 INPUT 'ENTER PARAMETERS FOR LIBRARY COPY:' 000070 / 'FROM: DBID:' #FD 'FNR:' #FF 'LIB:' #FL 000080 / 'TO : DBID:' #TD 'FNR:' #TF 'LIB:' #TL 000090 // #JOBNAME JOB JWO,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT21,REGION=2000K,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') 000140 //STEPLIB DD DISP=SHR,DSN=OPS.SYSF.V5.ADALOAD 000150 // DD DISP=SHR,DSN=OPS.SYSF.PROD.LOAD 000160 //DDCARD DD * 000170 ADARUN DA=9,DE=3380,SVC=249 000180 //CMPRINT DD SYSOUT=X 000190 //CMPRT01 DD SYSOUT=X 000200 //CMWKF01 DD DUMMY 000210 //CMSYNIN DD * 000220 LOGON SYSMAIN2 000230 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000240 FIN 000250 /* Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
You can label the current line (line currently at the top of
editing area) or a block of lines by using either the
LABEL
main commands or corresponding line
commands.
To label current lines using
LABEL
Issue the following main command:
LABEL .X
The current line is labeled .X
.
To delineate a block of lines, you can now scroll to the next required delimiting line and issue the following main command:
LABEL .Y
The new current line is labeled .Y
denoting the
last line of a block of lines.
To label specific lines using line commands
Next to the first line to be labeled, issue the following line command:
.X
The specified line is labeled .X
.
Next to the last line to be labeled, issue the following line command:
.Y
The specified line is labeled .Y
delimiting a
block of lines that starts with the line labeled .X
.
Tip:
You can use any string to label lines, for example
.START
and .END
.
For examples of using labeled lines, see the sections Finding a Character String and Replacing a Character String.
You can define data that is automatically placed in a line added
through a line insertion operation (for example, by using the line command
I
or W
). Such a line is
referred to as a mask line. A mask line is useful when you must write several
lines of code which are identical or very similar.
Note:
You can only have one mask line during an editing session. If you
define a new mask line, any existing mask line definition is automatically
updated with the new value.
Issue the following line command:
MASK
A blank line indicated by =mask>
appears above
the line in which you entered the command.
In the blank line, enter the data you want to define as a mask line and press ENTER.
The mask line is now available for the current source until you update the mask with a new mask line or until you deactivate the mask function.
Issue the following main command:
MASK ON
The mask function is activated. The defined mask line now appears in all lines added through a line insert operation.
Issue an insert line command, for example:
I2
Two new lines are inserted into the source with the text of the mask line. The text of a mask line appears in all lines added with an insert command.
Modify the text in the new lines. If you do not modify the text, any inserted line is deleted the next time you press ENTER.
If required, deactivate the mask function with the following main command:
MASK OFF
The MASK OFF
command deactivates
the mask function but does not delete the contents of the mask
line.
See also MASK
in Summary of Main Commands.
You can change the indentation of specified lines by using the
ORDER
main command together with a boundary setting. For example, the command
sequence:
BNDS 3;ORDER 5 20
moves lines 5 to 20 right to start in column 3.
Note:
If the end of any ordered line traverses the right boundary, it
is automatically split.
To re-justify the shifted data to the left, use a
JLEFT
command.
You can also change the indentation of lines or of a block of data by using line commands. Here, too, if the end of any line traverses the right boundary, it is automatically split.
Line Command | Explanation |
---|---|
TF |
Orders data from the line on which it was entered to the
end of the paragraph or to the next blank line with the right boundary. This
line command can be entered with a numerical value specifying the right
boundary, for example, the line command TF50 orders
data with column 50.
|
TO |
Marks one line to be ordered. |
TOO |
Marks the first line of a block of data to be ordered.
Requires a second TOO line command to delineate the
block. Ordering is performed after the second TOO is
issued.
|
Data can be ordered within set boundaries and justified to the left
boundary, right boundary or both by using the
JUSTIFY
command. For example, the command:
BNDS 6 60;JUSTIFY BOTH
activates justification to columns 5 and 60. To perform the
ordering, mark a block of data with two TOO
line
commands.
The editor also provides a line command with which you can split a
single line into two. Type the line command S
in the
prefix area of the line you want to split, move the cursor to the position
where the split is to occur and press ENTER.
The editor also provides commands with which you can center specified data within set boundaries. For example, the sequence:
BNDS 5 60;CENTER 5 15
centers data in lines 5 to 15 between columns 5 and 60.
Note:
Only text already within the boundaries is centered. Text to the
left and right of the boundaries is not affected.
Alternatively, you can use line commands to perform the centering function:
Line Command | Explanation |
---|---|
TC |
Centers this line within the set boundaries. |
TCC |
Marks the first line in a block of data to be centered.
Requires a second TCC line command to delineate the
block. The centering is performed after the second
TCC command is issued.
|
A number of main commands and line commands are available to
rearrange lines or blocks of data on your screen, depending on the setting of
your horizontal boundaries (BNDS
main command); see the section Setting Horizontal and Vertical
Boundaries.
The JLEFT
and JRIGHT
main commands justifies the specified data with the left and right boundaries
respectively. For example, the sequence:
BNDS 16 80;JLEFT 140 170
justifies the data between columns 16 to 80 in lines 140 to 170 with column 16.
The figure below illustrates this example:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------------ Columns 001 072 COMMAND===> BNDS 16 80;JLEFT 140 170 SCROLL===> CSR =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- 000090 // #JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') 000140 //STEPLIB DD DISP=SHR,DSN=SPF.SYSF.ADALOAD 000150 // DD DISP=SHR,DSN=SPF.SYSF.LOAD 000160 // DD DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL 000170 // DD DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * 000190 ADARUN DA=9,DE=3380,SVC=249 000200 //CMPRINT DD SYSOUT=X 000210 //CMPRT01 DD SYSOUT=X 000220 //CMWKF01 DD DUMMY 000230 //CMSYNIN DD * 000240 LOGON SYSMAIN2 000250 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000260 FIN 000270 /* ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
The following screen shows the result of the command displayed in the command line of the previous screen:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------ File has been ordered COMMAND===> SCROLL===> CSR =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- 000090 // #JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') 000140 //STEPLIB DD DISP=SHR,DSN=SPF.SYSF.ADALOAD 000150 // DD DISP=SHR,DSN=SPF.SYSF.LOAD 000160 // DD DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL 000170 // DD DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * 000190 ADARUN DA=9,DE=3380,SVC=249 000200 //CMPRINT DD SYSOUT=X 000210 //CMPRT01 DD SYSOUT=X 000220 //CMWKF01 DD DUMMY 000230 //CMSYNIN DD * 000240 LOGON SYSMAIN2 000250 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000260 FIN 000270 /* ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
The sequence:
BNDS 10;JRIGHT 15
justifies the data on the right of column 10 in line 15 to the end of the screen with the last column of your editor screen (column 88 of your terminal screen).
Alternatively, you can justify lines or blocks of data by using any of the line commands listed in the following table:
Line Command | Explanation |
---|---|
LJ |
Justifies the data within the set boundaries in this line with the left boundary. |
LJJ |
Marks the first line of a block of data within the
boundaries (set with the BNDS main command) to be
justified to the left. A second LJJ line command is
required to delineate the block. Justification is performed after the second
LJJ is issued.
|
RJ |
Justifies the data within the set boundaries in this line with the right boundary. |
RJJ |
Marks the first line of a block of data within the
boundaries (set with the BNDS main command) to be
justified to the right. A second RJJ line command is
required to delineate the block. Justification is performed after the second
RJJ is issued.
|
You can also justify data to the left boundary, or order data
between left and right boundary in conjunction with the
JUSTIFY
command.
For example, the command sequence:
BNDS 10 60;JUSTIFY LEFT
enables justification to the left boundary. Mark a block of data
with two TOO
line commands (explained below) to
reformat the data between columns 10 and 60, justified to column 10.
This section provides instructions for using the
TABS
main command and/or the
TABS
line command to control tabulator settings.
In the examples of tabulation provided in this section, the
ampersand (&) is assumed to be the tabulation character; the
COLS
line command has been issued to display column
positions.
This section covers the following topics:
When you issue the TABS ON
main
command, the standard tab positions set in your editor profile are turned on
and tabs on std
appears in your profile. Issue the
TABS OFF
main command to turn tabulation off again.
For detailed information on the command syntax that applies to
TABS
,
see the relevant section in Summary of Main Commands.
This section covers the following topics:
To turn tabulation on and set the standard tab positions for
your profile to columns 10, 20, 30, 40 and 50, for example, issue the main
command TABS 10 20 30 40 50
.
To turn tabulation on and set the logical tab character to &
(ampersand), for example, issue the main command TABS
&
.
You can enter data and automatically move it to a specific tab position by preceding it with a logical tab character. One tab character moves the data to the next tab position, two tab characters moves the data to the second tab position, and so on.
Apart from tab positions, you can specify the following
parameters with the TABS
main command:
Parameter | Explanation |
---|---|
DECIMAL |
Orders data with the decimal point in the data at
the tab position.
See also Example 3 - TABS DECIMAL. |
LEFT |
Orders data to the left of the tab position.
See also Example 1 - Tab Positions. |
RIGHT |
Orders data to the right of the tab position.
See also Example 2 - TABS RIGHT. |
To display the current logical tab character and shift parameter
(excluding tab positions), issue the
PROFILE
main command.
When you issue the TABS
line command in
any line, the current tab positions set in your editor profile are displayed in
that line and marked with asterisks (*) if no logical tab character has been
set. This command does not turn tabulation on.
For example, issue the TABS
line
command to display the positions set with the main command TABS 10
20 30 40 50
.
This displays the current tab positions as follows:
=tabs> * * * * * * |
To tabulate data in a specific column and with a specific shift, multiple logical tab characters and mixed justification parameters are possible.
To set the multiple logical tab characters, issue the
TABS
line command and type a special character over
each asterisk (*). Any data typed in preceded by any of these logical tab
characters are tabulated in the corresponding column.
To set the mixed justification parameters, type L
(Left), R
(Right) or D
(Decimal) to the right of each
logical tab character for left, right or decimal ordering.
See also Example 4 - Mixed Justification.
The command
TABS 10 20 40 LEFT
activates logical tabs with tabulation columns 10, 20, and 40 with left justification. After you press ENTER, the input text line
&abc &def &ghi
is displayed as follows:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 abc def ghi |
The command
TABS RIGHT
activates logical tabs with right justification. After you press ENTER, the input text line
&abc &def &ghi
is displayed as follows:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 abc def ghi |
The command
TABS DECIMAL
activates logical tabs with justification of the decimal point in the tab position. After you press ENTER, the input text line
&15.27$ &16.3 EUR &13 IS
is displayed as follows:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 15.27$ 16.3 EUR 13 IS |
Issue the command:
TABS 10 20 30 40 50
Then issue the TABS
line command. This
displays the current tab positions as follows:
=tabs> * * * * * |
Type an L
, R
or D
next to
each tab position as required (unmarked tab positions assume the value of the
last TAB
command):
=tabs> *R *D *D *D *L |
After you press ENTER, the input text line
&start &0.01 &0.02 &0.03 &end
is displayed as follows:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 start 0.01 0.02 0.03 end |
Issue the command
TABS ' '
which activates tabulation with one blank as tabulation character. This means that words separated by one blank are tabulated. After you press ENTER, the input text line
this is a blank tabulation
is displayed as follows:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 this is a blank tabulation |
You can sort data lines in ascending or descending alphabetical order according to sorting criteria. For example, the command:
SORT 10 15
sorts all lines in the source in ascending order according to the characters beginning in column 10 and ending in column 15.
To sort only a block of lines, for example, label the lines where
the block is to start and end with .X
and .Y
respectively. The command:
SORT .X .Y D
sorts all lines in the block marked with .X
and
.Y
in descending order.
To sort a block of lines according to the characters beginning in
column 5 and ending in column 20, for example, label the lines where the block
is to start and end with .X
and .Y
respectively. The
command:
SORT 5 20 .X .Y
sorts all lines in the block marked by .X
and
.Y
in ascending order according to the characters beginning in
column 5 and ending in column 20.
To locate a specific character string, you can use the
FIND
main command with operands defining the string,
the area to be searched and the direction of search. The cursor is placed on
the first character of the string. If the line containing the string was
excluded from display, it is now included in the display.
The following sections describe the possible command operands.
The string operand defines the character string to be located.
You can specify any of the following:
Operand | Explanation | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
* |
Finds the string specified in previous
FIND command.
|
||||||||||||||||
'abc' |
Finds the string abc regardless of
whether the string is upper case or lower case.
|
||||||||||||||||
C'Abc' |
Finds the string exactly as entered here. | ||||||||||||||||
P'a(char)c' |
Finds the string whose first character is
a and third character is c .
(char) stands for a special character
acting as a wildcard character with the following meaning:
|
||||||||||||||||
T'abc' |
Finds the string abc regardless of
whether the string is upper case or lower case.
|
||||||||||||||||
X'D4A8' |
Finds the string that corresponds to hexadecimal
D4A8 .
|
The string-matching operand specifies whether any special occurrence of the string is to be located. The following options are possible:
Operand | Explanation |
---|---|
CHARS |
No restrictions (any occurrence of the string). |
PREFIX |
Only those occurrences which are the prefix of a word. |
SUFFIX |
Only those occurrences which are the suffix of a word. |
WORD |
Only those occurrences which form a word. |
Default is CHARS
.
The direction operand specifies the direction of the search operation.
The following options are possible:
Operand | Explanation |
---|---|
ALL |
Any occurrence of the string (search all directions). |
FIRST |
First occurrence of the string. |
LAST |
Last occurrence of the string. |
NEXT |
Next occurrence of the string starting from the cursor position. |
PREV |
Previous occurrence of the string. |
Default is NEXT
.
This line-type operand specifies whether excluded or included lines only are to be searched. The following options are possible:
Operand | Explanation |
---|---|
X |
Search excluded lines only. |
NX |
Search non-excluded lines only. |
If this operand is omitted, the editor searches all data for the given string, included and excluded lines. If the string is found in an excluded line, it is returned to display.
If you have labeled lines or a block of lines, you can use the
block operand to restrict the search area for the
FIND
command.
Two examples of the block operand follow:
Operand | Explanation |
---|---|
.X |
Search from line labeled .X to end of
data.
|
.X .Y |
Search from line labeled .X to line
labeled .Y .
|
where X
and Y
can be any alphabetic
character or four-character string.
The column operand allows you to restrict the search for the given string between certain columns. Below are two examples of the columns operand.
Operand | Explanation |
---|---|
20 |
Locate given string starting in column 20 (the first character of the string must be in column 20). |
20 40 |
Locate given string anywhere between columns 20 to 40. |
F C'HILITE' X PREV
Find the previous occurrence of the string HILITE
exactly as entered here; search excluded lines only.
F P'RCV#' .X .Z 20 30
Find the string starting RCV
with a numeric fourth
character within the block .X .Z
and between columns 20 to 30.
F X'6C' SUFFIX NX
Find the character corresponding to the hexadecimal
6C
in non-excluded lines only. The character must end a word.
Command | Explanation |
---|---|
F C'HILITE' X PREV |
Find the previous occurrence of the string
HILITE exactly as entered here; search excluded lines
only.
|
F P'RCV#' .X .Z 20
30 |
Find the string starting RCV with a
numeric fourth character within the block .X .Z and between
columns 20 to 30.
|
F X'6C' SUFFIX NX |
Find the character corresponding to the hexadecimal
6C in non-excluded lines only. The character must end a
word.
|
If single quotation marks are part of the string to be found, you
must use a different separator in the FIND
command,
for example double quotation marks:
FIND C"'string'"
You can repeat a previous FIND
command
with the RFIND
main command.
You can find and replace a given character string by another
character string by using the CHANGE
main command.
If apostrophes are part of the string to be replaced, you must use a
different separator in the CHANGE
command, for
example quotation marks:
CHANGE "'string1'" "'string2'"
The same operands as for the
FIND
command can be used with the CHANGE
command. For the
CHANGE
command, however, the ALL
directions operand means change all occurrences of the specified string.
After the replace operation is performed, the message
==chg>
appears in the prefix area of the changed line.
This section covers the following topics:
Command | Explanation |
---|---|
CHG 'LOW' 'HIGH' |
Replaces the first occurrence of LOW by
HIGH (upper and lower case ignored).
|
CHG C'OPS' 'SPF' .X .Y 28
32 all |
Replaces OPS (exactly as entered here) by
SPF ; replace all
occurrences in the block labeled .X and .Y and
between the columns 28 and 32.
See also the example screens below. |
Repeated
CHANGE
commands: |
|
CHG * 'NEW' |
Replaces the next occurrence of the string specified
in the last CHANGE command by the new string
NEW .
|
CHG 'OLD' * |
Replaces OLD by the same new string as
specified in the last CHANGE command.
|
The screen below illustrates the second example before the command is executed with ENTER:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------------ Columns 001 072 COMMAND===> CHG C'OPS' 'SPF' .X .Y 28 32 ALL SCROLL===> CSR ****** ****************************** top of data ***************************** =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- 000010 RESET #JOBNAME(A8) 000020 RESET #FD(N3) #FL(A8) #FF(N3) 000030 RESET #TD(N3) #TL(A8) #TF(N3) 000040 COMPRESS *INIT-USER 'SM' INTO #JOBNAME LEAVING NO SPACE 000050 SET CONTROL 'WL60C6B005/010F' 000060 INPUT 'ENTER PARAMETERS FOR LIBRARY COPY:' 000070 / 'FROM: DBID:' #FD 'FNR:' #FF 'LIB:' #FL 000080 / 'TO : DBID:' #TD 'FNR:' #TF 'LIB:' #TL 000090 // #JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') .X //STEPLIB DD DISP=SHR,DSN=OPS.SYSF.ADALOAD 000150 // DD DISP=SHR,DSN=OPS.SYSF.LOAD 000160 // DD DISP=SHR,DSN=OPS.SYSF.PROD.INST * OPS INSTALL .Y // DD DISP=SHR,DSN=OPS.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
The screen below illustrates the second example after the command is executed with ENTER:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------ 4 char 'OPS' changed COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- 000010 RESET #JOBNAME(A8) 000020 RESET #FD(N3) #FL(A8) #FF(N3) 000030 RESET #TD(N3) #TL(A8) #TF(N3) 000040 COMPRESS *INIT-USER 'SM' INTO #JOBNAME LEAVING NO SPACE 000050 SET CONTROL 'WL60C6B005/010F' 000060 INPUT 'ENTER PARAMETERS FOR LIBRARY COPY:' 000070 / 'FROM: DBID:' #FD 'FNR:' #FF 'LIB:' #FL 000080 / 'TO : DBID:' #TD 'FNR:' #TF 'LIB:' #TL 000090 // #JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') .X //STEPLIB DD DISP=SHR,DSN=SPF.SYSF.ADALOAD ==chg> // DD DISP=SHR,DSN=SPF.SYSF.LOAD ==chg> // DD DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL .Y // DD DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
All occurrences of the string OPS
have been replaced
by the string SPF
between lines 140 and 170 and within the columns
28 to 32.
When changing character strings, good use can be made of the
RFIND
(repeated FIND
) and
the RCHANGE
(repeated
CHANGE
) commands, for example, the sequence:
FIND 'abc' CHANGE 'abc' 'def' RFIND RCHANGE
allows you to find occurrences of a certain string and optionally change them with relatively small effort.