Кольцо Удаления
Функции удаления удаляют текст, как и функции удаления, но сохраняют его, чтобы пользователь мог повторно вставить его, вытащив. В большинстве этих функций есть «kill-» в их имени. В отличие от этого, функции, имена которых начинаются с «delete-», обычно не сохраняют текст для вытаскивания (хотя их всё ещё можно отменить); это функции удаления.
Большинство команд удаления предназначены в первую очередь для интерактивного использования и здесь не описываются. Мы описываем функции, предназначенные для использования при написании таких команд. Вы можете использовать эти функции для написания команд удаления текста. Когда вам нужно удалить текст для внутренних целей внутри функции Lisp, вы обычно должны использовать функции удаления, чтобы не нарушить содержимое кольца удаления. См. Удаление.
Удаленный текст сохраняется для последующего вытаскивания в кольце удаления. Это список, который содержит несколько последних удалений, а не только последнее удаление текста. Мы называем это «кольцом», потому что вытаскивание обрабатывает его как имеющее элементы в циклическом порядке. Список хранится в переменной kill-ring, и к нему можно обратиться с помощью обычных функций для списков; также есть специализированные функции, описанные в этом разделе, которые обрабатывают его как кольцо.
Некоторые люди считают это использование слова «удалить» неудачным, так как оно относится к операциям, которые специально не уничтожают удаляемые объекты. Это резко контрастирует с обычной жизнью, в которой смерть постоянна, а убитые объекты не возвращаются к жизни. Поэтому были предложены другие метафоры. Например, термин «кольцо вырезания» понятен людям, которые в докомпьютерную эпоху использовали ножницы и клей, чтобы разрезать и переставлять рукописи. Однако изменить терминологию сейчас было бы сложно.
| • Концепции кольца удаления | Как выглядит текст в кольце удаления. | |
| • Функции удаления | Функции, которые удаляют текст. | |
| • Вытаскивание | Как выполняется вытаскивание. | |
| • Команды вытаскивания | Команды, которые обращаются к кольцу удаления. | |
| • Кольцо удаления низкого уровня | Функции и переменные для доступа к кольцу удаления. | |
| • Внутренности кольца удаления | Переменные, содержащие данные кольца удаления. |
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/The-Kill-Ring.html