Регистры
Регистр — это своего рода переменная, используемая при редактировании в 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