Spec-Zone.ru › Elisp

Тип буфера

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

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

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

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

  • локальная таблица синтаксиса (см. Таблицы синтаксиса);
  • локальная карта клавиш (см. Карты клавиш); и,
  • список связей переменных, локальных для буфера (см. Переменные, локальные для буфера).
  • наложения (см. Наложения).
  • свойства текста для текста в буфере (см. Свойства текста).

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

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

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

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

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/Buffer-Type.html

Spec-Zone.ru

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