2.5.1 Тип буфера

Буфер — это объект, который хранит текст, который можно редактировать (см. Буферы). Большинство буферов содержат содержимое файла на диске (см. Файлы), чтобы их можно было редактировать, но некоторые используются для других целей. Большинство буферов также предназначены для просмотра пользователем и, следовательно, в какой-то момент отображаются в окне (см. Окна). Но буфер не обязательно должен отображаться в каком-либо окне. Каждый буфер имеет назначенную позицию под названием точка (см. Позиции); большинство команд редактирования действуют на содержимое текущего буфера в окрестности точки. В любой момент времени один буфер является текущим буфером.

Содержимое буфера очень похоже на строку, но буферы не используются как строки в Emacs Lisp, и доступные операции отличаются. Например, вы можете эффективно вставлять текст в существующий буфер, изменяя содержимое буфера, тогда как вставка текста в строку требует конкатенации подстрок, и результатом является совершенно новый объект строки.

Многие стандартные функции Emacs манипулируют или проверяют символы в текущем буфере; целая глава этого руководства посвящена описанию этих функций (см. Текст).

С каждым буфером связаны еще несколько структур данных:

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

Буфер может быть непрямым, что означает, что он разделяет текст другого буфера, но отображает его по-другому. См. Непрямые буферы.

Буферы не имеют читаемого синтаксиса. Они выводятся в хеш-нотации, показывая имя буфера.

(current-buffer)
     ⇒ #<buffer objects.texi>