Previous: , Up: Init File   [Contents][Index]


51.4.5 initファイル内の非ASCII文字

initファイルの文字列やキーバインディングに、アクセントつき文字などの非ASCII文字が含まれる場合、それは言語やコーディングシステムに問題を起こすかもしれません。

initファイルで非ASCII文字を使用したい場合、initファイルの最初の行に‘-*-coding: coding-system-*-タグを配して、問題となる文字をサポートするコーディングシステムを指定するべきです。Recognize Codingを参照してください。なぜなら、非ASCIIテキストのでコーディングにたいするにたいするデフォルトのコーディングシステムは、Emacsがinitファイルでそのような文字列を使用する個所を読み込むまでに、セットアップされていないかもしれないので、Emacsがその文字列を間違ってデコードする可能性があるからです。‘-*-coding: coding-system-*-を記述した場合、set-language-environmentを呼び出す等、他の方法でコーディングシステムを変更するEmacs Lispコードの追加は避けるべきです。

ASCIIキーをバインドするには、ベクターを使用しなければなりません(Init Rebindingを参照してください)。非ASCII文字はメタキーとして解釈されるので、文字列構文は使用できません。たとえば:

(global-set-key [?char] 'some-function)

charを挿入するには、C-qとタイプしてからバインドしたいキーをタイプします。

警告: キーボードのエンコーディングを変更していたり、マルチバイトとユニバイトの間のモードを変更していたり、その文字にたいしてC-qが挿入するコードを変更する何かを行なっている場合、このキーバインディングは機能しないでしょう。したがって編集するファイルと同様に、initファイルにはただ1つのコーディングシステムを使用するのが賢明です。たとえば、コーディングシステム‘latin-1’と‘latin-9’を混ぜないでください。