[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

2 日本語EVEの拡張機能

この章では,日本語EVEの拡張機能について説明します。


2.1 DEC XTPUプロシージャの実行

日本語EVEの XTPU コマンドを使用すると, 1行のコマンド・ラインにDEC XTPUステートメントを入力することができます。

XTPU コマンドを入力するには,XTPU コマンドに続けて, 実行したいDEC XTPUステートメントを入力します。たとえば, DEC XTPU のAPPEND_LINEステートメント (現在の行を前の行の最後に続けるステートメント)を実行するには, 次のコマンドを入力します。

     Command : XTPU APPEND_LINE
XTPU コマンドについての詳細は, HELP XTPU とタイプしてオンライン・ヘルプを参照してください。 DEC XTPUステートメントとプロシージャのリストについては, 『Guide to the DEC Text Processing Utility』, 『DEC Text Processing Utility Reference Manual』および 『DEC XTPU リファレンス・マニュアル』を参照してください。


2.2 日本語EVEのカスタマイズ

日本語EVEでは,編集操作に応じて, 次に示す方法で標準エディタを変更することができます。


2.3 スタートアップ・ファイルの使用

この節では,標準的な日本語EVEエディタを変更するために, スタートアップ・ファイルを使用する方法について説明します。 スタートアップ・ファイルは,編集環境の属性を設定するキー定義と編集コマンド, 標準的な日本語EVEエディタの編集機能を拡張するためのDEC XTPUプロシージャも格納できます。

定義とプロシージャをスタートアップ・ファイルに格納すれば, 日本語EVE起動時に,作業で必要な編集環境を自動的に設定できます。 各編集セッションでその都度,日本語EVEを変更する必要はありません。

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

セクション・ファイル

セクション・ファイルには,次の機能がバイナリ形式で格納されます。

セクション・ファイルはバイナリ形式であるため, 編集環境を非常に迅速に設定できますが,バイナリ・ファイルを表示したり, 変更することはできません。したがって, 各編集セッションで変更される可能性のほとんどない編集機能を実現する場合は, セクション・ファイルを使用します。

たとえば,通常同じ方法で使用するキーはセクション・ファイルに定義します。

イニシャライゼーション・ファイル

イニシャライゼーション・ファイルは, 標準的な日本語EVEコマンドを格納したASCIIファイルです。 このイニシャライゼーション・ファイルは簡単に表示したり,変更することができます。

イニシャライゼーション・ファイルは, 日本語EVEを起動するときに /INITIALIZATION修飾子を使用して, または編集セッションの途中で@ コマンドを使用して実行できます。 イニシャライゼーション・ファイルは, セクション・ファイルやコマンド・ファイルより, 編集環境を設定するのに時間がかかります。 イニシャライゼーション・ファイルにはキー定義が登録されますが, 学習シーケンスは登録できません。

コマンド・ファイル

コマンド・ファイルは, DEC XTPUステートメントとプロシージャを格納した DEC XTPUソース・ファイルです。 コマンド・ファイルは2種類の方法で使用できます。まず, コマンド・ファイルは日本語EVEセクション・ファイルを作成するために使用できます。 また,日本語EVEが編集環境を作成するために実行するコマンド・ファイルとしても使用できます。 たとえば,バッファの表示方法やエディタのスタートアップ・モードを制御するために, コマンド・ファイルを使用できます。 コマンド・ファイルの実行速度はセクション・ファイルより劣りますが, ASCIIファイルであるため,表示したり,変更することができます。

コマンド・ファイルとイニシャライゼーション・ファイルは多くの同じ作業のために使用できますが, コマンド・ファイルのほうがイニシャライゼーション・ファイルより速く実行でき, より高度な編集ツールを備えています。

この後の節では,各スタートアップ・ファイルについて詳しく説明します。


2.3.1 セクション・ファイルの作成

日本語EVEは,スタートアップのためにセクション・ファイルを必要とします。 省略時の設定では, 日本語EVEはSYS$SHAREディレクトリに登録されているJEVE$SECTION_V3.XTPU$SECTIONというセクション・ファイルを使用します。 この省略時のセクション・ファイルは,編集キーを定義したり, 標準的な日本語EVEコマンドも定義したりします。

省略時のセクション・ファイルを使用するかわりに, 標準的な日本語EVE機能に加えて独自のキー定義や学習シーケンス, 編集機能などを格納したセクション・ファイルを作成することができます。 セクション・ファイルは2種類の方法で作成することができます。

このようにして拡張した日本語EVEのバージョンを使用するには, 日本語EVEを起動する際に,/SECTION修飾子を指定しなければなりません。たとえば, WORKDISK:[USER]MYDEFS.XTPU$SECTIONというセクション・ファイルを使用して, RHYMES.DATファイルを編集するために日本語EVEを起動する場合は, 次のコマンドを入力します。
     $ EDIT/XTPU/SECTION=workdisk:[user]mydefs.xtpu$section rhymes.dat
または,LOGIN.COMの中で論理名XTPU$SECTIONを再定義して, セクション・ファイルを指定することもきます。次の例はLOGIN.COMの中で, WORKDISK:[USER]MYDEFS.XTPU$SECTIONファイルを省略時のセクション・ファイルとして定義しています。
     $ DEFINE XTPU$SECTION workdisk:[user]mydefs.xtpu$section
現在のセクション・ファイルの名前を表示するには, 日本語EVEの SHOW SUMMARY コマンドを使用します。

日本語EVEは, コマンド・ファイルやイニシャライゼーション・ファイルを実行する前に, セクション・ファイルを実行します。したがって, コマンド・ファイルとイニシャライゼーション・ファイルの定義は, セクション・ファイルの定義より優先します。編集環境の属性を設定する場合には, コマンド・ファイルまたはイニシャライゼーション・ファイルを使用してください。 日本語EVEは,スタートアップ時にこれらのコマンドを実行します。したがって, バッファの表示方法や編集モードは,ユーザの定義にしたがって調整されます。


2.3.2 イニシャライゼーション・ファイルの作成

会話的にキーを定義したり,編集セッションの属性を設定するかわりに, 日本語EVEコマンドとキー定義をイニシャライゼーション・ファイルに登録することができます。 イニシャライゼーション・ファイルは @ コマンドを使用して, 日本語EVEを起動するときや編集セッションの途中で実行できます。 次の例を参照してください。
     Command : @SETUP_INIT
イニシャライゼーション・ファイルの各コマンドは,それぞれ別の行に指定します。 各コマンドの内容を分かりやすく示すために,ファイルにコメントを追加できます。 ただし,コメントの前に感嘆符を指定し,コマンドと別の行に指定してください。 イニシャライゼーション・ファイルのファイル・タイプは.EVEです。

次の例はイニシャライゼーション・ファイルを示しています。

     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
イニシャライゼーション・ファイルを指定するには,以下の3つの方法があります。

  1. 日本語EVEの起動に/INITIALIZATION修飾子を指定します。

    次のコマンドは,MY_INITという名前のイニシャライゼーション・ファイルを使用して, 日本語EVEを起動します。

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

  2. 論理名JEVE$INIT_V3にイニシャライゼーション・ファイルを定義します。

    省略時の設定では, DEC XTPUは論理名がJEVE$INIT_V3であるイニシャライゼーション・ファイルを使用します。 この論理名をLOGIN.COMファイルに定義した場合には,DEC XTPUは, 日本語EVEを起動するときに, ユーザのイニシャライゼーション・ファイルを自動的に使用します。 たとえば,次のコマンドをLOGIN.COMファイルに登録できます。

         $ DEFINE JEVE$INIT_V3 WORK1:[ALEXIS]MY_INIT.EVE
    

  3. イニシャライゼーション・ファイルを, JEVE$INIT_V3.EVEという名前にして,SYS$LOGINディレクトリに置きます。
日本語EVEを起動すると,日本語EVEはまずセクション・ファイルを探し, 次にコマンド・ファイルを探し, 最後にイニシャライゼーション・ファイルを探します。 イニシャライゼーション・ファイルはセクション・ファイルおよびコマンド・ファイルの後に実行されるため, イニシャライゼーション・ファイルの定義はセクション・ファイルやコマンド・ファイルの定義より優先します。 この理由から,編集環境を定義するコマンドはコマンド・ファイルまたはイニシャライゼーション・ファイルに登録してください。 環境を定義するコマンドは次のとおりです。


2.3.3 コマンド・ファイルの作成

コマンド・ファイルは, DEC XTPUプロシージャと実行可能なステートメントを格納したソース・プログラムです。 DEC XTPUプロシージャは関連するDEC XTPUステートメントの集まりであり, プロシージャ名を起動したときに実行されます。 ステートメントとプロシージャは,キーを押したときやコマンドを入力したときに, どのような操作が実行されるかを定義します。

日本語EVEコマンドを使用すると, 実際にはコンパイルしたDEC XTPUプロシージャが起動されます。 たとえば,日本語EVEの SET KEYPAD EDT コマンドは, 日本語OpenVMSが提供する日本語EVEセクション・ファイルのEVE_SET_KEYPAD_EDTプロシージャを起動します。

日本語EVEは,セクション・ファイルを実行した後,コマンド・ファイルを実行します。 この理由から,コマンド・ファイルに定義したキー定義やプロシージャは, セクション・ファイルの定義より優先します。

コマンド・ファイルは2種類の方法で使用できます。 まず,コマンド・ファイルはセクション・ファイルから独立した編集環境を作成でき, また,新しいセクション・ファイルを作成するためにコマンド・ファイルを使用することも可能です。

省略時の編集環境を設定する場合には,必ずコマンド・ファイルを使用します。 これは,スタートアップ時に日本語EVEがコマンド・ファイル (またはイニシャライゼーション・ファイル)のステートメントを実行し, 新しい省略時の設定を有効にするからです。 編集環境を設定するコマンドのリストについては, 第2.3.2項を参照してください。たとえば, 1つのコマンド・ファイルを使用して,メモのマージンとタブを設定し, 別のコマンド・ファイルを使用して,財務報告書を作成するのに適したタブを設定できます。

コマンド・ファイルを作成するには,日本語EVEを起動し, ファイル・タイプが .TPUであるファイル名 (たとえば,MY_COMMAND.TPUなど)を指定します。 エディタを起動した後,DEC XTPUステートメントとプロシージャを入力してください。

例 2-1は, 日本語EVEをEDTエディタに類似した機能となるように変更するコマンド・ファイルを示しています。 このファイルは, MY_SECTION.XTPU$SECTIONという名前の個人用セクション・ファイルを作成するために使用します。

コマンド・ファイルを使用してセクション・ファイルを作成する場合には, ファイルの最後にSAVEステートメントとQUITステートメントを登録し, 例 2-1に示したように, セクション・ファイルのファイルを指定します。 コマンド・ファイルをセクション・ファイルに変換するには, /COMMAND修飾子を使用して,日本語EVEを起動します。次の例を参照してください。

     $ EDIT/XTPU/COMMAND=MY_COMMANDS
日本語EVEは,ファイルに登録されたコマンドを実行し, SAVEステートメントに指定したセクション・ファイルに, コンパイルしたプロシージャとキー定義を保存します。 QUITステートメントはエディタを終了し,制御をDCLに戻します。 これで新しいセクション・ファイルが作成されました。 このセクション・ファイルを論理名XTPU$SECTIONに定義すると, 日本語EVEの起動時に自動的に読み込まれます。

コマンド・ファイルからセクション・ファイルを作成する場合の利点は, コマンド・ファイルを簡単に変更できるという点です。 これは特に,DEC XTPUプロシージャを追加したり, 非常に多くのキー定義を追加するときなどに重要です。

編集環境の属性を設定し, 標準的な日本語EVEエディタに機能を追加するためにコマンド・ファイルを使用する場合には, やはり/COMMAND修飾子を使用して,日本語EVEを起動します。 次の例を参照してください。

     $ EDIT/XTPU/COMMAND=DATA_SETUP
この場合も,日本語EVEはコマンド・ファイルのステートメントを実行しますが, SAVEステートメントは登録されていないため, コンパイルされたプロシージャとキー定義は保存されません。

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

例 2-1 日本語EVEコマンド・ファイルの例

     !*********************************************************
     !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;   【2】

      eve_end_of_line;                                           【3】

      eve_erase_start_of_line;                 【4】

      eve_delete;

      endprocedure;   【5】

      !Procedure to move the cursor to the beginning of the next paragraph:

      procedure eve_next_paragraph   【6】

      local   patl,
              the_range;

      patl := LINE_BEGIN + LINE_BEGIN + arb (1);
      the_range := search_quietly (patl,FORWARD,EXACT);

      if the_range <> 0
      then
          position (end_of (the_range));
          return (TRUE);  【7】
      else
          return (FALSE);
      endif;

      endprocedure;

      !Procedure to make EVE behave more like EDT

      procedure eve_mimic_edit

      eve_set_keypad_edt;
      eve_set_cursor_bound;
      eve_set_left_margin (10);   【8】

      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,i.e. change to wide if narrow,change to narrow if wide

      procedure eve_change_width   【9】

      if get_info (SCREEN,"width") <> 80
      then
          eve_narrow_screen;
      else
          eve_wide_screen;
      endif;

      endprocedure;

      procedure tpu$local_init   【10】

      eve_mimic_edt;             【11】

      eve$define_key ("eve_next_paragraph",CTRL_P_KEY,"Next_Para",
                      eve$x_user_keys);   【12】

      eve$define_key ("eve_zapline",key_name ("o",shift_key),"Zap Line",
                      eve$x_user_keys);   【13】

      eve$define_key ("eve_two_windows",F17,"Two Windows",eve$x_user_keys);  【14】

      eve$define_key ("eve_other_window",CTRL_G_KEY,"Other Window",
                      eve$x_user_keys);   【15】

      eve$define_key ("eve_get_file (''),key_name (KP6,SHIFT_KEY),"Get File",
                      eve$x_user_keys);   【16】

      eve$define_key ("eve_transpose",key_name (F20,SHIFT_KEY),"Transpose",
                      eve$x_user_keys);   【17】

      endprocedure;

      tpu$local_init;   【18】

      save ("WORK:[LINCOLN]MY_SECTION.XTPU$SECTION");   【19】

      quit;   【20】

例 2-1では, コマンド・ファイルの作成に関して,次のことを示しています。

  1. コマンド・ファイルの内容を分かり易く示すために,コメントを使用します。 コメントの先頭には感嘆符を指定します。 DEC XTPUは感嘆符を検出すると,その行の残りの部分を無視します。

  2. 各プロシージャの先頭にはprocedureという単語を指定します。

  3. プロシージャ内の各DEC XTPUステートメントの最後には, セミコロンを指定します。

  4. 各日本語EVEコマンドは,標準的な日本語EVEのセクション・ファイル (SYS$SHARE:JEVE$SECTION_V3.XTPU$SECTION)のDEC XTPUプロシージャの名前に対応します。

    これらのDEC XTPUプロシージャの名前は, ユーザが作成するプロシージャの内部で使用でき,また, DEC XTPUステートメントとして単独で実行することも可能です。 コマンド・ファイルにユーザ作成プロシージャと実行可能なDEC XTPUステートメントの両方を格納する場合には, 実行可能なステートメントの前にすべてのプロシージャを格納してください。

  5. 各プロシージャの最後にendprocedure;というキーワードを指定します。

  6. 日本語EVEでコマンドを実現するプロシージャを作成する場合には, プロシージャ名の最初の4文字として,EVE_を使用します。 この規則に従うことにより,プロシージャ名のEVE_以降の部分が, 日本語EVEコマンドになります。たとえば, EVE_NEXT_PARAGRAPHというプロシージャをコマンド・ファイルに作成した場合, セクション・ファイルをコンパイルした後, 日本語EVEの新しい NEXT PRAGRAPH コマンドを使用できます。

    コマンド・ファイルは,セクション・ファイルの後で実行されるためプロシージャは, セクション・ファイルに登録した同じ名前のコマンドより優先します。 たとえば,EVE_ERASE_CHARACTERというプロシージャを指定した場合, ERASE CHARACTER コマンドは日本語OpenVMSが提供する日本語EVEコマンドでなく, ユーザが作成したプロシージャを実行します。

  7. 日本語EVEコマンドを,繰り返し使用できるように (単独で,または学習シーケンスの一部として), 正常終了したときにTRUEを戻さなければなりません。

  8. パラメータを必要とするDEC XTPUプロシージャ名を使用する場合には, パラメータを括弧で囲みます。 たとえば,日本語EVEの SET LEFT MARGINS コマンドは, 左マージンを設定する場所を指定するためのパラメータを必要とします。 日本語EVEの構文は次のとおりです。
         SET LEFT MARGIN 10
    
    しかし,DEC XTPUの構文は次のとおりです。
         eve_set_left_margin(10);
    
    パラメータが整数ではなく,文字列の場合には, パラメータを引用符で囲まなければなりません。 たとえば,EVE_SET SCROLL_MARGINSの場合には, "10%"というパラメータは文字列であるため,引用符で囲まなければなりません。 空パラメータを渡す場合には,eve_spawn(" ")などのように, 空の1組の引用符を使用します。

  9. プロシージャは起動する前にコンパイルしておかなければなりません。 その後,プロシージャは日本語EVEコマンドとして起動するか, またはDEC XTPU実行可能ステートメントとして起動できます。 この例では,EVE_CHANGE_WIDTHという名前のプロシージャは, 日本語EVEの CHANGE WIDTH コマンドとして起動できます。 また,このプロシージャ名は, DEC XTPU実行可能ステートメントであるEVE_CHANGE_WIDTHとしても起動できます。

  10. セクション・ファイルとして使用するコマンド・ファイルにTPU$LOCAL_INITというプロシージャを追加します。

    このプロシージャには,日本語EVEを起動する時に定義し, 実行したいすべての実行可能ステートメント (他のプロシージャを呼び出すステートメントも含む)を含まなければなりません。 このプロシージャに指定した実行可能ステートメントはすべて, 日本語EVEを起動するときに実行されるため,このプロシージャ内のステートメントは, 日本語EVEエディタの省略時の設定になります。

  11. このDEC XTPUステートメントは,EVE_MIMIC_EDTプロシージャを起動します。 このプロシージャには, 日本語EVEの設定を変更するDEC XTPUステートメントが格納されています。 コマンド・ファイルの例をコンパイルし,それを個人用セクション・ファイルに保存し, そのセクション・ファイルを使用して,日本語EVEを起動する場合には, キーパッドの設定,カーソルの形式, および左マージンが自動的にEVE_MIMIC_EDTプロシージャによって設定されます。 この結果,日本語EVEはスタートアップ時にEDTと同様の動作をします。

  12. このDEC XTPUステートメントは,[Ctrl/B]というキー・シーケンスに対して, ユーザ作成プロシージャであるEVE_NEXT_PARAGRAPHを定義するために, 定義済みの日本語EVEルーチンであるEVE$DEFINE_KEYを使用します。 EVE$DEFINE_KEYルーチンを使用すれば, キーに割り当てられているプログラムはエラー・ハンドラを使用できます。 DEC XTPUの組込みプロシージャであるDEFINE_KEYは,このステップを実行しません。 EVE$DEFINE_KEYに対しては4つのパラメータがあります(このルーチンは, DEC XTPU組込みプロシージャであるDEFINE_KEYと同じパラメータを使用します)。 最初のパラメータは,キーに割り当てる日本語EVEプロシージャ,またはコマンドを指定します。 2番目のパラメータは,コマンドをどのキーに割り当てるかを指定します。 3番目のパラメータは,HELPキーパッド・ダイアグラムで, 日本語EVEがそのキーに対して使用するラベルを指定します。4番目のパラメータは, キー定義を保存するためのキーマップ・リストを指定する日本語EVE変数です。 特殊なアプリケーションを実現する高度なユーザでない限り, 4番目のパラメータに対しては,EVE$X_USER_KEYSという変数名を使用してください。

  13. このDEC XTPUステートメントは,[GOLD/O]キー・シーケンスに対して, EVE_ZAPLINEプロシージャを定義します。この行は, GOLDキーとアルファベット・キーで構成されるシーケンスを定義するときに使用するためのDEC XTPU構文を示しています。 "shift_key"を使用すると,定義は大文字と小文字を無視するようになり, oとOのどちらも定義されます。

  14. このステートメントは,[F17]キーに対して, 日本語EVEの TWO WINDOWS コマンドを定義します。

  15. このステートメントは,[Ctrl/G]キー・シーケンスに対して, 日本語EVEの OTHER WINDOWS コマンドを定義します。

  16. このステートメントは,[GOLD/KP6]キー・シーケンスに対して, 日本語EVEのGET FILEコマンドを定義します。 このキーパッドの割り当ては,[GOLD/KP6]キーの前の定義を無効にします。 EVE_MIMIC_EDTプロシージャは,キーパッドをEDTに設定し, EDTキーパッドは[GOLD/KP6]キー・シーケンスを INSERT HERE コマンドに割り当てます。 しかし,このDEC XTPUステートメントは, キー割り当てを GET FILE コマンドに変更します。 1組の一重引用符は空数をプロシージャに渡します。

  17. このステートメントは,[GOLD/F20]キー・シーケンスに対して, EVE_TRANSPOSEプロシージャを定義します。

  18. TPU$LOCAL_INITステートメントはTPU$LOCAL_INITプロシージャが呼び出します。 この後,このプロシージャが実行され,日本語EVEの新しい省略時の設定が作成されます。

  19. 新しいセクション・ファイルを作成するために, SAVEステートメントを入力します。セクション・ファイルの装置,ディレクトリ, およびファイル名を括弧と引用符の内部に指定します。 セクション・ファイルを更新するには, 既存の個人用セクション・ファイルを指定します。

  20. ファイルをセクション・ファイルとして,コンパイルする場合には, コマンド・ファイルの最後のステートメントとしてQUITステートメントを追加します。 QUIT は日本語EVEを終了し,制御をDCLに戻します。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]