Next: Buffer List, Previous: Modification Time, Up: Buffers [Contents][Index]
あるバッファーが読み取り専用(read-only)の場合は、たとえスクロールやナローイングによってファイルのコンテンツのビューを変更しても、そのコンテンツを変更することはできません。
読み取り専用バッファーは、2つのタイプの状況において使用されます:
ここでの目的は、ユーザーにたいしてそのファイルへの保存を意図したバッファーの編集が無益、または望ましくないかもしれないことを伝えることである。それにも関わらずバッファーのテキストの変更を望むユーザーは、C-x C-qで読み取り専用フラグをクリアーした後、これを行うことができる。
このようなモードのスペシャルコマンドは、buffer-read-onlyを(letにより)nilにバインドしたり、テキストを変更する箇所ではinhibit-read-onlyをtにバインドする。
このバッファーローカル変数は、そのバッファーが読み取り専用かどうかを指定する。この変数が非nilなら、そのバッファーは読み取り専用である。
この変数が非nilの場合、読み取り専用バッファー、およびその実際の値に依存して、一部もしくはすべての読み取り専用文字が変更されている。バッファー内の読み取り専用文字とは、テキストプロパティread-onlyが非nilの文字である。テキストプロパティについての詳細は、Special Propertiesを参照のこと。
inhibit-read-onlyがtの場合、すべてのread-only文字プロパティは効果がなくなる。inhibit-read-onlyがリストの場合、read-only文字プロパティがリストのメンバーなら効果がなくなる(比較はeqで行われる)。
これは、バッファーローカルなマイナーモードである、Read
Onlyモードにたいするモードコマンドである。このモードが有効なときは、そのバッファーのbuffer-read-onlyは非nilである。無効なときは、そのバッファーのbuffer-read-onlyはnilである。呼び出す際の慣習は、他のマイナーモードコマンドの慣習と同じである(Minor Mode Conventionsを参照)。
このマイナーモードは他のマイナーモードとは異なり、主に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モードも無効にする。
この関数は、カレントバッファーが読み取り専用の場合は、buffer-read-onlyエラーをシグナルする。カレントバッファーが読み取り専用の場合にエラーをシグナルする他の方法については、Using Interactiveを参照のこと。