OpenVMS
ユーザーズ・マニュアル


前へ 次へ 目次 索引


A.7.2 EVE エディタへの機能の追加

コマンド・ファイルを使用して編集環境の特性を設定し,標準のEVE エディタに機能を追加するには,再び /COMMAND 修飾子を付けて EVE を起動します。たとえば,次のようにします。


$ EDIT/TPU/COMMAND=DATA_SETUP

EVE はコマンド・ファイル内の文をもう一度実行しますが, SAVE 文がないため,コンパイルされたプロシージャやキー定義はセーブされません。

コマンド修飾子を指定しない場合, EVE は論理名 TPU$COMMAND によって指定されたファイルを検索します。この論理名は LOGIN.COM ファイルで定義できます。このファイルが見つからない場合, DECTPU は現在のディレクトリにある TPU$COMMAND.TPU という名前のファイルを検索します。

A.7.2.1 コマンド・ファイルの作成規則

コマンド・ファイルを作成する場合には,次の規則に注意してください。

EVE コマンド・ファイル

次の例では,EVE を EDT エディタに類似するように変更するコマンド・ファイルを示しています。このファイルは,MY_SECTION.TPU$SECTION という名前の個人用セクション・ファイルを作成します。


 
!********************************************************************* 
!Command file making EVE more like EDT 
!and implementing personal customizations 
!********************************************************************* 
 
!Procedure to delete a line and close the gap left by the deletion  (1)
 
PROCEDURE EVE_ZAPLINE 
 
EVE_END_OF_LINE; 
 
EVE_ERASE_START_OF_LINE;      (2)
 
EVE_DELETE; 
 
ENDPROCEDURE 
 
 
!Procedure to move the cursor to the beginning of the next paragraph: 
 
PROCEDURE EVE_NEXT_PARAGRAPH  (3)
 
LOCAL   PAT1, 
        THE_RANGE; 
 
PAT1 := line_begin + line_begin + ARB (1); 
THE_RANGE := SEARCH_QUIETLY (PAT1, forward, exact); 
 
IF THE_RANGE <> 0 
THEN 
    POSITION (END_OF (THE_RANGE)); 
    RETURN (TRUE);            (4)
ELSE 
    RETURN (FALSE); 
ENDIF; 
 
ENDPROCEDURE 
 
!Procedure to make EVE behave more like EDT 
 
PROCEDURE EVE_MIMIC_EDT 
 
EVE_SET_KEYPAD_EDT; 
EVE_SET_CURSOR_BOUND; 
EVE_SET_LEFT_MARGIN(10);      (5)
 
ENDPROCEDURE 
 
!Procedure to transpose two characters 
 
PROCEDURE EVE_TRANSPOSE 
 
LOCAL   WHACK; 
 
WHACK := ERASE_CHARACTER (1); 
MOVE_HORIZONTAL (1); 
COPY_TEXT (WHACK); 
 
RETURN (TRUE); 
ENDPROCEDURE 
 
!Procedure to make both the screen width and the right margin narrow 
 
PROCEDURE EVE_NARROW_SCREEN 
 
EVE_SET_WIDTH (80); 
EVE_SET_RIGHT_MARGIN (79); 
 
ENDPROCEDURE; 
 
!Procedure to make both the screen width and the right margin wide 
 
PROCEDURE EVE_WIDE_SCREEN 
 
EVE_SET_WIDTH (132); 
EVE_SET_RIGHT_MARGIN (131); 
 
ENDPROCEDURE; 
 
!Procedure to toggle screen width and right margin from 
!the current setting to the other setting, for example to 
!change to wide if narrow, change to narrow if wide 
 
PROCEDURE EVE_CHANGE_WIDTH    (6)
 
IF GET_INFO (SCREEN, "width") <> 80 
THEN 
    EVE_NARROW_SCREEN; 
ELSE 
    EVE_WIDE_SCREEN; 
ENDIF; 
 
ENDPROCEDURE; 
 
PROCEDURE TPU$LOCAL_INIT      (7)
 
EVE_MIMIC_EDT;                (8)
 
EVE$DEFINE_KEY ("EVE_NEXT_PARAGRAPH", CTRL_P_KEY, "Next Para", 
                EVE$X_USER_KEYS); (9)
 
EVE$DEFINE_KEY("EVE_ZAPLINE", KEY_NAME ("O", SHIFT_KEY), "Zap Line", 
               EVE$X_USER_KEYS);  (10)
 
EVE$DEFINE_KEY ("EVE_TWO_WINDOWS", F17, "Two Windows", EVE$X_USER_KEYS); 
                                                              (11)
 
EVE$DEFINE_KEY ("EVE_OTHER_WINDOW", CTRL_G_KEY, "Other Window", 
                EVE$X_USER_KEYS); (12)
 
EVE$DEFINE_KEY ("EVE_GET_FILE('')", KEY_NAME (KP6, SHIFT_KEY), "Get File", 
                EVE$X_USER_KEYS); (13)
 
EVE$DEFINE_KEY ("EVE_TRANSPOSE", KEY_NAME (F20, SHIFT_KEY), "Transpose", 
                EVE$X_USER_KEYS); (14)
