Spec-Zone.ru › Elisp

Выделение

Выделение означает вставку текста из буфера обмена, но не вставляет текст без обработки. Команда yank и связанные с ней команды используют insert-for-yank, чтобы выполнить специальную обработку текста перед его вставкой.

Функция: insert-for-yank строка

Эта функция работает как insert, за исключением того, что она обрабатывает текст в строке в соответствии с текстовым свойством yank-handler, а также переменными yank-handled-properties и yank-excluded-properties (см. ниже), прежде чем вставить результат в текущий буфер.

Функция: insert-buffer-substring-as-yank buf &optional start end

Эта функция похожа на insert-buffer-substring, за исключением того, что она обрабатывает текст в соответствии с yank-handled-properties и yank-excluded-properties. (Она не обрабатывает свойство yank-handler, которое обычно не встречается в тексте буфера.)

Если вы зададите текстовое свойство yank-handler для всей или части строки, это изменит способ, которым insert-for-yank вставляет строку. Если разные части строки имеют разные значения yank-handler (сравнение выполняется с помощью eq ), каждая подстрока обрабатывается отдельно. Значение свойства должно быть списком от одного до четырех элементов с последующим форматом (элементы после первого могут быть опущены):

(function param noexclude undo)

Вот что делают элементы:

функция

Если функция не nil, она вызывается вместо insert для вставки строки с одним аргументом — строкой для вставки.

параметр

Если параметр присутствует и не nil, он заменяет строку (или подстроку строки, которая обрабатывается) как объект, передаваемый в функцию (или insert). Например, если функция равна yank-rectangle, параметр должен быть списком строк для вставки в виде прямоугольника.

исключение

Если исключение присутствует и не nil, это отключает стандартное действие yank-handled-properties и yank-excluded-properties на вставленной строке.

отмена

Если отмена присутствует и не nil, это функция, которая будет вызвана yank-pop для отмены вставки текущего объекта. Она вызывается с двумя аргументами: началом и концом текущей области. функция может установить yank-undo-function для переопределения значения отмена.

Пользовательская опция: yank-handled-properties

Эта переменная определяет специальные условия обработки текстовых свойств для выделенного текста. Она вступает в силу после вставки текста (обычным способом или через свойство yank-handler ) и до того, как начнет действовать yank-excluded-properties.

Значение должно быть списком элементов (prop . fun). Каждый элемент списка обрабатывается в порядке. Вставленный текст сканируется на участки текста с текстовыми свойствами eq до свойство; для каждого такого участка функция вызывается с тремя аргументами: значением свойства и начальными и конечными позициями текста.

Пользовательская опция: yank-excluded-properties

Значение этой переменной — список свойств, которые нужно удалить из вставленного текста. Её значение по умолчанию содержит свойства, которые могут привести к нежелательным результатам, например, заставить текст реагировать на щелчок мыши или указать сочетания клавиш. Она вступает в силу после yank-handled-properties.

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/Yanking.html

Spec-Zone.ru

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