Spec-Zone.ru › Elisp

Только для чтения буферы

Если буфер только для чтения, то вы не можете изменить его содержимое, хотя можете изменить свой вид содержимого, прокручивая и сужая его.

Буферы только для чтения используются в двух типах ситуаций:

  • Буфер, посещающий защищенный от записи файл, обычно является только для чтения.

    Здесь цель — проинформировать пользователя о том, что редактирование буфера с целью сохранения его в файле может быть бесполезным или нежелательным. Пользователь, который хочет изменить текст буфера, несмотря на это, может сделать это после сброса флага только для чтения с помощью 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, то буферы только для чтения и, в зависимости от фактического значения, некоторые или все символы только для чтения могут быть изменены. Символы только для чтения в буфере — это те, у которых есть свойство текста, отличное от nil read-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. Даже при отключенном режиме Только для чтения символы с свойствами текста, отличными от nil read-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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API