Spec-Zone.ru › Elisp

Функции для вставки

В этом разделе описываются команды высокого уровня для вставки, которые предназначены в первую очередь для пользователя, но полезны также в программах 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

Spec-Zone.ru

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