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

前へ | 次へ | 目次 | 索引

## A.3.8 EVE の省略時の属性のセーブ

SAVE SYSTEM ATTRIBUTES は，EVE の省略時の設定とメニュー項目をセクション・ファイルまたはコマンド・ファイルにセーブします。したがって，いくつかの属性を設定したりメニュー項目を定義または削除した場合でも，SAVE SYSTEM ATTRIBUTES を使用して標準の EVE の設定とメニューをセクション・ファイルまたはコマンド・ファイルに復元することができます。

SAVE SYSTEM ATTRIBUTES は，現在有効な設定を変更するものではありません。たとえば，自由カーソルや見えないタブを有効にしたりはしません。 SAVE SYSTEM ATTRIBUTES は，EVE の省略時の設定をセクション・ファイルまたはコマンド・ファイルにセーブするだけです。

# A.4 EVE 内での DECTPU の使用

DECTPU コマンド・ファイルを作成したり， DECTPU デバッグ・パッケージを使用するために，EVE の中で DECTPU を使用できます。

ファイル作成のスイッチと修飾子は，DECTPU が入力ファイルを見つけなかったときにバッファを作成するかどうかを決定します。この修飾子を使用した場合の処理結果は，使用中のDECTPU アプリケーションによって異なります。

EVEでは，省略時の設定ではファイルが作成されます。入力ファイルが存在しない場合， EVE はその入力ファイルの名前とファイル・タイプを使用してバッファ名を作成します。入力ファイルを指定しないと，Main という名前のバッファが作成されます。

## A.4.1 DECTPU コマンド・ファイルの作成

DECTPU コマンド・ファイルを作成するには，次のように /CREATE または/NOCREATE の修飾子を使用します。

    $ EDIT/TPU /CREATE (default)
    $ EDIT/TPU /NOCREATE

入力ファイル指定を誤って入力した場合にエディタが起動されるのを防いだり，既存ファイルだけを編集する場合は，/NOCREATE 修飾子を使用します。

指定された入力ファイルが見つからない場合，EVE は編集セッションを終了し，システム・レベルに戻ります。次に例を示します。

    $ EDIT/TPU NEW.DAT /NOCREATE
    Input file does not exist: NEW.DAT;

## A.4.2 DECTPU デバッグ・パッケージの使用

デバッグのスイッチと修飾子は， DECTPU がデバッグ・ファイルを実行するかどうかを決定します。デバッグ・ファイルは，ユーザが作成中のアプリケーションのプロシージャをテストするのに役立ちます。

デバッグしようとしているファイルのコードの編集を開始するには，次の手順に従います。

1. GO コマンドを使用する。デバッグ・ファイルの指定にはワイルドカードは使用できない。

2. 一度に 1 つのデバッグ・ファイルだけを指定する。DECTPU は TPU$INIT_PROCEDURE を実行する前にデバッグ・ファイルをコンパイルし実行する。

DECTPU とともに提供されているデバッガは， SYS$SHARE:TPU$DEBUG.TPUにあります。このファイルは，変数を操作するためのコマンドと，プログラムの実行を制御するためのコマンドを提供します。

自分自身のデバッグ・ファイルを指定する方法は 2 つあります。

- デバッガ・ファイルを指定するための論理名 TPU$DEBUG を定義し，その後，DECTPU の起動時に /DEBUG 修飾子を使用する。自分の LOGIN.COM ファイルに定義を入力できる。

- /DEBUG= 修飾子を使用してデバッガ・ファイルを指定する。この場合，TPU$DEBUG 論理名の定義は無効になる。省略時のファイル・タイプは.TPU である。たとえば，次のコマンドは，MYPROCS.TPU という名前のファイルを編集するために MYDEBUG.TPU という名前のデバッガ・ファイルを使用する。

      $ EDIT/TPU MYPROCS.TPU /DEBUG=MYDEBUG

  DECTPU は，デバッガ・ファイルが SYS$SHARE にあるものと想定する。デバッガ・ファイルが別の場所に保存されている場合は，デバイス (ディスク)とディレクトリを含めた完全なファイル指定を使用する。

DECTPU デバッグ・パッケージについての詳しい説明は，ソース・ファイルのコメントまたは『DEC Text Processing Utility Reference Manual』を参照してください。

# A.5 DECTPU プロシージャを使用しての EVE の拡張

EVE エディタは，DEC Text Processing Utility (DECTPU) を基礎にしています。 EVE のコマンド TPU を使用して，DECTPU 文を入力したり， 1 つのコマンド行に収まる範囲で一連の文を入力することができます。

