Next: Input Methods, Previous: Enabling Multibyte, Up: International
マルチバイト文字が使用可のときはいつでも、 すべての扱える文字集合を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
を設定するべきです。