Регистр — это своего рода переменная, используемая в редактировании Emacs, которая может хранить различные типы значений. Каждый регистр называется одним символом. Все символы ASCII и их мета-варианты (за исключением C-g) могут использоваться для именования регистров. Таким образом, существует 255 возможных регистров. В Emacs Lisp регистр обозначается символом, который является его именем.
Эта переменная является alist элементами вида (имя .
содержимое). Обычно для каждого использованного регистра Emacs
есть один элемент.
Объект имя — это символ (целое число), идентифицирующий регистр.
Содержимое содержимое регистра может иметь несколько возможных типов:
Число представляет само себя. Если insert-register находит число
в регистре, оно преобразуется в десятичное представление.
Маркер представляет позицию буфера, к которой нужно перейти.
Строка — это текст, сохраненный в регистре.
Прямоугольник представлен списком строк.
(window-configuration position)Это представляет конфигурацию окна для восстановления в одном фрейме и позицию для перехода в текущем буфере.
(frame-configuration position)Это представляет конфигурацию фрейма для восстановления и позицию для перехода в текущем буфере. Конфигурации фреймов также известны как framesets.
(file filename)Это представляет файл для посещения; переход к этому значению посещает файл filename.
(file-query filename position)Это представляет файл для посещения и позицию в нем; переход к этому значению посещает файл filename и переходит к позиции буфера position. Восстановление этого типа позиции сначала запрашивает подтверждение у пользователя.
(buffer buffer-name)Это представляет буфер; переход к этому значению переключается на буфер buffer-name.
Функции в этом разделе возвращают непредсказуемые значения, если не указано иначе.
Эта функция возвращает содержимое регистра
reg или nil, если он не содержит содержимого.
Эта функция устанавливает содержимое регистра reg в value. Регистр может быть установлен в любое значение, но другие функции регистров ожидают только определенные типы данных. Возвращаемое значение — это value.
Эта команда отображает содержимое регистра reg.
Эта команда вставляет содержимое регистра reg в текущий буфер.
Обычно эта команда ставит точку перед вставленным текстом, а маркер после него.
Однако, если необязательный второй аргумент beforep
не равен nil, она ставит маркер перед текстом, а точку после.
При интерактивном вызове команда по умолчанию ставит точку после текста, а аргумент префикса инвертирует это поведение.
Если регистр содержит прямоугольник, то прямоугольник вставляется с его верхним левым углом в точку. Это означает, что текст вставляется в текущую строку и под ней на последующих строках.
Если регистр содержит что-то, кроме сохраненного текста (строки) или прямоугольника (списка), происходят в настоящее время бесполезные вещи. Это может быть изменено в будущем.
Эта функция считывает и возвращает имя регистра, запрашивая
prompt и возможно показывая предварительный просмотр существующих
регистров и их содержимого. Предварительный просмотр отображается во временном
окне после задержки, указанной в опции пользователя register-preview-delay,
если ее значение и register-alist не равны nil.
Предварительный просмотр также показывается, если пользователь запрашивает справку
(например, вводит символ справки). Мы рекомендуем использовать эту функцию во
всех интерактивных командах, которые считывают имена регистров.