Next: Select Input Method, Previous: Language Environments, Up: International
入力方式(input method)は、 対話的に入力するために特別に設計された文字変換の一種です。 Emacsでは、典型的には、各言語向けに専用の入力方式があります。 ときには、同じ文字を使ういくつかの言語で入力方式を共有します。 複数の入力方式を使う言語も少しはあります。
入力方式のもっとも単純なものは、ASCII文字を別のアルファベットに 対応させることで動作します。 ギリシア語とロシア語の入力方式はこのように動作します。
より強力な方法は合成で、文字の列を1つの文字に変換します。 多くのヨーロッパの入力方式は、文字のうしろにアクセント文字が続く列 (あるいはその逆順)から、1つの非ASCII文字を生成する合成を使います。 たとえば、いくつかの入力方式では、 文字の列a'を1つのアクセント付き文字に変換します。 これらの入力方式には、その方式に固有の特別なコマンドはありません。 印字文字の列を合成するだけです。
音節文字用の入力方式では、典型的には、対応付けたあとで合成します。 タイ語と韓国語の入力方式は、この方法で動作します。 まず、文字を音声記号に対応付けます。 そして、1つの音節全体を構成するそれらの列を1つの音節記号に対応付けます。
中国語や日本語では、より複雑な方法が必要です。
中国語の入力方式では、まず、中国語の単語の発音表記を入力する
(とりわけ入力方式chinese-py
)か、
1文字の各部分部分の列(とりわけ入力方式chinese-4corner
や
chinese-sw
)を入力します。
1つの発音表記は、普通、多くの異なる中国語の文字に対応しているので、
特別なEmacsコマンドを使って候補群から1つを選ぶ必要があります。
C-f、C-b、C-n、C-pと数字キーは、
この状況で候補を選ぶために使われる特別な定義になっています。
<TAB>は、すべての候補をバッファに表示します。
日本語の入力方式1 では、まず、発音表記を使って1つの単語全体を入力します。 そして、単語がバッファに入ったあとで、 Emacsは大きな辞書を使って1つ以上の文字へ変換します。 1つの発音表記は、たくさんの異なる日本語の単語に対応しているので、 その中から選ぶ必要があります。 候補を巡回するには、C-nやC-pを使います。
ときには、入力方式での処理を切り離したほうが便利なことがあります。
そうすれば、入力した文字は後続の入力文字と結合されません。
たとえば、入力方式latin-1-postfix
では、
キー列e 'は結合されてアクセント付き‘e’になります。
これらを別々の文字として入力したいときはどうするのでしょう?
1つの方法は、アクセントを2回打つことです。 これは、アルファベットとアクセントを別々に入力する特別な機能です。 たとえば、e ' 'は、2つの文字‘e'’になります。 別の方法は、eのあとに結合されない別の文字を打ってから、 すぐにそれを消すことです。 たとえば、 ‘e’と‘'’を入力するには、e e <DEL>'と打ちます。
別の方法はより一般的ですが、打つのは簡単ではありません。
2つの文字のあいだでC-\ C-\を打って、結合を止めます。
これは、コマンドC-\(toggle-input-method
)を2回使っています。
C-\ C-\は、インクリメンタルサーチの中では特に便利です。 というのは、結合する文字を待つことを止めて、 すでに入力したものを探索し始めるからです。
変数input-method-highlight-flag
と
input-method-verbose-flag
は、
入力方式に何が進行中かをどのように表示させるかを制御します。
input-method-highlight-flag
がnil
以外ならば、
バッファでは(入力途中の)部分列を強調表示します。
input-method-verbose-flag
がnil
以外ならば、
(ミニバッファの中でなければ)
つぎに打鍵できる文字の一覧をエコー領域に表示します。
[1] 【訳注】言語環境がJapanese
のときに
デフォルトで使用されるLEIMに含まれているもの。
「ローマ字→ひらがな→漢字」と変換するが、あまい使いやすくはない。
WNN、かんな、SKKなどを使うには、Emacsの配布とは別の非公式パッチを
自前で当てる必要がある。
ただし、これらを用いた場合、日本語を入力できない場面もあることを
承知しておく必要がある。