次: , 前: Enabling Multibyte, 上: International


16.3 言語環境

マルチバイト文字が使用可のときはいつでも、 すべての扱える文字集合をEmacsバッファの中で使えます。 ある言語の文字を表示するために、 Emacsバッファでその言語を選択する必要はありません。 しかし、さまざまなデフォルトを設定するために言語環境を 選択しておくことは重要です。 言語環境は、言語の選択というより、 (多かれ少なかれ)実際には好みの文字を表します。

言語環境は、テキストを読み込むときにどのコーディングシステムを認識するかを 制御します(see Recognize Coding)。 言語環境は、ファイル、到着メイル、ニュース、 Emacsへ読み込むその他のテキストに適用されます。 言語環境は、ファイルを作成したときに使うデフォルトの コーディングシステムを指定することもあります。 各言語環境は、デフォルトの入力方式も指定します。

言語環境を選択するには、 コマンドM-x set-language-environmentを使います。 このコマンドを使ったときにどのバッファが カレントバッファであるかは関係ありません。 というのは、その効力は、そのEmacsセッションに全体に適用されるからです。 以下の言語環境を使えます。

Chinese-BIG5、Chinese-CNS、Chinese-GB、Cyrillic-Alternativnyj、 Cyrillic-ISO、Cyrillic-KOI8、Devanagari、English、Ethiopic、Greek、 Hebrew、Japanese、Korean、Lao、Latin-1、Latin-2、Latin-3、Latin-4、 Latin-5、Thai、Tibetan、Vietnamese。

いくつかのオペレーティングシステムでは、 ローケル(locale)環境変数を設定することで言語を指定できます。 Emacsは、このよくある特別な場面を扱います。 文字種を表すローケル名が文字列`8859-n'を含むなら、 Emacsは自動的に対応する言語環境を選択します。

ある言語環境lang-envの効果についての情報を表示するには、 コマンドC-h L lang-env <RET>describe-language-environment)を使います。 このコマンドは、その言語環境がどの言語に役立つのか、 その言語で使われる文字集合、コーディングシステム、 入力方式の一覧を表示します。 また、その言語環境で使われる文字を例示する例文も表示します。 デフォルトでは、このコマンドは選択されている言語環境を記述します。

どの言語環境もノーマルフックset-language-environment-hookで カスタマイズできます。 コマンドset-language-environmentは、 新しい言語環境を設定したあとでこのフックを実行します。 フック関数では、変数current-language-environmentを検査すれば、 言語環境を知ることができます。

set-language-environmentは、新しい言語環境を設定し始めるまえに、 まずフックexit-language-environment-hookを実行します。 このフックは、(直前の言語環境を設定した) set-language-environmentで施したカスタマイズをもとに戻すのに便利です。 たとえば、set-language-environment-hookを使って設定した 特定の言語環境で特別なキーバインディングを定義したときには、 それをそのキーのもとのバインディングに戻すために exit-language-environment-hookを設定するべきです。