この章では,PROFILEについて詳しく説明します。
PROFILEは,かな漢字変換におけるキー定義以外の付加情報が書かれたファイルです。 ユーザは,システムが提供するPROFILE,ユーザ独自のPROFILEのどちらでも使うことができます。
PROFILEは通常のテキスト・ファイルで,INDEXとそれに対応するVALUEの 1対1対応の形で,情報が書き込まれています。IMLIBを使うアプリケーションは, PROFILEに書かれた情報を使って,かな漢字変換の動作を決定します。
通常,標準のPROFILEとして,IM$DEFAULTS:IM$PROFILE.DATが使われます。 論理名IM$DEFAULTSは,
IM$DEFAULTS=SYS$LOGIN:,SYS$LIBRARY:
と定義されていますので,まず SYS$LOGIN:IM$PROFILE.DATが検索され, それが存在しないときにSYS$LIBRARY:IM$PROFILE.DATが使われます。 したがって,ユーザ独自のPROFILEを使うときには,ディレクトリに SYS$LOGIN:IM$PROFILE.DATというPROFILEを置いてください。 また,PROFILEファイルは,論理名IM$PROFILEを使って直接指定することもできます。
PROFILEの個々のINDEXとVALUEの定義はテキストファイルの1行の中で行われます。 INDEXとVALUEはコロン(:)をはさんだ形で以下のように書かれます。
INDEX-STRING : VALUE-STRING
INDEX-STRINGとVALUE-STRINGで使うことのできる文字は,以下の通りです。
スペース文字とタブ文字はセパレータとして使われます。 INDEX-STRING中にはセパレータを含むことはできませんが,VALUE-STRING中にはセパレータを含むことができます。 ただし,セパレータは,VALUE-STRINGの最初の文字と最後の文字に使うことはできません。
1行中で,感嘆符(!)またはシャープ記号(#)以降の文字は,注釈として扱われます。
PROFILEの中でINDEXに指定される文字列は,大文字と小文字が区別されませんので, 大文字と小文字のどちらを使っても,同じものとして扱われます。 これに対してVALUE文字列は,大文字と小文字が別の文字として扱われますので, 指定するときには大文字と小文字を確実に区別しなければなりません。
INDEXにワイルドカードを使うことはできません。
複数のアプリケーションで共通に使用するためのINDEXとそれに対応する VALUEが定められています。ここではそれらの説明をします。 アプリケーションは,できる限り共通のINDEXで指定した動作をするように作られていますので, ここで示されるINDEXに対応するVALUEを変えることによって, IMLIBをサポートするすべてのアプリケーションの動作が変わります。
共通に使用されるINDEXを以下に示します。かな漢字変換に関する共通のINDEXは, すべて"DEC-JAPANESE."で始まります。
VALUE: | deckanji, sdeckanji, eucjp, sjis |
説明: | アプリケーションが使用する漢字コードセットを指定します。 deckanjiはDEC漢字,sdeckanjiはSuperDEC 漢字,eucjp は日本語EUC,sjisはシフトJIS です。 省略時設定はDEC漢字です。 |
VALUE: | on | off (小文字) |
説明: | コードセットとして DEC 漢字を使用しているときに半角カナを使用するかどうかを指定します。 |
VALUE: | none | bold | blink | reverse | underline (小文字) |
説明: | 漢字変換時に,現在の文節に付けられるビデオ属性を指定します。 |
VALUE: | none | bold | blink | reverse | underline (小文字) |
説明: | 文字入力時に,変換範囲にある文字に付けられるビデオ属性を指定します。 |
VALUE: | none | bold | blink | reverse | underline (小文字) |
説明: | ひらがな,カタカナ,全角,半角変換時に,変換範囲に付けられるビデオ属性を指定します。 |
VALUE: | none | bold | blink | reverse | underline (小文字) |
説明: | 漢字変換時に,現在の文節より前の文節に付けられるビデオ属性を指定します。 |
VALUE: | current | 整数 (小文字) |
説明: | かな漢字変換を行うスクリーン上のカラムを示します。 currentは現在カーソルがあるカラムを示します。 整数はスクリーン上のカラム位置を数字で指定するときに使います。 |
VALUE: | current | top | bottom | 整数 (小文字) |
説明: | かな漢字変換を行うスクリーン上の行を示します。 topは1行目,bottomは最下行,currentは現在カーソルがある行を示します。 整数はスクリーン上の行番号を数字で指定するときに使います。 |
VALUE: | none | bold | blink | reverse | underline (小文字) |
説明: | 漢字変換時に,現在の文節より後の文節に付けられるビデオ属性を指定します。 |
VALUE: | hankaku | zenkaku (小文字) |
説明: | アルファベット文字を入力したときに半角で表示されるか全角で表示されるかを指定します。 |
VALUE: | on | off (小文字) |
説明: | 入力時にローマ字から指定された字種への自動変換を行うかどうかを指定します。 自動ローマ字かな変換した時のエコー字種は, DEC-JAPANESE.ECHO.kana で指定されたものが使われます。 |
VALUE: | jiskana | hiragana | katakana (小文字) |
説明: | カナが入力されたときの表示方法を指定します。 jiskanaは半角のカナを,hiraganaとkatakanaは全角を意味します。 |
VALUE: | ローマ字かな変換テーブルファイルを示す文字列 |
説明: | ローマ字かな変換時に使用するローマ字・かなの対応を記述したファイル名を指定します。 無指定時はライブラリ内部の対応表を使用します。 ローマ字かな変換テーブルファイルのサンプルとして IM$EXAMPLES:IM$ROMKANA_DB.TEMPLATE というファイルが用意されています。 |
VALUE: | KEYBINDファイルを示す文字列 |
説明: | KEYBINDファイルを示す文字列には, 必要なら拡張子,".im$dat" が付加されて使用されます。 ただし,拡張子が明示的に指定されたときは指定されたものが使用されます。IMLIB の SET KEYBIND が指定された keybind ファイルのロードに失敗した場合は, DEC_JAPANESE.key.keybind_1 のように "_数字"のついたINDEXを1から9まで順に探します。 |
VALUE: | none | rotate | done (小文字) |
説明: | 現在の文節が最初の文節にあるときに
「前文節」キーが押された場合,または現在の文節が最後の文節にあるときに
「次文節」キーが押された場合の動作を指定します。
noneのときは何も実行しません。 rotateが指定されると, 現在の文節が最初の文節にあるときには最後の文節に, 現在の文節が最後にあるときには最初の文節に移動します。 doneのときは,現在の変換を終了してアプリケーション指定の動作を実行します。 |
VALUE: | none | rotate | done (小文字) |
説明: | 文節の大きさが最小になっているときに「文節縮小」キーが押された場合,
または文節の大きさが最大になっているときに「文節拡大」キーが押された場合の動作を指定します。
noneのときは何も実行しません。 rotateが指定されると, 文節の大きさが最小のときには最大に,文節の大きさが最大のときは最小になります。 doneのときは,現在の変換を終了してアプリケーション指定の動作を実行します。 |
VALUE: | none | done (小文字) |
説明: | カーソルが最初の文字にあるときに「左移動」キーが押された場合,
またはカーソルが最後の文字にあるときに
「右移動」キーが押された場合の動作を指定します。
noneのときは何も実行しません。 doneのときは, 現在の変換を終了してアプリケーション指定の動作を実行します。 |
PROFILEの例を 例 4-1 に示します。
DEC-JAPANESE.CHAR.jisKana : off DEC-JAPANESE.DISP.currentClauseRendition : reverse DEC-JAPANESE.DISP.inputRendition : bold DEC-JAPANESE.DISP.kanaRenditon : bold DEC-JAPANESE.DISP.leadingClauseRendition : none DEC-JAPANESE.DISP.preEditColumn : current DEC-JAPANESE.DISP.preEditRow : current DEC-JAPANESE.DISP.trailingClauseRendition : none DEC-JAPANESE.ECHO.ascii : hankaku DEC-JAPANESE.ECHO.autoRomanKana : off DEC-JAPANESE.ECHO.kana : hiragana DEC-JAPANESE.KEY.keybind : IM$KEY_JVMS_LEVEL2 DEC-JAPANESE.KEY.keybind_1 : IM$KEY_JVMS DEC-JAPANESE.OUTRANGE.clauseNumber : rotate DEC-JAPANESE.OUTRANGE.clauseSize : none DEC-JAPANESE.OUTRANGE.cursorPosition : done