このセクションでは、メインコマンドおよび/または行コマンドを使用してすべてのオブジェクトタイプに使用できる機能について説明します。
このセクションでは、行の挿入と削除に使用できる行コマンドとメインコマンドについて説明します。
次の行コマンドを使用すると、エディタ画面で行の挿入および行の削除を実行できます。
行コマンド | 説明 |
---|---|
D |
この行を削除します。 |
Dn |
次の n 行を削除します。
|
DD |
削除するブロックの最初の行をマークします。 DD 行コマンドをもう 1 回実行してブロックを指定する必要があります。 2 番目の DD を入力した後に削除が実行されます。
|
DX |
.X というラベルの行を削除します。
|
DY |
.Y というラベルの行を削除します。
|
DX-Y |
.X というラベルの行から .Y というラベルの行まで、行のブロックを削除します。
|
I |
この行の後に 1 行挿入します。 エディタは挿入モードに切り替わります。 つまり、新しい行にデータを入力するか空白を入力して Enter キーを押すと、新しい行が自動的に挿入され、その位置にカーソルが置かれます。
挿入された行に新しいデータを入力しないで Enter キーを押すと、挿入モードが終了して空行が削除されます。 マスク行が定義されているときに |
nI |
この行の後に n 行挿入します。 新しい行にデータを入力できます。 Enter キーを押すと、使用されていない行が削除されますが、カーソルのある 1 行の空行は残ります(エディタは挿入モードのままです)。
|
TE |
エディタがテキスト入力モードに切り替わります。 つまり、この行を先頭としてエディタ画面が空白になり(行番号なし)、データを入力できるようになります。
Enter キーを押すと、残っていた空行は削除され、行番号が再表示されます。また、テキストは、設定されている余白内および指定されている行揃えに再フォーマットされます。 「POWER コマンド」も参照してください。 |
W |
1 行のウィンドウを開きます。 このウィンドウ行にデータを入力して Enter キーを押すと、新しい行は挿入されません。 |
Wn |
n 行のウィンドウを開きます。 Enter キーを押すと、使用されていない行がすべて削除されます。
|
テキスト入力モードへの切り替えには、POWER
メインコマンドも使用できます。
POWER
メインコマンドを発行すると、行番号のない空のエディタ画面が表示され、ここにデータを入力できます。 Enter キーを押すと、残っていた空行は削除され、行番号が再表示されます。また、テキストは、設定されている余白内および指定されている行揃えに再フォーマットされます。
行の削除には、DELETE
メインコマンドも使用できます。
例えば、次のコマンドを実行します。
DEL C'Abc' .X .Y 10 30 ALL
ラベル .X
および .Y
で区切られたブロック内で列 10 と 30 の間にある、入力した文字列 Abc
に完全に一致する文字列を含む行がすべて削除されます。
上記の FIND
コマンドで説明しているすべてのオペランドを指定できますが、ALL
方向オペランドを指定すると、指定した文字列を含むすべての行が削除されます。 条件を指定しないで DELETE
コマンドを実行すると、現在の行が削除されます。
次の行コマンドを使用すると、行またはデータブロックのコピー、移動、または繰り返しを行うことができます。
行コマンド | 説明 |
---|---|
A |
コピー行コマンド(C 、Cn 、CC )または移動行コマンド(M 、Mn 、MM )の対象行をマークします。 データはこの行の後に挿入されます。
|
B |
コピー行コマンド(C 、Cn 、CC )または移動行コマンド(M 、Mn 、MM )の対象行をマークします。 データはこの行の前に挿入されます。
|
C |
行コマンド A 、B 、または O でマークされた位置にこの行をコピーします。
|
Cn |
行コマンド A 、B 、または O でマークされた位置に次の n 行をコピーします。
|
CC |
コピーするブロックの先頭行をマークします。 CC をもう 1 回実行してブロックを指定する必要があります。 行コマンド A 、B 、または O で対象をマークした後にコピーが実行されます。
|
CX |
.X というラベルの行をコピーします。 この行の後ろにデータを挿入します。
|
CY |
.Y というラベルの行をコピーします。 この行の後ろにデータを挿入します。
|
CX-Y |
.X というラベルの行から .Y というラベルの行に、行のブロックをコピーします。 この行の後ろにデータを挿入します。
|
M |
行コマンド A 、B 、または O でマークされた位置にこの行を移動します。
|
Mn |
行コマンド A または B でマークされた位置に次の n 行を移動します。
|
MM |
移動するブロックの最初の行をマークします。 MM をもう 1 回実行してブロックを指定する必要があります。 行コマンド A 、B 、または O で対象をマークした後に移動が実行されます。
|
MX |
.X というラベルの行を移動します。 この行の後ろにデータを挿入します。
|
MY |
.Y というラベルの行を移動します。 この行の後ろにデータを挿入します。
|
MX-Y |
.X というラベルの行から .Y というラベルの行に、行のブロックを移動します。 この行の後ろにデータを挿入します。
|
O |
コピー行コマンド(C 、Cn 、CC )または移動行コマンド(M 、Mn 、MM )の対象行をマークします。 データはこの行にマージされます (境界内の空白文字のみ変更されます)。
「データ上書きの例」も参照してください。 |
nO |
その行と次の n 行を、コピー行コマンド(C 、Cn 、CC )または移動行コマンド(M 、Mn 、MM )の対象行としてマークします。 移動またはコピーされた行はこれらの行とマージされます。つまり、これらの行の空白文字は上書きされます。
「データ上書きの例」も参照してください。 |
OO |
コピー行コマンド(C 、Cn 、CC )または移動行コマンド(M 、Mn 、MM )の対象となる行のブロックの先頭行をマークします。 対象となる行のブロックの最後の行をマークするには OO コマンドがもう 1 つ必要です。
移動またはコピーされた行はこれらの行とマージされます。つまり、これらの行の空白文字は上書きされます。 「データ上書きの例」も参照してください。 |
R |
この行を 1 回繰り返します。 |
nR |
この行を n 回繰り返します。
|
RR |
繰り返すブロックの最初の行をマークします。 RR をもう 1 回実行してブロックを指定する必要があります。 2 番目の RR を入力した後に繰り返しが実行されます。
|
RRn |
2 つの RRn 行コマンドで指定されたブロックを n 回繰り返します。
|
) |
この行を左境界から 1 列右に移動します。 |
)n |
この行を n 列右に移動します。
|
))n |
n 列右に移動するブロックの最初の行をマークします。 ))n をもう 1 回実行してブロックを指定する必要があります。 2 番目の ))n コマンドを入力した後に移動が実行されます。 条件を指定しないで )) 行コマンドを 2 回発行すると、ブロックが 1 列右に移動します。
|
( |
この行を 1 列左に移動します。 |
(n |
この行を n 列左に移動します。
|
((n |
n 列左に移動するブロックの最初の行をマークします。 ((n をもう 1 回実行してブロックを指定する必要があります。 2 番目の ((n コマンドを入力した後に移動が実行されます。 条件を指定しないで (( 行コマンドを 2 回発行すると、ブロックが 1 列左に移動します。
|
> |
この行を 1 列右に移動します。 |
>n |
この行を n 列右に移動します。
|
>>n |
n 列右に移動するブロックの最初の行をマークします。 >> をもう 1 回実行してブロックを指定する必要があります。 2 番目の >> コマンドを入力した後に移動が実行されます。 条件を指定しないで >> 行コマンドを 2 回発行すると、ブロックが 1 列右に移動します。
|
< |
この行を 1 列左に移動します。 |
<n |
この行を n 列左に移動します。
|
<<n |
n 列左に移動するブロックの最初の行をマークします。 << をもう 1 回実行してブロックを指定する必要があります。 2 番目の << コマンドを入力した後に移動が実行されます。 条件を指定しないで << 行コマンドを 2 回発行すると、ブロックが 1 列左に移動します。
|
上書き行コマンド(O
、On
、または OO
)を使用すると、単一列のリストをマージして複数列のフォーマット(タブ形式)にできます。 上書き行コマンドは、コピー行コマンド(C
、Cn
、または CC
)または移動行コマンド(M
、Mn
、MM
)と組み合わせて使用できます。
次の 2 つの図で、この機能について説明します。
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 |
上記の図では、行 180~210 が MM
(移動)行コマンドでマークされています。 これらの行で、OO
(上書き)行コマンドでマークされている行 140~170 を上書きします。
次の図は、最初の図に示されている行コマンドの結果を示しています。 行 140~170 の上に行 180~210 が上書きされています。
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 |
データを含むウィンドウを指定して、移動またはコピー操作を実行できます。 これにより、行の先頭からデータが始まらない行、または行の最後でデータが終わらない行をコピーまたは移動できます。 この機能は、エディタの行コマンドおよび/またはメインコマンドを使用して実行できます。
ウィンドウを定義すると、そのウィンドウの開始から終了までの間にある画面上のすべてのデータが、ウィンドウの一部となります。
このセクションでは、次のトピックについて説明します。
行コマンド | 説明 |
---|---|
WS |
データウィンドウの開始をマークします。 カーソル位置は、データの読み込み元となる列を示します。 コマンドが入力された行にカーソルがない場合、ウィンドウは列 1 から開始されます。 |
WSn |
データウィンドウはこの行の列 n で開始されます。
|
WE |
データウィンドウの終わりをマークします。 WS と同じように機能します。 ウィンドウが同じ行で開始して終了する場合は、WE コマンドに対して WS コマンドを上書き入力します。 設定されたウィンドウの確認として、エディタにより接頭辞エリアにメッセージとして「WS (WSn )」および「WE (WEn )」が、またはウィンドウの開始と終了が同じ行の場合は「WW 」が表示されます。
新しいウィンドウを定義する前に、 |
WEn |
データウィンドウはこの行の列 n で終了します。
|
WC |
データウィンドウをコピーします。 カーソル位置は、コピーされたデータを挿入するためにこの行が分割される列を示します。 |
WCn |
この行を n 列で分割し、分割した行の間にデータをコピーします。
|
WM |
データウィンドウを移動します。 WC と同様に機能しますが、元のデータはコピー操作後に削除されます。
|
WMn |
この行を n 列で分割し、分割した行の間にデータを移動します。
|
メインコマンド | 説明 |
---|---|
WINDOW |
ウィンドウを定義します。 開始行と開始列および終了行と終了列は、コマンドパラメータで指定します。 パラメータが少なくとも 1 つは必要です。 次に例を示します。
行 5、列 24 で始まり、行 10、列 13 で終わるウィンドウを定義します。
行 5、列 24 で始まり、行 10、最後の列で終わるウィンドウを定義します。
行 5、最初の列で始まり、行 10、最後の列で終わるウィンドウを定義します。
行 5、最初の列で始まり、行 5、最後の列で終わるウィンドウを定義します。 |
CWINDOW |
WINDOW コマンドを使用して定義されたウィンドウをコピーします。 オプションパラメータでは、ウィンドウを挿入する行を指定します。 次に例を示します。
行 5 の後にウィンドウをコピーします。
列 24 で行 5 を分割し、分割された行の間にウィンドウをコピーします。 |
DWINDOW |
WINDOW コマンドで定義されたデータのウィンドウを削除します。
|
MWINDOW |
WINDOW コマンドで定義されたウィンドウを移動します。 CWINDOW コマンドと同様に機能しますが、元のウィンドウのデータはコピー操作後に削除されます。
|
このセクションでは、行コマンドまたは対応するメインコマンドを使用して、データウィンドウを持つテキストを定義または移動する例について説明します。
この例では、次の手順 1 に示すテキストを使用し、Note that when...
(行 8)で始まる文全体を、...copy operations
(行 3)で終わる表示テキスト部分の、最初の文の後ろに移動します。
行コマンドを使用してウィンドウを定義および移動するには
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 |
移動するデータの先頭行である行 8 で行コマンド WS
を入力し、対象とする列(単語 Note
の N
)にカーソルを置いて Enter キーを押します。
行 8 の接頭辞エリアにメッセージ「WS55
」が表示され、この列番号が選択されたことを示します。
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 |
移動するデータの最終行である行 10 で行コマンド WE
を入力し、移動する最後の列(window
の後のピリオド(.
))にカーソルを移動して Enter キーを押します。
行 10 の接頭辞エリアにメッセージ「WE37
」が表示されます。
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 |
行コマンド WM
を行 3 に入力し(データは次の行である行 4 に移動)、行 3 を分割する列(単語 This
の前の空白)にカーソルを移動します。 Enter キーを押します。
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 |
次に示すコマンドシーケンスを使用すると、上記の手順と同じ結果が得られます。
メインコマンドを使用してウィンドウを定義および移動するには
上記の手順 1 に示すテキストを入力します。
コマンド行で、次のように入力します。
WINDOW 8 10 55 37;MWINDOW 3 64
指定されたテキストセクションが、上記の手順 4 に示すように移動します。
エディタには、特定の機能の実行範囲を示す水平方向および垂直方向の境界を設定するコマンドがあります。メインコマンド FIND
、CHANGE
、CENTER
、ORDER
、JLEFT
、JRIGHT
、および対応する省略形(TC
、TO
、LJ
、または RJ
)などで実行される機能に適用されます。
このセクションでは、次のトピックについて説明します。
BNDS
メインコマンドを使用すると、次の手順例で説明しているように、水平方向の境界を定義できます。
境界を設定して表示するには
次のメインコマンドを発行します。
BNDS 20 50
水平方向の境界が列 20 と列 50 に設定されます。
現在の境界設定を表示するには、次の行コマンドを発行します。
BNDS
次の図は、BNDS 20 50
メインコマンドを実行し、その後に行 2 で BNDS
行コマンドを実行した結果を示しています。
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 |
LABEL
メインコマンドまたは対応する行コマンドを使用すると、現在の行(現在、編集エリアの最上位にある行)、または行のブロックにラベルを付けることができます。
LABEL
を使用して現在の行にラベルを付けるには
次のメインコマンドを発行します。
LABEL .X
現在の行に .X
というラベルが付きます。
行のブロックを指定する場合は、次に区切りが必要な行までスクロールし、次の行コマンドを発行します。
LABEL .Y
新しい現在の行に .Y
というラベルが付き、行のブロックの最後の行であることを示します。
行コマンドを使用して特定の行にラベルを付けるには
ラベルを付ける先頭行の横で、次の行コマンドを発行します。
.X
指定された行に .X
というラベルが付きます。
ラベルを付ける最後の行の横で、次の行コマンドを発行します。
.Y
指定された行に .Y
というラベルが付き、.X
というラベルの付いた行で始まる行のブロックを示します。
ヒント:
行のラベル付けには、.START
および .END
などの任意の文字列を使用できます。
ラベルが付いた行の使用例については、「文字列の検索」および「文字列の置換」を参照してください。
行挿入操作(例えば、行コマンド I
または W
を使用して)で追加された行に自動配置されるデータを定義できます。 このような行をマスク行と呼びます。 マスク行は、同じコード行または非常に似たコード行を複数記述する必要があるときに役に立ちます。
注意:
1 回の編集セッション中に定義できるマスク行は 1 つのみです。 新しいマスク行を定義すると、既存のマスク行定義は新しい値で自動的に更新されます。
次の行コマンドを発行します。
MASK
コマンドを入力した行の上に[=mask>]
で示される空行が表示されます。
マスク行として定義するデータをこの空行に入力し、Enter キーを押します。
このマスク行は、新しいマスク行でマスクを更新するか、またはマスク機能を無効にするまで、現在のソースで有効です。
次のメインコマンドを発行します。
MASK ON
マスク機能が有効になります。 定義されたマスク行は、行挿入操作で追加されたすべての行に表示されます。
例えば、次のような行挿入コマンドを発行します。
I2
新しい行が 2 行、マスク行のテキストが指定されてソースに挿入されます。 マスク行のテキストは、挿入コマンドを使用して追加されたすべての行に指定されます。
新しい行のテキストを変更します。 テキストを変更しなかった場合、挿入された行は次回 Enter キーを押したときに削除されます。
必要に応じて、次のメインコマンドを使用してマスク機能を無効にします。
MASK OFF
MASK OFF
コマンドはマスク機能を無効にしますが、マスク行の内容は削除しません。
「メインコマンドの概要」の MASK
の説明も参照してください。
ORDER
メインコマンドを境界設定と組み合わせて使用すると、指定した行の段落付けを変更できます。 例えば、次のコマンドシーケンスを実行します。
BNDS 3;ORDER 5 20
行 5~20 が右に移動し、列の開始が列 3 からになります。
注意:
整列した行の最後が右境界を越えた場合、この行は自動的に分割されます。
左に移動したデータを再度揃えるには、JLEFT
コマンドを使用します。
また、行コマンドを使用して、行またはデータブロックの段落付けを変更することもできます。 この場合も、行の最後が右境界を越えた場合、この行は自動的に分割されます。
行コマンド | 説明 |
---|---|
TF |
コマンドが入力された行のデータを、パラグラフの最後、または右境界が指定された次の空行に整列します。 この行コマンドは、右境界を指定する数値を使用して入力できます。例えば、行コマンド TF50 を実行すると、データが列 50 に整列します。
|
TO |
整列する 1 行をマークします。 |
TOO |
整列するデータブロックの先頭行をマークします。 TOO 行コマンドをもう 1 回実行し、ブロックを指定する必要があります。 2 番目の TOO を発行した後に整列が実行されます。
|
JUSTIFY
コマンドを使用すると、設定されている境界内でデータを整列し、左境界、右境界、または左右の境界にデータを揃えることができます。 例えば、次のコマンドを実行します。
BNDS 6 60;JUSTIFY BOTH
列 5 と 60 への桁揃えが有効になります。 整列を実行するには、データのブロックを 2 つの TOO
行コマンドでマークします。
また、単一行を 2 つに分割できる行コマンドも提供されています。 分割する行の接頭辞エリアに行コマンド S
を入力し、分割を実行する位置にカーソルを移動して Enter キーを押します。
エディタには、設定されている境界内の指定したデータを中央揃えにできるコマンドも用意されています。 例えば、次のシーケンスを実行します。
BNDS 5 60;CENTER 5 15
行 5 から 15 までの間で列 5~60 の範囲にあるデータが中央揃えになります。
注意:
中央に配置されるのは、すでに境界内にあるテキストのみです。 境界より左および右にあるテキストには影響がありません。
代わりに、行コマンドを使用して中央揃えの機能を実行することもできます。
行コマンド | 説明 |
---|---|
TC |
設定されている境界内のこの行を中央揃えにします。 |
TCC |
中央揃えにするデータブロックの先頭行をマークします。 TCC 行コマンドをもう 1 回発行し、ブロックを指定する必要があります。 2 番目の TCC コマンドを発行した後に中央揃えが実行されます。
|
画面上の行またはデータブロックを再配置するためのメインコマンドおよび行コマンドがいくつか用意されています。再配置は、水平方向の境界設定(BNDS
メインコマンド)に従います。「水平方向および垂直方向の境界の設定」セクションを参照してください。
JLEFT
メインコマンドと JRIGHT
メインコマンドを使用すると、指定したデータがそれぞれ左境界および右境界に揃えられます。 例えば、次のシーケンスを実行します。
BNDS 16 80;JLEFT 140 170
行 140~170 で列 16 と 80 の間にあるデータが列 16 に揃えられます。
次の図でこの例を説明します。
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 |
次の図は、前の画面のコマンド行に表示されているコマンドの実行結果を示しています。
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 |
次のシーケンスを実行します。
BNDS 10;JRIGHT 15
行 15 の列 10 の右にあるデータが、エディタ画面の最後の列(端末画面の列 88)で画面端に揃えられます。
代わりに、次の表にリストされている行コマンドのいずれかを使用して、行またはデータブロックを行揃えすることもできます。
行コマンド | Explanation |
---|---|
LJ |
この行で設定されている境界内のデータを左境界に揃えます。 |
LJJ |
BNDS メインコマンドを使用して設定されている境界内で、データブロックの先頭行をマークし、そのブロックを左に揃えます。 LJJ 行コマンドをもう 1 回実行してブロックを指定する必要があります。 2 番目の LJJ を発行した後に行揃えが実行されます。
|
RJ |
この行で設定されている境界内のデータを右境界に揃えます。 |
RJJ |
BNDS メインコマンドを使用して設定されている境界内で、データブロックの先頭行をマークし、そのブロックを右に揃えます。 RJJ 行コマンドをもう 1 回実行してブロックを指定する必要があります。 2 番目の RJJ を発行した後に行揃えが実行されます。
|
また、左境界にデータを揃えたり、JUSTIFY
コマンドと組み合わせて左右の境界間にデータを整列したりすることもできます。
例えば、次のコマンドシーケンスを実行します。
BNDS 10 60;JUSTIFY LEFT
左境界に桁揃えすることができます。 2 つの TOO
行コマンドを使用してデータのブロックをマークし(前述を参照)、列 10 と 60 の間のデータを再フォーマットして列 10 に揃えます。
このセクションでは、TABS
メインコマンドおよび/または TABS
行コマンドを使用してタブ設定を制御する方法を説明します。
このセクションのタブ機能の例では、タブ文字としてアンパサンド(&)を使用しています。列位置の表示には COLS
行コマンドが発行されています。
このセクションでは、次のトピックについて説明します。
TABS ON
メインコマンドを発行すると、エディタプロファイルに設定されている標準タブ位置
がオンになり、プロファイルに標準のタブが表示されます。 タブ機能を再度オフにするには、TABS OFF
メインコマンドを発行します。
TABS
に適用されるコマンド構文の詳細については、「メインコマンドの概要」の関連セクションを参照してください。
このセクションでは、次のトピックについて説明します。
例えば、タブ機能をオンにしてプロファイルの標準タブ位置を列 10、20、30、40、および 50 に設定するには、メインコマンド TABS 10 20 30 40 50
を発行します。
例えば、タブ機能をオンにして論理タブ文字を &(アンパサンド)に設定するには、メインコマンド TABS &
を発行します。
論理タブ文字をデータの前に挿入すると、データを入力して特定のタブ位置に自動的に移動できます。 タブ文字を 1 文字付けるとデータは次のタブ位置に移動し、タブ文字を 2 文字付けると 2 番目のタブ位置に移動します。
タブ位置の他に、TABS
メインコマンドでは次のパラメータを指定できます。
パラメータ | 説明 |
---|---|
DECIMAL |
タブ位置にデータの小数点が来るようにデータを整列します。
「例 3 - TABS DECIMAL」も参照してください。 |
LEFT |
タブ位置の左にデータを整列します。
「例 1 - タブ位置」も参照してください。 |
RIGHT |
タブ位置の右にデータを整列します。
「例 2 - TABS RIGHT」も参照してください。 |
現在の論理タブ文字およびシフトパラメータ(タブ位置を除く)を表示するには、PROFILE
メインコマンドを発行します。
任意の行で TABS
行コマンドを発行すると、エディタプロファイルに設定されている現在のタブ位置がその行に表示されます。論理タブ文字が設定されていない場合は、アスタリスク(*)でマークされます。 このコマンドを実行してもタブ機能はオンになりません。
例えば、メインコマンド TABS 10 20 30 40 50
を使用して設定された位置を表示するには、TABS
行コマンドを発行します。
これにより、現在のタブ位置が次のように表示されます。
=tabs> * * * * * * |
特定の列および特定のシフトでデータにタブを設定できるよう、複数の論理タブ文字の使用と行揃えパラメータの混在が可能です。
論理タブ文字を複数設定するには、TABS
行コマンドを発行し、各アスタリスク(*)を特殊文字で上書きします。 これらの論理タブ文字のいずれかを先頭に付けてデータを入力すると、そのデータは対応する列にタブ設定されます。
位置揃えパラメータの混在を設定するには、左、右、または小数点に整列する各論理タブ文字の右に L
(左)、R
(右)、または D
(小数点)を入力します。
「例 4 - 位置揃えの混在」も参照してください。
コマンド
TABS 10 20 40 LEFT
タブ列 10、20、および 40 で左詰めの論理タブを有効にします。 Enter キーを押すと、入力テキスト行
&abc &def &ghi
は、次のように表示されます。
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 abc def ghi |
コマンド
TABS RIGHT
右詰めの論理タブを有効にします。 Enter キーを押すと、入力テキスト行
&abc &def &ghi
は、次のように表示されます。
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 abc def ghi |
コマンド
TABS DECIMAL
タブ位置に小数点を揃える論理タブを有効にします。 Enter キーを押すと、入力テキスト行
&15.27$ &16.3 EUR &13 IS
は、次のように表示されます。
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 15.27$ 16.3 EUR 13 IS |
次のコマンドを発行します。
TABS 10 20 30 40 50
次に、TABS
行コマンドを発行します。 これにより、現在のタブ位置が次のように表示されます。
=tabs> * * * * * |
必要に応じて、L
、R
、または D
を各タブ位置の横に入力します(タブ位置を指定しなければ、最後の TAB
コマンドの値が使用されます)。
=tabs> *R *D *D *D *L |
Enter キーを押すと、入力テキスト行
&start &0.01 &0.02 &0.03 &end
は、次のように表示されます。
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 start 0.01 0.02 0.03 end |
次のコマンドを発行します。
TABS ' '
1 つの空白をタブ文字として有効にします。 つまり、1 つの空白で分割された単語がタブ設定されます。 Enter キーを押すと、入力テキスト行
this is a blank tabulation
は、次のように表示されます。
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 this is a blank tabulation |
データ行は、ソート条件に従って、アルファベット順に昇順または降順でソートできます。 例えば、次のコマンドを実行します。
SORT 10 15
列 10 から列 15 までの文字に従って、ソース内のすべての行が昇順にソートされます。
例えば、行のブロックのみをソートするには、ブロックの開始行および終了行にそれぞれ .X
および .Y
でラベルを付けます。 次のコマンドを実行すると、
SORT .X .Y D
.X
および .Y
でマークされたブロック内のすべての行が降順にソートされます。
例えば、列 5 から列 20 までの文字を使用して行のブロックをソートするには、ブロックの開始行および終了行にそれぞれ .X
および .Y
でラベルを付けます。 次のコマンドを実行します。
SORT 5 20 .X .Y
列 5 から列 20 までの文字に従って、.X
および .Y
でマークされたブロック内のすべての行が昇順でソートされます。
特定の文字列を検索するには、文字列を定義するオペランド、検索対象エリア、および検索の方向を指定して FIND
メインコマンドを使用します。 カーソルは、該当文字列の最初の文字の上に置かれます。 文字列を含む行が表示されていない場合は、表示されるようになります。
次のセクションでは、使用可能なコマンドオペランドについて説明します。
文字列オペランドでは検索対象の文字列を定義します。
次のいずれかを指定できます。
オペランド | 説明 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
* |
前の FIND コマンドで指定した文字列を検索します。
|
||||||||||||||||
'abc' |
文字列が大文字か小文字かに関係なく、文字列 abc を検索します。
|
||||||||||||||||
C'Abc' |
入力した文字列に完全に一致する文字列を検索します。 | ||||||||||||||||
P'a(char)c' |
最初の文字が a で、3 番目の文字が c である文字列を検索します。 (char) は、ワイルドカード文字として動作する特殊文字を表します。ワイルドカード文字には次の意味があります。
|
||||||||||||||||
T'abc' |
文字列が大文字か小文字かに関係なく、文字列 abc を検索します。
|
||||||||||||||||
X'D4A8' |
16 進数 D4A8 に対応する文字列を検索します。
|
文字列一致オペランドでは、文字列の特殊なオカレンスを検索するかどうかを指定します。 次のオプションを使用できます。
オペランド | 説明 |
---|---|
CHARS |
制限なし(文字列の任意の位置) |
PREFIX |
単語の接頭辞に該当する位置のみ |
SUFFIX |
単語の接尾辞に該当する位置のみ |
WORD |
単語に該当する位置のみ |
デフォルトは CHARS
です。
方向オペランドでは検索操作の方向を指定します。
次のオプションを使用できます。
オペランド | 説明 |
---|---|
ALL |
文字列の任意のオカレンス(全方向検索) |
FIRST |
文字列の最初のオカレンス |
LAST |
文字列の最後のオカレンス |
NEXT |
カーソル位置を開始位置とする文字列の次のオカレンス |
PREV |
文字列の前のオカレンス |
デフォルトは NEXT
です。
この行タイプオペランドでは、非表示の行または表示されている行のみを検索対象とするかどうかを指定します。 次のオプションを使用できます。
オペランド | 説明 |
---|---|
X |
非表示の行のみを検索します。 |
NX |
表示されている行のみを検索します。 |
このオペランドを省略すると、表示されている行および非表示の行のすべてのデータを対象に、指定した文字列を検索します。 非表示の行で文字列が検出された場合は、その行を表示するように切り替えられます。
行または行のブロックにラベルが付けてある場合は、ブロックオペランドを使用して FIND
コマンドの検索エリアを制限できます。
ブロックオペランドの 2 つの例を次に示します。
オペランド | 説明 |
---|---|
.X |
.X というラベルの行からデータの最後まで検索します。
|
.X .Y |
.X というラベルの行から .Y というラベルの行まで検索します。
|
ここで、X
および Y
には任意の英字または 4 文字の文字列を使用できます。
列オペランドを使用すると、指定した文字列の検索を特定の列内に制限できます。 列オペランドの 2 つの例を次に示します。
オペランド | 説明 |
---|---|
20 |
指定した文字列を列 20 から検索します(文字列の最初の文字が列 20 にあることが必要)。 |
20 40 |
指定した文字列を列 20~40 の間で検索します。 |
F C'HILITE' X PREV
入力した文字列に完全に一致する文字列 HILITE
の前のオカレンスを検索します。検索対象は非表示の行のみです。
F P'RCV#' .X .Z 20 30
RCV
で始まり 4 文字目が数字の文字列を、ブロック .X .Z
内の列 20~30 で検索します。
F X'6C' SUFFIX NX
16 進数 6C
に該当する文字を、表示されている行のみで検索します。 この文字で単語が終わっている必要があります。
コマンド | 説明 |
---|---|
F C'HILITE' X PREV |
入力した文字列に完全に一致する文字列 HILITE の前のオカレンスを検索します。検索は非表示の行のみです。
|
F P'RCV#' .X .Z 20 30 |
RCV で始まり 4 文字目が数字の文字列を、ブロック .X .Z 内の列 20~30 で検索します。
|
F X'6C' SUFFIX NX |
16 進数 6C に該当する文字を、表示されている行のみで検索します。 文字の最後は単語である必要があります。
|
検索する文字列に一重引用符が含まれている場合は、FIND
コマンドで別のセパレータを使用する必要があります。例えば、二重引用符を使用すると次のようになります。
FIND C"'string'"
RFIND
メインコマンドを使用すると、前回の FIND
コマンドを繰り返すことができます。
CHANGE
メインコマンドを使用すると、指定した文字列を検索し、その文字列を別の文字列に置換できます。
置換する文字列にアポストロフィが含まれている場合は、CHANGE
コマンドで別のセパレータを使用する必要があります。例えば、二重引用符を使用すると次のようになります。
CHANGE "'string1'" "'string2'"
CHANGE
コマンドでは、FIND
コマンドと同じオペランドを使用できます。 ただし、CHANGE
コマンドの場合、ALL
方向オペランドを使用すると、指定した文字列のすべてのオカレンスが変更されます。
置換操作の実行後、変更のあった行の接頭辞エリアにはメッセージ「==chg>
」が表示されます。
このセクションでは、次のトピックについて説明します。
コマンド | 説明 |
---|---|
CHG 'LOW' 'HIGH' |
LOW の最初のオカレンスを HIGH に変更します(大文字および小文字は無視)。
|
CHG C'OPS' 'SPF' .X .Y 28 32 all |
OPS (入力した文字列に完全に一致)を SPF ; に変更します。変更されるのは、.X および .Y というラベルが付けられたブロックの列 28~32 にあるすべての オカレンスです。
次の画面例も参照してください。 |
CHANGE コマンドの繰り返し: |
|
CHG * 'NEW' |
最後の CHANGE コマンドで指定した文字列の次のオカレンスを、新しい文字列 NEW に置換します。
|
CHG 'OLD' * |
文字列 OLD を、最後の CHANGE コマンドで指定した文字列と同じ新しい文字列に置換します。
|
次の画面は、2 番目の例で 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 |
次の画面は、2 番目の例で 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 |
行 140~170 で列 28~32 の範囲にある文字列 OPS
のすべてのオカレンスが、文字列 SPF
に置換されています。
文字列を変更する場合は、RFIND
(FIND
の繰り返し)および RCHANGE
(CHANGE
の繰り返し)機能を使用すると便利です。例えば、次のシーケンスを実行します。
FIND 'abc' CHANGE 'abc' 'def' RFIND RCHANGE
これらのコマンドにより、特定の文字列のオカレンスを検索し、さらに比較的少ない労力でその文字列を変更できます。
また、これらのコマンドを PF キーに割り当てることもできます。