Только для чтения буферы
Если буфер только для чтения, то вы не можете изменить его содержимое, хотя можете изменить свой вид содержимого, прокручивая и сужая его.
Буферы только для чтения используются в двух типах ситуаций:
- Буфер, посещающий защищенный от записи файл, обычно является только для чтения.
Здесь цель — проинформировать пользователя о том, что редактирование буфера с целью сохранения его в файле может быть бесполезным или нежелательным. Пользователь, который хочет изменить текст буфера, несмотря на это, может сделать это после сброса флага только для чтения с помощью C-x C-q.
- Режимы, такие как Dired и Rmail, делают буферы только для чтения, когда изменение содержимого с помощью обычных команд редактирования, вероятно, будет ошибкой.
Специальные команды этих режимов связывают
buffer-read-onlyсnil(сlet) или связываютinhibit-read-onlyсtвокруг мест, где они сами изменяют текст.
- Переменная: buffer-read-only
Эта переменная, локальная для буфера, определяет, является ли буфер только для чтения. Буфер является только для чтения, если эта переменная не
nil. Однако символы, у которых есть свойство текстаinhibit-read-only, все еще могут быть изменены. См. inhibit-read-only.
- Переменная: inhibit-read-only
-
Если эта переменная не
nil, то буферы только для чтения и, в зависимости от фактического значения, некоторые или все символы только для чтения могут быть изменены. Символы только для чтения в буфере — это те, у которых есть свойство текста, отличное отnilread-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. Даже при отключенном режиме Только для чтения символы с свойствами текста, отличными отnilread-only, остаются только для чтения. Для временного игнорирования всех состояний только для чтения свяжитеinhibit-read-only, как описано выше.При включении режима Только для чтения эта команда режима также включает режим просмотра, если опция
view-read-onlyнеnil. См. Различные операции с буфером в Руководстве GNU Emacs. При отключении режима Только для чтения отключается режим просмотра, если режим просмотра был включен.
- Функция: barf-if-buffer-read-only &optional position
-
Эта функция сигнализирует об ошибке
buffer-read-onlyесли текущий буфер только для чтения. Если текст в позиции position (по умолчанию — текущая позиция) имеет свойство текстаinhibit-read-only, ошибка не будет сигнализирована.См. Использование интерактивного для другого способа сигнализации об ошибке, если текущий буфер только для чтения.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Read-Only-Buffers.html