|
≫ |
|
|
|
日本語OpenVMS
日本語OpenVMS
ユーザ・キー定義 利用者の手引き
第 7 章 KEYBINDファイル作成例
この章ではJVMSキーのKEYBINDファイルを例にして,KEYBINDファイルを作るときの注意点について書かれています。
JVMSキーのKEYBINDファイルを 例 7-1 に示します。説明のため実際に提供されているものと違っている部分があります。
!
! JVMS変換キー定義ファイル(システムテンプレート)
!
gold = CTRL_G;(1)
kakutei = CTRL_N;
kanji_henkan = NULL, gold + CTRL_K;(2)
hiragana_henkan = CTRL_L;
katakana_henkan = CTRL_K;
zenkaku_henkan = CTRL_F;
hankaku_henkan = gold + CTRL_F;
kigou_henkan = GS;
oomoji = VOID;(3)
komoji = VOID;
ji_bunsetsu = CTRL_P;
zen_bunsetsu = gold + CTRL_P;
tansyuku = US;
sintyou = gold + US;
zen_kouho = gold + (NULL, CTRL_L);(4)
kaijo = CTRL_N;
sakujo = DEL;
hidari = LEFT;
migi = RIGHT;
%INCLUDE (IM$KEY_COMMON_BODY.DAT)(5)
|
- CTRL_Gをgoldというマクロ名に定義します。
- NULLまたはgold + CTRL_Kをkanji_henkanというマクロ名に定義します。
- VOIDはどのキーにもマッチしないキーのシンボルです。JVMSキーにはoomoji やkomojiに対応するキーが定義されていないので,VOIDを使います。oomoji, komojiは本体で使われているので,ここでこの行を省略することはできません。
- zen_kouhoというマクロ名はgold + NULLまたはgold + CTRL_Lを意味します。
- ディレクティブ%INCLUDEによってキー定義ファイルの本体 (IM$KEY_COMMON_BODY.DAT)を読み込みます。
IM$KEY_COMMON_BODY.DAT の内容を 例 7-2 に示します。
!
! JVMS/EVEJ/LEIA変換キー定義ファイル本体(システムテンプレート)
!
!
! 初期状態
!
STATE "initial" =
TYPING_KEYS : START, ECHO, GOTO "inputting";(1)
END;
!
! 入力状態
!
STATE "inputting" =
kanji_henkan : CONVERT, GOTO "kk_converting";(2)
hiragana_henkan : HIRAGANA, GOTO "converting";(3)
katakana_henkan : KATAKANA, GOTO "converting";
zenkaku_henkan : ZENKAKU, GOTO "converting";
hankaku_henkan : HANKAKU, GOTO "converting";
kigou_henkan : SYMBOL, GOTO "converting";
oomoji : UPPER, GOTO "converting";
komoji : LOWER, GOTO "converting";
kakutei : DONE, GOTO "initial";
sakujo : DELETE;
hidari : MOVE_LEFT;(4)
migi : MOVE_RIGHT;
TYPING_KEYS : ECHO;
END;
!
! かな変換状態
!
STATE "converting" =
kanji_henkan : CONVERT, GOTO "kk_converting";
hiragana_henkan : HIRAGANA;
katakana_henkan : KATAKANA;
zenkaku_henkan : ZENKAKU;
hankaku_henkan : HANKAKU;
kigou_henkan : SYMBOL;
oomoji : UPPER;
komoji : LOWER;
kaijo : RESTORE_STRING, GOTO "inputting";(5)
TYPING_KEYS : DONE, START, ECHO, GOTO "inputting";(6)
END;
!
! 漢字変換状態
!
STATE "kk_converting" =
kanji_henkan : NEXT_CANDIDATE;
hiragana_henkan : CLA_HIRAGANA;
katakana_henkan : CLA_KATAKANA;
zenkaku_henkan : ZENKAKU;
hankaku_henkan : HANKAKU;
kigou_henkan : SYMBOL;
oomoji : UPPER;
komoji : LOWER;
ji_bunsetsu : NEXT_CLAUSE;
zen_bunsetsu : PREV_CLAUSE;
tansyuku : SHORTEN_CLAUSE;
sintyou : EXTEND_CLAUSE;
zen_kouho : PREV_CANDIDATE;
kaijo : RESTORE_STRING, GOTO "inputting";
TYPING_KEYS : DONE, START, ECHO, GOTO "inputting";
END;
|
- STATE"initial"にはTYPING_KEYSだけしか定義されていません。画面に表示されるキー以外が入力されるとアプリケーションが動作を決めます。画面に表示されるキーが入力されると入力をSTARTし,入力されたキーをECHOして,STATEは "inputting" に移ります。
- マクロkanji_henkanに定義されたキーが入力されるとCONVERTによってかな漢字変換を行ない,STATEは"kk_converting"に移ります。
- マクロhiragana_henkan, katakana_henkanなどに定義されたキーが入力されるとそれぞれの動作を行ない,STATEは"converting"に移ります。
- ここで,定義されているMOVE_LEFT, MOVE_RIGHTは入力文字列の編集時のキー定義です。通常の編集時のカーソルの移動はアプリケーションが定義するので,ユーザはキー定義を行ないません。
- RESTORE_STRINGは,一度変換を始めた文字列をもう一度入力文字列に戻します。 STATEも"inputting"に戻すことで,文字列の編集関係のキーが使えるようになります。
- STATEが"converting"の時にTYPING_KEYSが入力されると現在の状態が確定して新規に文字列が入力されます。
DONEによって変換は確定し,初期状態に戻りますので,DONEを省略することはできません。DONEを省略するとSTARTがエラーになります。
|