DECTPU コマンドを入力するには，実行する DECTPU 文を TPU コマンドの後に続けて入力します。たとえば，DECTPU 文の APPEND_LINE を実行するには，次のようなコマンド文字列を入力します。このコマンドは，直前の行の行末位置に現在の行を配置します。

    Command: TPU APPEND_LINE

TPU コマンドについての詳しい説明を表示するには，HELP TPU と入力します。 DECTPU の文およびプロシージャの一覧については，『DEC Text Processing Utility Reference Manual』を参照してください。

## A.5.1 DECTPU プロシージャのコーディング

EVE は DECTPU プログラミング言語でコーディングされたエディタなので， DECTPU でプロシージャをコーディングすることによって EVE の機能を拡張することができます。この節では，DECTPU プログラミング言語について習熟しているものと想定して説明を進めます。DECTPU プログラミング言語については，『DEC Text Processing Utility Reference Manual』で説明されています。

DECTPU プロシージャのコーディングを開始して EVE を変更する前に， EVE のソース・コードを調査してください。このソース・コードは SYS$EXAMPLE:EVE$*.TPU に保存されています。ファイル指定の中のワイルドカード文字は， EVE のソース・コードが多くのファイルに保存されていることを示します。これらのファイルは EVE$BUILD を使用してまとめられます。プロシージャ内の変数や文は EVE の変数や文と矛盾しないようにして， EVE の動作に悪影響を与えるような変更を回避しなければなりません。

DECTPU プログラミング言語を使って，実際上新しい EVE コマンドとなるプロシージャを作成することができます。新しい EVE コマンド・プロシージャをコーディングする際は，次の規則に従います。

- ラベル EVE_ をプロシージャ名の先頭に付け， EVE がそのプロシージャを EVE コマンドであると認識するようにする。プロシージャをコンパイルした後， Do キーを押して接頭辞 EVE_ やアンダスコアを除いたプロシージャ名を入力し，そのプロシージャを実行する。たとえば，EVE_SET_LEFT_MARGIN プロシージャの場合はSET LEFT MARGIN と入力する (新しいコマンドを実行するためのキーを定義することもできる)。

- PROCEDURE や ENDPROCEDUREという語は， 1 桁目から開始しなければならない。

- TPU$LOCAL_INIT という名前の単一プロシージャ内，または EVE$BUILD を使って作成した場合は，モジュール初期化プロシージャ内のすべてのグローバル変数を初期化する。

- 作成している EVE コマンドが整数パラメータ (たとえば SET LEFT MARGIN 2 など，ただし，2 がパラメータである) を必要とする場合には，パラメータにデータ・タイプとして整数を関連づけるために，グローバル変数を定義する。定義した EVE コマンドを使用するときに，文字列パラメータに対して値を指定しなかった場合には， EVE はヌル文字列 (" ") を渡す。整数パラメータに対して値を指定しなかった場合には， EVE は EVE$K_NO_ARG という値を渡す。

- グローバル変数は，TPU$LOCAL_INIT という名前のプロシージャに入れるようにする。このプロシージャは EVE を起動するたびに呼び出される。パラメータを使用するプロシージャはすべて， TPU$LOCAL_INIT プロシージャを含む同じ 1 つのファイル内に入れる。

- 一般に，コマンド・パラメータを定義するグローバル変数名は，それぞれ次の3 つの部分から構成されなければならない。

  - 変数名の最初の部分は eve$ でなければならない。

  - 2 番目の部分は，プロシージャ内での変数の順番を定義する。最初の変数は arg1 で，2 番目の変数は arg2のようになる。

  - 変数名の 3 番目の部分は接頭辞の EVE_ を除いたプロシージャ名である。

次に示すのは，コマンド・パラメータのためのグローバル変数定義の例です。

- 次のグローバル変数 EVE$ARG1_ADD の定義は，EVE_ADD の最初のパラメータとして整数を期待するよう指定する。

      EVE$ARG1_ADD := "INTEGER";

- 次のグローバル変数 EVE$ARG1_HELLO の定義は，EVE_HELLO に対する最初のパラメータとして文字列を期待するよう指定する。

      EVE$ARG1_HELLO := "STRING";

整数の変数が必要とされます。

## A.5.2 DECTPU プロシージャのコンパイル

EXTEND EVE コマンドは， EVE を終了せずに DECTPU プロシージャをコンパイルできるようにします。カーソルがその中に置かれているプロシージャをコンパイルするには， EXTEND THIS コマンドを使用します。 1 つのプロシージャをコンパイルするには， EXTEND EVE コマンドとコンパイルしたいプロシージャの名前を入力します。 1 つのファイル内のすべてのプロシージャをコンパイルするには， EXTEND EVE * コマンドを入力します。このコマンドは EVE コマンドのEXTEND ALL と同じです。コンパイラからのメッセージを見失った場合は， BUFFER MESSAGES コマンドを使用して Messages バッファ内に格納されているメッセージを読みます。

