前へ | 次へ | 目次 | 索引 |
入力されたキーに対応した文字を表示します。自動ローマ字かな変換が指定されているときには,ローマ字をかなに変換して表示します。入力されたキーがかなキーのときの表示方法(半角カタカナ,全角ひらがななど)はアプリケーションの任意です。もしその文字が表示できる文字でないときには,何も実行しません。アプリケーションは関係するバッファにこの文字を格納します。この機能は「入力状態」にあるときのみ有効です。
現在の文節に対して前候補を得る操作を実行します。この機能は「漢字変換状態」にあるときのみ有効です。
現在の文節中のカタカナをひらがなに変換します。この機能は「漢字変換状態」にあるときのみ有効です。
現在の文節中のひらがなをカタカナに変換します。この機能は「漢字変換状態」にあるときのみ有効です。
現在の文節中のひらがな,カタカナを半角カナに変換します。この機能は「漢字変換状態」にあるときのみ有効です。
現在の文節中の半角のアルファベットを全角に変換します。この機能は「漢字変換状態」にあるときのみ有効です。現在のかな漢字変換の方法では,この機能はサポートできません。
現在の文節中の全角のアルファベットを半角に変換します。この機能は「漢字変換状態」にあるときのみ有効です。現在のかな漢字変換の方法では,この機能はサポートできません。
現在の文節を文末方向に1つ移動します。この機能は「漢字変換状態」にあるときのみ有効です。
現在の文節を文頭方向に1つ移動します。この機能は「漢字変換状態」にあるときのみ有効です。
現在の文節を縮小します。この機能は「漢字変換状態」にあるときのみ有効です。
現在の文節を拡大します。この機能は「漢字変換状態」にあるときのみ有効です。
「初期状態」に戻ります。「漢字変換状態」にある場合は,変換の学習を行います。バッファの内容をすべてクリアし,画面上のビデオ属性を消します。
変換領域内を入力文字列に戻して,「入力状態」になります。これにより,文字列の編集ができるようになります。
変換領域内を入力文字列に戻して,「かな変換状態」へ移ります。次の入力文字が変換操作以外の入力であれば,確定後,入力に応じた操作を行います。
そのキーが定義されていないことを明示的に指定します。NONEを指定したときには, NONEに対して他のACTIONを同時に指定することはできません。NONEで他の ACTIONを同時に指定したときの結果は保証されません。
ACTIONには上に示したものに加えてGOTOが存在します。GOTOは特殊な ACTIONで,KEYBINDファイルの中のSTATEを移動するために使われます。STATEについては,
第 5.8 節 を参照してください。GOTOは,1つのキーにつき最後のACTIONとして1つだけ指定することができます。
5.8 STATEとは?
IMLIBでは,1つのキーに,場面により異なる機能を定義することができるようになっています。これを可能にするのがSTATEです。キー定義は,必ずどれかのSTATE に属しますので,1つのキーには存在するSTATEの数だけ違った機能を持たせることができます。
アプリケーションを起動したとき最初に属するSTATEは"initial"です。STATEの名称のうち"initial"だけはシステムで定義されていて,KEYBINDファイルの中には必ず1つだけSTATE "initial"が存在します。
その他のSTATEの名称はユーザが自由に決めることができます。ただし,STATEの名称とGOTO ACTIONにより指定される次のSTATEは互いに対応がとれていなければなりません。
5.9 STATEの記述方法
例 5-3 にKEYBINDファイルの中でSTATEを記述する例を示します。1つのSTATEはSTATE "string" =で始まり,END;で終了します。この間に書かれるキーとACTIONの関係は,そのSTATE内でのみ有効です。
例 5-3 STATEの記述例 |
---|
STATE "initial" = PF1 : START, GOTO "input_state"; END; STATE "input_state" = PF1 : DONE, GOTO "initial"; TYPING_KEYS : ECHO; END; |
この例を順に説明します。
KEYBINDファイルのキー名の記述には,マクロを使うことができます。マクロを使うことによってキーの割り当ての変更が容易になります。例 5-4 はマクロを使わないKEYBINDファイルの記述例です。同じ記述をマクロを使って書くと 例 5-5 のようになります。
マクロを使うと,あるキーに割り当てられていた機能を他のキーへ変更することが,マクロの変更だけでできるようになります。マクロ部分だけを別ファイルとすることもできますので,本体を記述したファイルを変更せずにキーの割り当てだけを変更できます。
また,マクロを使うと複数のSTATEで定義されたキーの変更が容易になります。キー定義はSTATEごとに行わなければなりません。したがって,複数のSTATEで同じ機能を実行しているようなときに,キー割り当てを変更しようとすると,マクロを使っていない場合は,各STATEに書かれている該当するキーをすべて書き換えなければなりません。しかし,例 5-5 のようにマクロを使って記述すれば,マクロ部分をhiragana_henkan = CTRL_Lというように変更するだけで,すべての STATEにおけるひらがな変換のキーは[Ctrl/L]に変えることができます。
コンパイラは,マクロが展開できなくなるまで,あるいは展開された文字列がキー名に一致するまでマクロ展開を繰り返します。ただし,マクロ展開は最大10回までに制限されています。マクロ展開が10回を超えると,コンパイラはエラーを出力して終了します。
例 5-4 マクロを使わないキー定義 |
---|
! キー定義本体 STATE "x" = . . . CTRL_L : HIRAGANA; . . . END; STATE "y" = . . . CTRL_L : HIRAGANA; . . . END; |
例 5-5 マクロを使ったキー定義 |
---|
! マクロ部分 hiragana_henkan = CTRL_L; ! キー定義本体 STATE "x" = . . . hiragana_henkan : HIRAGANA; . . . END; STATE "y" = . . . hiragana_henkan : HIRAGANA; . . . END; |
この章ではKEYBINDコンパイラの使い方について説明します。
コンパイラのエラー・メッセージについての詳細は,付録 C を参照してください。
6.1 KEYBINDコンパイラとは?
KEYBINDコンパイラは,テキスト形式のKEYBINDファイルをバイナリ形式のKEYBIND ファイルに変換します。
アプリケーションは,バイナリ形式のKEYBINDファイルからキー定義に関する情報を得ます。したがって,テキスト形式でKEYBINDファイルを作った後は,必ず KEYBINDコンパイラによって,バイナリ形式に変換しておかなければなりません。
6.2 KEYBINDコンパイラのコマンドと修飾子
KEYBINDコンパイラは KEYBINDコマンドで起動されます。KEYBINDコマンドは以下のようなフォーマットになっています。
$ KEYBIND [/修飾子] ファイル名 |
以下にKEYBINDコマンドの例を示します。
$ KEYBIND /LIST MY_KEYBIND |
この例では,MY_KEYBIND.DATというテキスト形式のKEYBINDファイルをMY_KEYBIND.IM$DATというバイナリ形式のKEYBIND ファイルに変換します。またMY_KEYBIND.LISという名前のリスト・ファイルが作られます。
6.2.1 修飾子
以下にKEYBINDコマンドの修飾子の説明をします。
コンパイル・リストの出力ファイル名を指定します。/NOLISTのときは,コンパイル・リストを出力しません。省略時の値は/NOLIST です。
ファイル名を省略した時は,ソース・ファイルと同じファイル名に.LIS というファイル・タイプを付けたものをファイル名として使います。
コンパイルの結果として作られる,バイナリ形式のファイルのファイル名を指定します。/NOBINARYのときは,バイナリ形式のファイルを作りません。省略時の値は/BINARY です。
ファイル名を省略した時は,ソース・ファイルと同じファイル名に.IM$DATというファイル・タイプを付けたものをファイル名として使います。
キー定義ファイルの中で指定されるACTIONの,組合せの正しさを検証するかどうかを指定します。省略時の値は/CHECKです。
テキスト形式のKEYBINDファイルのファイル名を指定します。ファイル・タイプを省略したときは,.DATがファイル・タイプとして使われます。
6.3 新しい ACTION を含んだファイル
IMLIB 1.1 で新しくサポートされた RESTORE_ECHO ACTION および半角カナ変換ACTION (HANKAKU_KANA,CLA_HANKAKU_KANA)を使用したファイルをコンパイルすると,出力されるバイナリ形式のKEYBINDファイルのサポートレベルが 2になります。アプリケーションは KEYBINDファイルを読み込むときに,自分がサポートしているアクションに従ったレベルを指定します。このとき読み込もうとした KEYBIND ファイルのサポートレベルが,アプリケーションの指定したサポートレベルより高い場合は,KEYBINDファイルの読み込みは失敗します。
PROFILE の DEC-JAPANESE.KEY.keybind で指定された KEYBIND ファイルの読み込みに失敗した場合は,最大9回まで再試行が行われます。再試行に使われるファイル名は上記のINDEX に_1,_2,などを付けた INDEX で指定できます。
この章では JVMS キーの KEYBIND ファイルを例にして,KEYBIND ファイルを作るときの注意点について書かれています。
JVMS キーの KEYBIND ファイルを 例 7-1 に示します。説明のため実際に提供されているものと違っている部分があります。
例 7-1 JVMSキーのKEYBINDファイル |
---|
! ! 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) |
IM$KEY_COMMON_BODY.DAT の内容を 例 7-2 に示します。
例 7-2 IM$KEY_COMMON_BODY.DAT の内容 |
---|
! ! 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; |
前へ | 次へ | 目次 | 索引 |