Spec-Zone.ru › Elisp

Регистры

Регистр — это своего рода переменная, используемая при редактировании в Emacs и способная хранить значения различных типов. Каждый регистр обозначается одним символом. Для обозначения регистров можно использовать все символы ASCII и их мета-варианты (за исключением C-g). Таким образом, существует 255 возможных регистров. В Emacs Lisp регистр обозначается символом, которым он назван.

Переменная: register-alist

Эта переменная представляет собой список ассоциаций, состоящий из элементов вида (name . contents). Обычно в нём есть по одному элементу для каждого использовавшегося регистра Emacs.

Объект name — это символ (целое число), идентифицирующий регистр.

contents регистра может иметь несколько типов:

число

Число представляет само себя. Если insert-register обнаруживает в регистре число, оно преобразует его в десятичную запись.

маркер

Маркер представляет позицию в буфере, к которой нужно перейти.

строка

Строка — это текст, сохранённый в регистре.

прямоугольник

Прямоугольник представлен списком строк.

(window-configuration position)

Это значение представляет конфигурацию окна, которую нужно восстановить в одном фрейме, и позицию, к которой нужно перейти в текущем буфере.

(frame-configuration position)

Это значение представляет конфигурацию фреймов, которую нужно восстановить, и позицию, к которой нужно перейти в текущем буфере. Конфигурации фреймов также называются наборами фреймов.

(file filename)

Это значение представляет файл, который нужно открыть; переход к этому значению открывает файл filename.

(file-query filename position)

Это значение представляет файл, который нужно открыть, и позицию в нём; переход к этому значению открывает файл filename и перемещает курсор к позиции position в буфере. Перед восстановлением позиции этого типа программа сначала запрашивает подтверждение пользователя.

(buffer buffer)

Это значение представляет буфер; переход к нему переключает на этот buffer.

Если не указано иное, функции в этом разделе возвращают непредсказуемые значения.

Функция: get-register reg

Эта функция возвращает содержимое регистра reg или nil, если он пуст.

Функция: set-register reg value

Эта функция устанавливает содержимое регистра reg равным value. Регистру можно присвоить любое значение, однако другие функции работы с регистрами предполагают, что используются только определённые типы данных. Возвращаемое значение — value.

Команда: view-register reg

Эта команда отображает содержимое регистра reg.

Команда: insert-register reg &optional beforep

Эта команда вставляет содержимое регистра reg в текущий буфер.

Обычно эта команда помещает точку перед вставленным текстом, а метку — после него. Однако, если необязательный второй аргумент beforep не равен nil, она помещает метку перед текстом, а точку — после него.

При интерактивном вызове команда по умолчанию помещает точку после текста, а префиксный аргумент инвертирует это поведение.

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

Если регистр содержит не сохранённый текст (строку) и не прямоугольник (список), в настоящее время происходят бесполезные действия. В будущем это может измениться.

Функция: register-read-with-preview prompt

Эта функция считывает и возвращает имя регистра, выводя приглашение prompt и, возможно, показывая предварительный просмотр существующих регистров и их содержимого. Предварительный просмотр отображается во временном окне после задержки, заданной пользовательским параметром register-preview-delay, если его значение и register-alist оба не равны nil. Предварительный просмотр также отображается, если пользователь запрашивает справку (например, нажатием клавиши справки). Мы рекомендуем использовать эту функцию во всех интерактивных командах, которые считывают имена регистров.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Registers.html

Spec-Zone.ru

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