Next: , Previous: , Up: バッファー   [Contents][Index]


28.7 読み取り専用のバッファー

あるバッファーが読み取り専用(read-only)の場合には、たとえスクロールやナローイングによってファイルのコンテンツのビューを変更しても、そのコンテンツを変更することはできません。

読み取り専用バッファーは、2つのタイプの状況において使用されます:

Variable: buffer-read-only

このバッファーローカル変数は、そのバッファーが読み取り専用かどうかを指定する。この変数が非nilならそのバッファーは読み取り専用。しかしテキストプロパティinhibit-read-onlyをもつ文字は依然として編集可能。inhibit-read-onlyを参照のこと。

Variable: inhibit-read-only

この変数が非nilなら、読み取り専用バッファー、およびその実際の値に依存して、一部もしくはすべての読み取り専用文字が変更されている。バッファー内の読み取り専用文字とはテキストプロパティread-onlyが非nilの文字。テキストプロパティについての詳細は特殊な意味をもつプロパティを参照のこと。

inhibit-read-onlytなら、すべてのread-only文字プロパティは効果がなくなる。inhibit-read-onlyがリストの場合には、read-only文字プロパティがリストのメンバーなら効果がなくなる(比較はeqで行われる)。

Command: read-only-mode &optional arg

これはバッファーローカルなマイナーモードRead Onlyモードにたいするモードコマンド。このモードが有効なときは、そのバッファーのbuffer-read-onlyは非nil。無効なときは、そのバッファーのbuffer-read-onlynil。呼び出す際の慣習は、他のマイナーモードコマンドの慣習と同じ(マイナーモード記述の規約を参照)。

このマイナーモードは他のマイナーモードとは異なり、主にbuffer-read-onlyにたいするラッパーの役目を果たし、別個にread-only-mode変数は存在しない。Read Onlyモードが無効なときでも、read-onlyテキストプロパティが非nilの文字は読み取り専用のままである。一時的にすべての読み取り専用ステータスを無視するには上述のinhibit-read-onlyをバインドすること。

Read Onlyモードを有効にする際、このモードコマンドはオプションview-read-onlyが非nilならViewモードも有効にする。Miscellaneous Buffer Operations in The GNU Emacs Manualを参照のこと。Read Onlyモードを無効にする際に、もしもViewモードが有効ならViewモードも無効にする。

Function: barf-if-buffer-read-only &optional position

この関数はカレントバッファーが読み取り専用ならbuffer-read-onlyエラーをシグナルする。position (デフォルトはポイント位置)のテキストのテキストプロパティinhibit-read-onlyがセットされていればエラーは発生しないだろう。

カレントバッファーが読み取り専用の場合にエラーをシグナルする他の方法については、interactiveの使用を参照のこと。