ENDPROCEDURE 
 
TPU$LOCAL_INIT;               (15)
 
SAVE ("WORK:[LINCOLN]MY_SECTION.TPU$SECTION");   (16)
 
QUIT;                         (17)
 

例を確認する場合には,次のことに注意してください。

  1. この行の先頭には感嘆符 (!) が指定されている。したがって,DECTPU はこの行の内容をすべて無視する。

  2. 各 EVE コマンドは,標準 EVE のセクション・ファイル内の DECTPU プロシージャの名前 (SYS$SHARE:EVE$SECTION.TPU$SECTION) に対応する。
    これらの DECTPU プロシージャの名前は,作成するプロシージャの内部で使用でき,また,DECTPU 文として単独で実行することもできる。コマンド・ファイルにユーザ作成プロシージャと実行可能 DECTPU 文の両方が格納される場合には,実行可能文の前にすべてのプロシージャを登録する。

  3. このコマンドは EVE プロシージャ EVE_NEXT_PARAGRAPH を呼び出す。セクション・ファイルをコンパイルした後,新しい EVE コマンド NEXT PARAGRAPH を使用できる。

  4. 繰り返しカウントを指定して (単独で指定するか,または学習シーケンスの一部として指定する) EVE コマンドを使用可能にするには,コマンドが正常終了したときに TRUE を戻されなければならない。

  5. EVE コマンド SET LEFT MARGIN は,左マージンを設定する位置を指定するパラメータを必要とする。この例では,左マージンは 10 に設定される。

  6. EVE_CHANGE_WIDTH という名前のプロシージャは,EVE コマンド CHANGE WIDTH として起動することができる。プロシージャ名は DECTPU 実行可能文 EVE_CHANGE_WIDTH として起動することもできる。

  7. TPU$LOCAL_INIT というプロシージャは,セクション・ファイルとして使用される。

  8. この DECTPU 文はプロシージャ EVE_MIMIC_EDT を起動する。このプロシージャには,EVE 設定を変更する DECTPU 文が含まれている。サンプル・コマンド・ファイルをコンパイルすると,そのファイルは個人用セクション・ファイルにセーブされ,そのセクション・ファイルを作用して EVE を起動する。この操作を実行すると,キーパッド設定,カーソル・スタイル,左マージンは,プロシージャ EVE_MIMIC_EDT によって自動的に設定される。その結果,EVE はスタートアップ時に EDT と同様の動作をする。

  9. この DECTPU 文は,既定の EVE ルーチン EVE$DEFINE_KEY を使用して,キー・シーケンス Ctrl/P に対してユーザ作成プロシージャ EVE_NEXT_PARAGRAPH を定義する。EVE$DEFINE_KEY ルーチンにより,キーに結合されたプログラムにエラー・ハンドラが割り当てられる。 DECTPU 組み込みルーチンである DEFINE_KEY はこの操作を実行しない。
    EVE$DEFINE_KEY に対するパラメータとして,4 つのパラメータがある (このルーチンは,DECTPU 組み込みルーチンの DEFINE_KEY と同じパラメータを使用する)。最初のパラメータは,キーに結合される EVE プロシージャまたはコマンドを指定する。 2 番目のパラメータは,コマンドを結合しなければならないキーを指定する。 3 番目のパラメータは,EVE がヘルプ・キーパッドの図でキーに対して使用するラベルを指定する。4 番目のパラメータは,キー定義をセーブしなければならないキーマップ・リストを指定する EVE 変数である。特殊なアプリケーションを実現している上級ユーザでない限り, 4 番目のパラメータに対しては,変数名 EVE$X_USER_KEYS を使用する。

  10. この DECTPU 文はキー・シーケンス GOLD O に対して,プロシージャ EVE_ZAPLINE を定義する。この行は,GOLD キーと英字キーで構成されるシーケンスを定義するとき使用される DECTPU 形式を示している。 "shift_key" を使用すると,定義で大文字と小文字が区別されなくなる。したがって,oO の両方が定義される。

  11. この文は,F17 キーに対して EVE コマンド TWO WINDOWS を定義する。

  12. この文は,キー・シーケンス Ctrl/G に対して EVE コマンド OTHER WINDOW を定義する。

  13. この文は,キー・シーケンス GOLD KP6 に対して EVE コマンド GET FILE を定義する。このキーパッドの割り当ては,GOLD KP6 キーの以前の定義より優先する。 EVE_MIMIC_EDT プロシージャは,キーパッドを EDT に設定し, EDT キーパッドは GOLD KP6 キー・シーケンスを INSERT HERE コマンドに結合する。しかし,この DECTPU 文はキー結合を GET FILE コマンドに変更する。 2 つの一重引用符は空の引数をプロシージャに渡す。

  14. この文は,キー・シーケンス GOLD F20 に対して,プロシージャ EVE_TRANSPOSEを定義する。

  15. この文はプロシージャ TPU$LOCAL_INIT を呼び出す。このプロシージャが実行され,EVE の新しい省略時の設定が作成される。

  16. 新しいセクション・ファイルを作成するために,SAVE 文が含まれている。セクション・ファイルのデバイス,ディレクトリ,ファイル名は,括弧と引用符で囲んで指定する。

  17. QUIT コマンドは EVE 処理を終了し,制御を DCL プロンプトに戻す。

