Spec-Zone.ru › Elisp

Кольцо убийств низкого уровня

Эти функции и переменные обеспечивают доступ к кольцу убийств на более низком уровне, но остаются удобными для использования в программах Lisp, поскольку они обрабатывают взаимодействие с выделениями системного окна (см. Выделения системного окна).

Функция: current-kill n &optional do-not-move

Функция current-kill вращает указатель вырезания, который обозначает начало кольца убийств, на n позиций (от новых убийств к старым) и возвращает текст в этой позиции в кольце.

Если необязательный второй аргумент do-not-move имеет значение, отличное от nil, то current-kill не изменяет указатель вырезания; он просто возвращает n-ый элемент кольца убийств, считая от текущего указателя вырезания.

Если n равно нулю, указывая запрос на последнее убийство, current-kill вызывает значение interprogram-paste-function (документировано ниже) перед обращением к кольцу убийств. Если это значение является функцией, и её вызов возвращает строку или список из нескольких строк, current-kill добавляет эти строки в кольцо убийств и возвращает первую строку. Также current-kill устанавливает указатель вырезания на запись в кольце убийств первой строки, возвращенной interprogram-paste-function, независимо от значения do-not-move. В противном случае, current-kill не обрабатывает нулевое значение n специально: оно возвращает запись, на которую указывает указатель вырезания, и не перемещает указатель вырезания.

Функция: kill-new string &optional replace

Эта функция добавляет текст string в кольцо убийств и устанавливает указатель вырезания на него. Она удаляет самую старую запись, если это необходимо. Она также вызывает значения interprogram-paste-function (в зависимости от пользовательского параметра save-interprogram-paste-before-kill) и interprogram-cut-function (см. ниже).

Если replace имеет значение, отличное от nil, то kill-new заменяет первый элемент кольца убийств на string, а не добавляет string в кольцо убийств.

Функция: kill-append string before-p

Эта функция добавляет текст string к первой записи в кольце убийств и устанавливает указатель вырезания на объединённую запись. Обычно string добавляется в конец записи, но если before-p имеет значение, отличное от nil, оно добавляется в начало. Эта функция вызывает kill-new как подпрограмму, тем самым вызывая значения interprogram-cut-function и, возможно, interprogram-paste-function (см. ниже).

Переменная: interprogram-paste-function

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

Если значение является функцией, current-kill вызывает её, чтобы получить последнее убийство. Если функция возвращает значение, отличное от nil, то это значение используется как последнее убийство. Если она возвращает nil, то используется начало кольца убийств.

Для поддержки систем окон, которые поддерживают несколько выделений, эта функция также может возвращать список строк. В этом случае первая строка используется как последнее убийство, а все остальные строки добавляются в кольцо убийств для удобного доступа yank-pop.

Нормальное использование этой функции — получить буфер обмена системы окон как последнее убийство, даже если выделение принадлежит другому приложению. См. Выделения системного окна. Однако, если содержимое буфера обмена взято из текущей сессии Emacs, эта функция должна вернуть nil.

Переменная: interprogram-cut-function

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

Если значение является функцией, kill-new и kill-append вызывают её с новым первым элементом кольца убийств в качестве аргумента.

Нормальное использование этой функции — поместить только что убитый текст в буфер обмена системы окон. См. Выделения системного окна.

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/Low_002dLevel-Kill-Ring.html

Spec-Zone.ru

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