日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
日本語OpenVMS
|
目次 | 索引 |
前章までは,かな漢字変換のキーの割り当ての変更およびPROFILEの変更という比較的簡単にキー定義を変更する方法について説明してきました。この章以降の章では,より細かいキー定義の変更(入力シーケンスのカスタマイズ)を行う方法が説明されています。
入力シーケンスのカスタマイズは,かな漢字変換入力に関する基本的な知識が必要です。少しの変更でも,かな漢字変換の動作全体に影響を与えることがありますので,注意してください。
キー定義のシンタックスは 付録 B を参照してください。
5.1 KEYとACTION
キー定義はキーボード上のキーの名称と,実行される機能(ACTION)の関係を記述したKEYBINDファイルを作ることで行います。1つのKEYに対して複数のACTIONを定義することも,複数のキーに対して1つのACTIONを定義することもできます。
例 5-1 にKEYBINDファイルの中で,KEYとACTIONの関係を記述した部分を示します。この例では[Ctrl/K]キーを押すとカタカナ変換, [Ctrl/L]キーを押すとひらがな変換をするように記述されています。また例の3行目に示されるように,コンマ(,)で区切ることで複数のACTIONを指定することもできます。
例 5-1 KEYとACTIONの記述 |
---|
CTRL_K : KATAKANA; CTRL_L : HIRAGANA; TYPING_KEYS : START, ECHO; |
IMLIBのかな漢字変換キー定義が対象とするキーは,VT280シリーズ端末およびVT382 端末でサポートされるすべてのキーおよびいくつかの特殊キーです。IMLIBがサポートするキー名は, 付録 A を参照してください。IMLIBがサポートするキー名のうち注意が必要なキーについて以下に説明します。
KEYBINDファイルには,複数のキーの組合せで1つの機能を実行させたり,2つのキーに同じ機能を持たせるような記述をすることができます。 例 5-2 に組み合わせたキーの記述の例を示します。
複数のキーの組合せで1つの機能を実行させるにはキー名をプラス記号(+)でつなぎます。例の1行目は,KEYBINDファイルの中の1行を抜き出したもので,
[PF1]キーを押した後[KP7]キーを押すことで,カタカナ変換を実行することを指示しています。
2つのキーのどちらを押しても同じ機能を実行させるにはキー名をコンマ(,)でつなぎます。例の2行目は,KEYBINDファイルの中の1行を抜き出したもので,[Ctrl/L]キーを押しても,[Ctrl/H]キーを押してもひらがな変換を実行することを指示しています。
また例の3行目のようにかっこを使ってより複雑なキーの記述をすることもできます。この例は,[PF1]キーを押した後[Ctrl/F]キーを押しても,あるいは
[Ctrl/G]キーを押した後[Ctrl/F]キーを押しても,半角変換を実行することを指示しています。
5.2 定義できるキーの範囲
[Ctrl/C]キーは,OpenVMSでは"Cancel"に使われますので,通常の端末設定では定義した動作を実行させることはできません。
[Ctrl/O]キーは,OpenVMSでは画面出力のON/OFFを切り替える目的で使われますので,通常の端末設定では定義した動作を実行させることはできません。
[Ctrl/Q]キーは,OpenVMSではフロー・コントロールの"XON"に使われますので,通常の端末設定では定義した動作を実行させることはできません。
[Ctrl/S]キーは,OpenVMSではフロー・コントロールの"XOFF"に使われますので,通常の端末設定では定義した動作を実行させることはできません。
[Ctrl/Y]キーは,OpenVMSでは"Interrupt"に使われますので,通常の端末設定では定義した動作を実行させることはできません。
すべてのキーにマッチします。どのキーを押しても同じ動作をさせたいときに使用します。
すべての画面に表示されるキー(文字キー,数字キー)にマッチします。
どのキーともマッチしません。マクロ定義において,ある機能にどのキーも定義したくないときに使用します。
5.3 キーの組合せの表記法
例 5-2 組み合わせたキーの記述 |
---|
PF1 + KP7 : KATAKANA; CTRL_L, CTRL_H : HIRAGANA; (PF1, CTRL_G) + CTRL_F : HANKAKU; |
かな漢字変換を行うための個々の機能のことをACTIONと呼びます。かな漢字変換のキー定義を行う時,キーに対応する機能をACTIONの組合せで記述します。
ACTIONによって実行される機能は,細かく規定されています。ユーザはACTIONによって,かな漢字変換におけるアプリケーションの動作をコントロールできます。
5.5 かな漢字変換の内部状態
図 5-1 かな漢字変換の内部状態と状態間の遷移
図 5-1 に示される状態の間の遷移は,ACTIONやその他の条件によって起こります。ここでは,状態間の遷移を引き起こす条件について説明します。
表 5-1 はACTIONによる状態間の遷移を示す表です。この表は,ACTIONを実行する前の状態と実行後の状態をまとめたものです。表の中で使われている表記は以下の通りです。
5.6 状態間の移動
カーソル移動に関連したACTIONです。MOVE_LEFT, MOVE_RIGHT, HEAD, TAIL, DELETE がこれにあたります。
単純な変換を行うACTIONです。HIRAGANA, KATAKANA, HANKAKU_KANA, HANKAKU, ZENKAKU, SYMBOL, UPPER, LOWERがこれにあたります。
漢字変換中の文節に関連したACTIONです。CLA_HIRAGANA, CLA_KATAKANA, CLA_HANKAKU_KANA, CLA_ZENKAKU, CLA_HANKAKU, NEXT_CLAUSE, PREV_CLAUSE, SHORTEN_CLAUSE, EXTEND_CLAUSE, NEXT_CANDIDATE, PREV_CANDIDATEがこれにあたります。
今の状態でこのようなACTIONは許されないことを示します。
KEYBINDファイルに,このようなACTIONが記述されていると,KEYBINDコンパイラは警告を出します。
このACTIONが来たときにはアプリケーションは何も実行しないことを示します。
ACTION | 初期状態 | 入力状態 | かな変換状態 | 漢字変換状態 |
---|---|---|---|---|
START | 入力状態 (1) | error | error | error |
START_SELECTED | 入力状態 (1) | error | error | error |
ECHO | error | 入力状態 (2) | error | error |
カーソル | error | 入力状態 (2) | error | error |
かな変換 | error | かな変換状態 (3) | かな変換状態 (6) | かな変換状態 (13) |
CONVERT | error | 漢字変換状態 (4) | 漢字変換状態 (7) | no action |
DONE | no action | 初期状態 (5) | 初期状態 (8) | 初期状態 (11) |
文節操作 | error | error | error | 漢字変換状態 (10) |
RESTORE_STRING | error | no action | 入力状態 (9) | 入力状態 (12) |
RESTORE_ECHO | error | かな変換状態 (3) | かな変換状態 (6) | かな変換状態 (13) |
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; |
目次 | 索引 |
|