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

28.7 読み取り専用バッファ

バッファが読み取り専用の場合、その内容を変更することはできませんが、スクロールや範囲の絞り込みによって内容の表示方法を変えることは可能です。

読み取り専用バッファは、2種類の場面で使用されます。

変数: buffer-read-only

このバッファローカル変数は、バッファが読み取り専用であるかどうかを指定します。この変数が nil 以外の場合、バッファは読み取り専用となります。ただし、inhibit-read-only テキストプロパティを持つ文字は引き続き変更可能です。inhibit-read-only を参照してください。

変数: inhibit-read-only

この変数が nil 以外の場合、読み取り専用バッファにおいて、実際の値に応じて、一部またはすべての読み取り専用文字が変更されることがあります。バッファ内の読み取り専用文字とは、nil 以外の read-only テキストプロパティを持つ文字のことです。テキストプロパティの詳細については、特殊な意味を持つプロパティを参照してください。

inhibit-read-only が t の場合、すべての read-only 文字プロパティは効果を持ちません。inhibit-read-only がリストである場合、read-only 文字プロパティがそのリストの要素であれば効果を持ちません(比較は eq と行われます)。

コマンド: read-only-mode &optional arg

これは、バッファローカルなマイナーモードである「読み取り専用」マイナーモードのモードコマンドです。このモードが有効な場合、バッファ内では buffer-read-only は nil ではなく、無効な場合は buffer-read-only がバッファ内で nil となります。呼び出し規約は、他のマイナーモードコマンドと同様です(マイナーモード記述の規約を参照してください)。

このマイナーモードは主に buffer-read-only のラッパーとして機能します。ほとんどのマイナーモードとは異なり、独立した read-only-mode 変数は存在しません。Read Only モードが無効な場合でも、nil read-only 以外のテキストプロパティを持つ文字は読み取り専用のままとなります。すべての読み取り専用状態を一時的に無視するには、前述の通り inhibit-read-only をバインドしてください。

読み取り専用モードを有効にする際、オプション view-read-only が nil 以外であれば、このモードコマンドは表示モードも有効にします。The GNU Emacs Manual の Miscellaneous Buffer Operations を参照してください。読み取り専用モードを無効にする際、表示モードが有効になっていた場合は、表示モードも無効になります。

関数: barf-if-buffer-read-only &optional position

この関数は、現在のバッファが読み取り専用である場合に buffer-read-only エラーを発生させます。position(デフォルトは point)にあるテキストに inhibit-read-only テキストプロパティが設定されている場合は、エラーは発生しません。

現在のバッファが読み取り専用の場合にエラーを通知する別の方法については、interactive の使用を参照してください。