次の例は，ADD コマンドと HELLO コマンド，およびその両方のコマンドのパラメータを定義する DECTPU プロシージャの作成およびコンパイルの方法を示しています。 EVE を起動して MYPROCEDURES.TPU ファイルを編集し，次のテキストをファイルに挿入します。

    ! Procedure to add two integers and display the result in the
    ! message window

    PROCEDURE EVE_ADD (A1, A2)

    LOCAL   TEMP,
            N1,
            N2;

    IF NOT EVE$PROMPT_NUMBER (A1, N1, "First number to add: ",
                              "No number specified.")
    THEN
        RETURN (FALSE);
    ENDIF;

    IF NOT EVE$PROMPT_NUMBER (A2, N2, "Second number to add: ",
                              "No number specified.")
    THEN
        RETURN (FALSE);
    ENDIF;

    TEMP := N1 + N2;
    MESSAGE (STR (N1) + " + " + STR (N2) + " = " + STR (TEMP));
    RETURN (TRUE);

    ENDPROCEDURE;

    PROCEDURE EVE_HELLO (MY_NAME)
    LOCAL   THE_NAME;

    IF EVE$PROMPT_STRING (MY_NAME, THE_NAME, "Name: ", "We haven't met")
    THEN
        MESSAGE ("Hello " + THE_NAME);
        RETURN (TRUE);
    ELSE
        RETURN (FALSE);
    ENDIF;

    ENDPROCEDURE;

    EVE$ARG1_ADD := "INTEGER";
    EVE$ARG2_ADD := "INTEGER";

TPU$LOCAL_INIT プロシージャに 2 つのパラメータ変数の定義を追加する場合は， MYPROCEDURES.TPU に示されている構文を使用します。

MYPROCEDURE.TPU に入力したプロシージャをコンパイルするには， Do キーを押して EXTEND EVE * と入力し，Return キーを押します。新たにコンパイルされたコマンドを現在の編集セッション内で使用する場合は， TPU TPU$LOCAL_INIT コマンドを入力して TPU$LOCAL_INIT を実行しなければなりません。

# A.6 セクション・ファイルの作成

セクション・ファイルには，キー定義，学習シーケンス， DECTPU のコンパイル済みの文やプロシージャなどが，バイナリ形式で含まれています。セクション・ファイルはバイナリ形式なので，編集環境の設定は高速に行われますが，バイナリ・ファイルを表示したり編集したりすることはできません。セクション・ファイルは，編集セッションごとに変更されることが少ない編集機能の実現に使用します。セクション・ファイルの省略時のファイル・タイプは .TPU$SECTION です。

EVE はスタートアップ時にセクション・ファイルを必要とします。省略時の設定では，ディレクトリ SYS$SHARE にあるセクション・ファイル EVE$SECTION.TPU$SECTION が使用されます。この省略時のセクション・ファイルは， 図 8_1 および 図 8-2 に示されている編集キーと，標準のEVE コマンドを定義します。

省略時のセクション・ファイルを使用する代わりに，セクション・ファイルを変更して EVE の標準機能のほかに自分自身のキー定義や学習シーケンス，編集機能を含めることができます。セクション・ファイルは 2 つの方法で作成できます。

- キー定義や学習シーケンスの数が少ない場合は，会話形式で編集キーを定義し，学習シーケンスを割り当てる。定義内容をセクション・ファイルにセーブするには， SAVE EXTENDED EVE コマンドを入力する。
  セクション・ファイルの省略時のファイル・タイプは .TPU$SECTION である。 SAVE EXTENDED EVE コマンドを入力するたびに同じファイルを指定して，すべてのカスタマイズ内容が順に追加されて同じファイルにセーブされるようにできる。

- 変更内容が多い場合は，キー定義と DECTPU プロシージャを含むコマンド・ファイルを作成する。ただし，コマンド・ファイルには学習シーケンスを含めることはできないので注意すること。コマンド・ファイルを SAVE 文または QUIT 文で終わらせ，ファイル・タイプ .TPU$SECTION を持つセクション・ファイル名を割り当てる。その例を EVE コマンド・ファイル に示す。次に，/COMMAND 修飾子とコマンド・ファイル名を指定して EVE を起動する。 EVE はコマンド・ファイル内の文を実行し，コンパイルされたプロシージャとキー定義をSAVE 文で指定されたセクション・ファイルにセーブし，QUIT 文を実行して制御をDCL に戻す。これで，SAVE 文で指定された新しいセクション・ファイルが使用できるようになっている。

