GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Disabling-Multibyte.html ・ emacs-doc.conao3.com

34.2 マルチバイト文字の無効化

デフォルトでは、Emacsはマルチバイトモードで起動します。バッファや文字列の内容は、非ASCII文字をマルチバイトシーケンスで表現する内部エンコーディングを用いて格納されます。マルチバイトモードを利用すれば、サポートされているすべての言語やスクリプトを制限なく使用できます。

極めて特殊な状況下では、特定のバッファに対してマルチバイト文字サポートを無効にしたい場合があります。バッファでマルチバイト文字が無効になっている状態を、ユニバイトモードと呼びます。ユニバイトモードでは、バッファ内の各文字は0から255(8進数で0377)までの文字コードを持ちます。0から127(8進数で0177)はASCII文字を、128(8進数で0200)から255(8進数で0377)は非ASCII文字を表します。

特定のファイルをユニバイト形式で編集するには、find-file-literally を使用してそのファイルにアクセスします。ファイルアクセス用関数を参照してください。マルチバイトバッファをファイルに保存し、バッファを破棄した後、再度 find-file-literally でファイルにアクセスすることで、マルチバイトバッファをユニバイトに変換できます。あるいは、C-x RET c (universal-coding-system-argument) を使用し、ファイルのアクセスまたは保存に使用するコーディングシステムとして ‘raw-text’ を指定することもできます。GNU Emacs Manual の ファイルテキストのコーディングシステムの指定を参照してください。find-file-literally とは異なり、‘raw-text’ でファイルを探しても、フォーマット変換、展開、または自動モード選択は無効になりません。

バッファローカル変数 enable-multibyte-characters は、マルチバイトバッファでは non-nil となり、ユニバイトバッファでは nil となります。モードラインでも、バッファがマルチバイトであるかどうかが示されます。グラフィカルディスプレイの場合、マルチバイトバッファでは、文字セットを示すモードラインの部分にツールチップが表示され、(その他の情報とともに)そのバッファがマルチバイトであることが示されます。ユニバイトバッファでは、文字セットのインジケーターは表示されません。したがって、ユニバイトバッファでは(グラフィカルディスプレイを使用している場合)、入力メソッドを使用していない限り、通常、参照先ファイルの改行規約(コロン、バックスラッシュなど)の表示より前には何も表示されません。

特定のバッファ内で toggle-enable-multibyte-characters コマンドを実行することで、そのバッファのマルチバイトサポートを無効にできます。