Регистры
Регистр — это своего рода переменная, используемая в редакторе Emacs, которая может хранить различные типы значений. Каждый регистр имеет имя, состоящее из одного символа. Для именования регистров можно использовать все символы ASCII и их мета-варианты (за исключением C-g). Таким образом, существует 255 возможных регистров. В Emacs Lisp регистр обозначается символом, являющимся его именем.
- Переменная: register-alist
-
Эта переменная является списком элементов вида
(name . contents). Обычно, для каждого используемого регистра Emacs существует по одному элементу.Объект name представляет собой символ (целое число), идентифицирующий регистр.
Содержимое регистра может иметь несколько типов:
- число
-
Число обозначает само себя. Если
insert-registerнаходит число в регистре, оно преобразует его в десятичное. - маркер
-
Маркер представляет собой позицию в буфере, к которой можно перейти.
- строка
-
Строка представляет собой текст, сохранённый в регистре.
- прямоугольник
-
Прямоугольник представлен списком строк.
(window-configuration position)-
Представляет конфигурацию окна для восстановления в одном фрейме и позицию для перехода в текущем буфере.
(frame-configuration position)-
Представляет конфигурацию фрейма для восстановления и позицию для перехода в текущем буфере.
- (file filename)
-
Представляет файл для посещения; переход к этому значению посещает файл filename.
- (file-query filename position)
Представляет файл для посещения и позицию в нём; переход к этому значению посещает файл filename и переходит к позиции position в буфере. Восстановление этого типа позиции предварительно запрашивает подтверждение у пользователя.
Функции в этом разделе возвращают непредсказуемые значения, если не указано иное.
- Функция: get-register reg
Эта функция возвращает содержимое регистра reg или
nil, если в нём нет содержимого.
- Функция: set-register reg value
Эта функция устанавливает содержимое регистра reg в value. Регистр может быть установлен на любое значение, но другие функции регистров ожидают только определённые типы данных. Возвращаемое значение — value.
- Команда: view-register reg
Эта команда отображает содержимое регистра reg.
- Команда: insert-register reg &optional beforep
-
Эта команда вставляет содержимое регистра reg в текущий буфер.
Обычно эта команда помещает точку перед вставленным текстом, а метку — после него. Однако, если необязательный второй аргумент beforep имеет ненулевое значение, она помещает метку перед, а точку — после.
При вызове в интерактивном режиме команда по умолчанию помещает точку после текста, а префиксный аргумент инвертирует это поведение.
Если регистр содержит прямоугольник, то прямоугольник вставляется с его верхним левым углом в точке. Это означает, что текст вставляется в текущую строку и под ней в последующих строках.
Если регистр содержит что-то отличное от сохранённого текста (строки) или прямоугольника (списка), происходят в настоящее время бесполезные действия. Это может быть изменено в будущем.
- Функция: register-read-with-preview prompt
-
Эта функция считывает и возвращает имя регистра, запрашивая prompt и, возможно, показывая предварительный просмотр существующих регистров и их содержимого. Предварительный просмотр отображается во временном окне после задержки, указанной в пользовательском параметре
register-preview-delay, если его значение иregister-alistоба ненулевые. Предварительный просмотр также отображается, если пользователь запросит справку (например, набрав символ справки). Мы рекомендуем использовать эту функцию во всех интерактивных командах, которые считывают имена регистров.
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/Registers.html