Next: The Buffer List, Previous: Modification Time, Up: Buffers
バッファが読み出し専用(read-only)であると、 スクロールしたりナロイングしてその内容を眺めることはできますが、 その内容は変更できません。
読み出し専用バッファは、2種類の場面で使われます。
ここでの目的は、バッファを編集してファイルに保存しようとしても それに失敗するか望ましくないことであることをユーザーに伝えることである。 それにも関わらずバッファのテキストを変更したいユーザーは、 読み出し専用フラグをC-x C-qでクリアすれば編集できる。
これらのモードの特別なコマンドは、
それら自身がテキストを変更する場面では、
(let
で)buffer-read-only
にnil
を束縛したり、
inhibit-read-only
にt
を束縛する。
このバッファローカルな変数は、 バッファが読み出し専用であるかどうかを指定する。 この変数が
nil
以外であると、バッファは読み出し専用である。
この変数が
nil
以外であると、 読み出し専用バッファや読み出し専用文字を変更できる。 バッファ内の読み出し専用文字とは (テキスト属性やオーバレイ属性の) 属性read-only
がnil
以外の文字である。 テキスト属性について詳しくは、see Special Properties。 重ね合わせとそれらの属性について詳しくは、see Overlays。
inhibit-read-only
がt
であると、 すべての文字の属性read-only
は効果を失う。inhibit-read-only
がリストであると、 文字の属性read-only
が(eq
で比較して) リストのメンバであると効果を失う。
このコマンドは、カレントバッファが読み出し専用かどうかを変更する。 対話的な使用を意図しており、プログラムからは使わないこと。 プログラムの任意の箇所で、読み出し専用フラグを オンにしたいかオフにしたいかを読者は知っているはずであり、 そうすれば、読者は
buffer-read-only
をt
かnil
の正しい値に明示的に設定できる。
この関数は、カレントバッファが読み出し専用であると エラー
buffer-read-only
を通知する。 カレントバッファが読み出し専用であるときに エラーを通知する別の方法については、see Interactive Call。