Функции для вставки
В этом разделе описываются команды высокого уровня для вставки, которые предназначены в первую очередь для пользователя, но полезны также в программах Lisp. И yank и yank-pop учитывают переменную yank-excluded-properties и свойство текста yank-handler (см. Вставка).
- Команда: yank &optional arg
-
Эта команда вставляет перед точкой текст из начала буфера обмена. Она устанавливает метку в начале этого текста, используя
push-mark(см. Метка), и помещает точку в конец.Если arg является не-
nilсписком (что происходит интерактивно, когда пользователь набирает C-u без цифр), тоyankвставляет текст, как описано выше, но помещает точку перед вставленным текстом и метку после него.Если arg является числом, то
yankвставляет arg-ый по счету недавно удалённый текст — arg-ый элемент списка буфера обмена, считая циклически от начала, которое для этой цели считается первым элементом.yankне изменяет содержимое буфера обмена, если только не используется текст, предоставленный другой программой, в этом случае он добавляет этот текст в буфер обмена. Однако если arg является целым числом, отличным от единицы, он вращает буфер обмена, чтобы поместить вставленную строку в начало.yankвозвращаетnil.
- Команда: yank-pop &optional arg
-
При вызове сразу после
yankили другойyank-pop, эта команда заменяет только что вставленный элемент из буфера обмена другим элементом из буфера обмена. Когда эта команда вызывается таким образом, область содержит текст, который только что был вставлен другой командой вставки.yank-popудаляет этот текст и вставляет вместо него другой фрагмент удалённого текста. Он не добавляет удалённый текст в буфер обмена, так как он уже где-то там находится. Однако он вращает буфер обмена, чтобы поместить вставленную строку в начало.Если arg является
nil, то текст замены — предыдущий элемент буфера обмена. Если arg является числовым, то замена — arg-ый предыдущий удалённый элемент. Если arg является отрицательным, то замена — более новый удалённый элемент.Последовательность удалённых элементов в буфере обмена циклическая, поэтому, если
yank-popвызывается многократно и достигает самого старого удалённого элемента, следующим за ним будет самый новый, а предшествующий самому новому — самый старый.Эту команду также можно вызвать после команды, которая не является командой вставки. В этом случае она запросит в минибуфере элемент буфера обмена с автодополнением, используя элементы буфера обмена в качестве истории минибуфера (см. История минибуфера). Это позволяет пользователю интерактивно выбрать один из предыдущих удалённых элементов, записанных в буфере обмена.
Значение возврата всегда
nil.
- Переменная: yank-undo-function
-
Если эта переменная не-
nil, функцияyank-popиспользует её значение вместоdelete-regionдля удаления текста, вставленного предыдущей командойyankилиyank-pop. Значение должно быть функцией от двух аргументов — начала и конца текущей области.Функция
insert-for-yankавтоматически устанавливает эту переменную в соответствии с элементом undo свойства текстаyank-handler, если такой есть.
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/Yank-Commands.html