セクション・ファイルを使用するには， EVE コマンド行で /SECTION 修飾子とともにセクション・ファイル名を指定します。たとえば，次のコマンドは WORK1 というディスクの ALEXIS ディレクトリにある MY_SECTION.TPU$SECTION という名前のセクション・ファイルを使用して EVE を起動します。

    $ EDIT/TPU/SECTION=WORK1:[ALEXIS]MY_SECTION

省略時の設定では， DECTPU は論理名 TPU$SECTION を持つセクション・ファイルを使用します。この論理名をユーザが自分の LOGIN.COM ファイルで定義すると， EVE の起動時に DECTPU は自動的にユーザのセクション・ファイルを使用します。次に例を示します。

    $ DEFINE TPU$SECTION WORK1:[ALEXIS]MY_SECTION.TPU$SECTION

現在のセクション・ファイルの名前を表示するには， EVE コマンドのSHOW SUMMARY を使用します。

EVE は，コマンド・ファイルや初期化ファイルよりも先にセクション・ファイルを実行します。したがって，コマンド・ファイルや初期化ファイルの中の定義はセクション・ファイルの定義を無効にします。編集環境の特性を設定する場合は，コマンド・ファイルか初期化ファイルを使用してください。 EVE はスタートアップ時にこれらのコマンドを実行しますので，バッファの表示や編集モードは，設定されている定義に従って調整されます。

# A.7 コマンド・ファイルの作成

コマンド・ファイルは，DECTPU プロシージャと実行可能な文を含むソース・プログラムです。 DECTPU プロシージャは，プロシージャ名が起動されたときに実行される関連する DECTPU 文の集合です。文とプロシージャは，キーを押したりコマンドを入力したときに，何が起こるかを定義します。コマンド・ファイルの省略時のファイル・タイプは .TPU です。

EVE コマンドを使用するとき，実際にはコンパイルされた DECTPU プロシージャを起動しています。たとえば，EVE コマンドの SET KEYPAD EDT は，標準 EVE セクション・ファイルにあるEVE_SET_KEYPAD_EDTプロシージャを起動します。

EVE はセクション・ファイルを実行した後にコマンド・ファイルを実行します。そのため，コマンド・ファイル内に定義されたキー定義やプロシージャは，セクション・ファイルにあるものよりも優先されます。

コマンド・ファイルには異なる 2 つの使用方法があります。コマンド・ファイルはセクション・ファイルからは独立した編集環境を作成できます。また，コマンド・ファイルは新しいセクション・ファイルを作成するために使用できます。

## A.7.1 編集環境の省略時の設定

編集環境の省略時設定を設定する場合は，必ずコマンド・ファイルを使用します。 EVE はスタートアップ時にコマンド・ファイル(または初期化ファイル) 内の文を実行し，新しい省略時設定を適用するからです。編集環境を設定するコマンドの一覧については， 付録 A.8 節 を参照してください。たとえば，1 つのコマンド・ファイルを使用してマージン，タブ，メモの見出しを設定し，別のコマンド・ファイルを使用して会計報告を作成するために適切なタブを設定する，というようにできます。

コマンド・ファイルを作成するには， EVE を起動してファイル・タイプ .TPU を持つファイル名を指定します。たとえば，MY_COMMAND.TPU のように指定します。エディタ内に入ったら，DECTPU の文とプロシージャを入力します。

セクション・ファイルを作成するためにコマンド・ファイルを使用する場合は，コマンド・ファイルを SAVE 文および QUIT 文で終了させ，セクション・ファイルのファイル指定を含めます。その例を EVE コマンド・ファイル に示します。コマンド・ファイルをセクション・ファイルに変換するには， /COMMAND 修飾子を付けて EVE を起動します。たとえば，次のようにします。

    $ EDIT/TPU/COMMAND=MY_COMMANDS

EVE はファイル内のコマンドを実行し，コンパイルされたプロシージャとキー定義を SAVE 文で指定された TPU$SECTION ファイルにセーブします。 QUIT 文はエディタを終了し，制御を DCL プロンプトに戻します。この時点で，新しいセクション・ファイルが作成されています。したがって，EVE を起動するとき，エディタはLOGIN.COM ファイルか SYSLOGIN ディレクトリにある定義されたセクション・ファイルを自動的に読み込みます。

コマンド・ファイルからセクション・ファイルを作成する利点の 1 つは，コマンド・ファイルは簡単に編集できる，という点です。 DECTPU プロシージャを追加したり多数のキー定義を追加したい場合にこのことは特に重要です。

前へ | 次へ | 目次 | 索引