A.8 初期化ファイルの作成

キーの定義や編集セッションの特性の設定を会話形式で行う代わりに, EVE コマンドとキー定義を初期化ファイルの中に入れることができます。初期化ファイルは,EVE の起動時や,編集セッション中にプロシージャ実行コマンド (@) を使用して実行できます。たとえば次のようにします。


Command: @SETUP_INIT

初期化ファイルを作成する場合には,次の規則が適用されます。

次に初期化ファイルの例を示します。


SET TABS EVERY 5 
SET LEFT MARGIN 15 
SET RIGHT MARGIN 75 
OVERSTRIKE MODE 
DEFINE KEY=Ctrl/D ERASE WORD 
DEFINE KEY=GOLD W START OF LINE 
DEFINE KEY=KP5 FILL PARAGRAPH 
! 
!Binds the EDT forward function (KP4 on 
!EDT keypad) to GOLD F 
! 
DEFINE KEY=GOLD F EDT KP4 

初期化ファイルは,/INITIALIZATION 修飾子を使って指定できます。初期化ファイルは LOGIN.COM ファイル内で EVE$INIT として定義されているか, SYS$LOGIN ディレクトリ内で EVE$INIT.EXE という名前で定義されています。次のコマンドは,MY_INIT という名前の初期化ファイルを使って EVE を起動します。


$ EDIT/TPU/INIT=WORK1:[ALEXIS]MY_INIT

省略時の設定では,DECTPU は論理名 EVE$INIT の初期化ファイルを使用します。この論理名をユーザの LOGIN.COM ファイルに定義すると, EVE の起動時に DECTPU はユーザの初期化ファイルを自動的に使用します。たとえば,次のコマンドを LOGIN.COM ファイルに追加したとします。


$ DEFINE EVE$INIT WORK1:[ALEXIS]MY_INIT.EVE 

EVE が起動されるとき,EVE は最初にセクション・ファイルを探し,次にコマンド・ファイルを探し,最後に初期化ファイルを探します。初期化ファイルはセクション・ファイルおよびコマンド・ファイルの後に実行されるため,初期化ファイル内の定義内容はセクション・ファイルやコマンド・ファイルの内容よりも優先されます。したがって,編集環境を定義するコマンドは,コマンド・ファイルか初期化ファイルに入れるようにしてください。

A.8.1 環境を定義するコマンド

環境を定義するコマンドには次のようなものがあります。

A.9 スタートアップ・ファイルへのカスタマイズ内容のセーブ

キー定義,学習シーケンス,DECTPU プロシージャをスタートアップ・ファイルにセーブできます。スタートアップ・ファイルを使用すると,EVE に対して行ったすべての変更内容をセーブでき,編集セッションごとに再び変更し直す必要がなくなります。

EVE には 3 種類のスタートアップ・ファイルがあります。

セクション・ファイルとコマンド・ファイルは, EVE エディタから会話形式でカスタマイズできます。初期化ファイルは別に作成します。

カスタマイズ内容をセクション・ファイルまたはコマンド・ファイルにセーブする場合,エディタを終了または取り消し終了するときに SAVE ATTRIBUTES コマンドまたはSAVE EXTENDED EVE コマンドを使用します。

A.9.1 属性をセーブするためのEVE コマンド

次の一覧は,属性をセーブするためのコマンドです。

属性を変更した後,セーブしなかった場合には,EVE は終了時に,変更された属性をセーブするかどうか質問します。

次の例は,EVE から終了するときにどのように属性をセーブするかを示しています。


Command: SET CURSOR BOUND
Command: MOVING_TEXT
Command: SET TABS VISIBLE
           .
           .
           .
Command: EXIT
Attributes were changed.  Save them? [YES]

変更内容をセーブする場合は,Return キーを押します。終了前に SAVE ATTRIBUTES コマンドが実行されます。変更内容をセーブしたくない場合は,No と入力して Return を押します。そのまま終了処理が行われます。

終了処理にかかる時間を短くして処理を単純にするために,このプロンプトを表示しない場合は, SET NOEXIT ATTRIBUTE CHECK コマンドを使用します。ただし,このコマンドは現在の編集セッションには適用されません。終了時のチェックはそれ自体がグローバル設定であり,セクション・ファイルまたはコマンド・ファイルにセーブできるものだからです。設定をセーブした後,そのセクション・ファイルまたはコマンド・ファイルを使用する以降の編集セッションにその設定が適用されます。

その他のグローバルな属性(スクロール・マージンやワイルドカードの種類など) および個々のバッファの属性 (マージンやタブ・ストップなど) は,セクション・ファイルやコマンド・ファイルにはセーブされません。通常,これらの設定に対しては初期化ファイルを使用します。


前へ 次へ 目次 索引