Если буфер является только для чтения, вы не можете изменять его содержимое, хотя вы можете изменять свой вид содержимого прокручиванием и сужением.
Буферы только для чтения используются в двух типах ситуаций:
Здесь цель состоит в том, чтобы уведомить пользователя о том, что редактирование буфера с целью сохранения его в файле может быть бесполезным или нежелательным. Пользователь, который хочет изменить текст буфера, несмотря на это, может сделать это после сброса флага только для чтения с помощью C-x C-q.
Специальные команды этих режимов связывают buffer-read-only с
nil (с let) или связывают inhibit-read-only с
t вокруг мест, где они сами изменяют текст.
Эта буферная переменная указывает, является ли буфер только для чтения.
Буфер является только для чтения, если эта переменная не равна nil. Однако
символы, имеющие свойство текста inhibit-read-only, все еще могут быть
изменены. См. inhibit-read-only.
Если эта переменная не равна nil, то буферы только для чтения и,
в зависимости от фактического значения, некоторые или все символы только для чтения могут
быть изменены. Символы только для чтения в буфере — это те, которые имеют
неравное nil свойство текста read-only. См. Свойства со специальным значением, для получения дополнительной информации о свойствах текста.
Если inhibit-read-only равно t, то все свойства символов
read-only не имеют значения. Если inhibit-read-only — это список,
то свойства символов read-only не имеют значения, если они являются
членами этого списка (сравнение выполняется с помощью eq).
Это команда режима для второстепенного режима "Только для чтения", который является
буферным второстепенным режимом. Когда режим включен, buffer-read-only
является не nil в буфере; когда он отключен, buffer-read-only
является nil в буфере. Конвенция вызова такая же, как для других
команд второстепенных режимов (см. Конвенции для написания второстепенных режимов).
Этот второстепенный режим в основном служит оберткой для
buffer-read-only; в отличие от большинства второстепенных режимов, здесь нет
отдельной переменной read-only-mode. Даже когда режим "Только для чтения"
отключен, символы с не nil свойствами текста read-only
остаются только для чтения. Чтобы временно игнорировать все состояния только для чтения,
свяжите inhibit-read-only, как описано выше.
При включении режима "Только для чтения" эта команда режима также включает режим просмотра,
если опция view-read-only не равна nil. См. Различные операции с буфером в Руководство GNU Emacs.
При отключении режима "Только для чтения" он отключает режим просмотра, если режим просмотра
был включен.
Эта функция сигнализирует об ошибке buffer-read-only, если текущий
буфер только для чтения. Если текст по position (по умолчанию
точка) имеет установленное свойство текста inhibit-read-only, ошибка
не будет вызвана.
См. Использование interactive, для
другого способа сигнализации об ошибке, если текущий буфер только для чтения.