Кольцо убийств низкого уровня
Эти функции и переменные обеспечивают доступ к кольцу убийств на более низком уровне, но остаются удобными для использования в программах 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