Выделения оконной системы
В оконных системах, таких как X, данные можно передавать между различными приложениями с помощью выделений. Каждая оконная система определяет произвольное количество типов выделений, каждый из которых хранит собственные данные; однако обычно используются только три: буфер обмена, основное выделение и вторичное выделение. О командах Emacs, использующих эти выделения, см. раздел Вырезание и вставка в Руководстве GNU Emacs. В этом разделе описаны низкоуровневые функции для чтения и установки выделений оконной системы; сведения о типах выделений и форматах данных в конкретных оконных системах см. в разделе Доступ к выделениям.
- Команда: gui-set-selection type data
-
Эта функция устанавливает выделение оконной системы. Она принимает два аргумента: тип выделения type и значение, которое ему присваивается, data.
type должен быть символом; обычно это один из
PRIMARY,SECONDARYилиCLIPBOARD. Как правило, это символы с именами в верхнем регистре, согласно соглашениям X Window System. Если type равенnil, это означаетPRIMARY.Если data равен
nil, это означает, что выделение нужно очистить. В противном случае data может быть строкой, символом, целым числом, оверлеем или парой cons из двух маркеров, указывающих на один и тот же буфер. Оверлей или пара маркеров обозначают текст в оверлее или между маркерами. Аргумент data также может быть вектором допустимых значений выделения, не являющихся векторами.Если data — строка, её текстовые свойства могут задавать значения для отдельных типов данных. Например, если у data есть свойство с именем
text/uri-list, то при вызовеgui-get-selectionс типом данныхtext/uri-listбудет использовано значение этого свойства, а не сама data.Эта функция возвращает data.
- Функция: gui-get-selection &optional type data-type
-
Эта функция обращается к выделениям, созданным Emacs или другими программами. Она принимает два необязательных аргумента: type и data-type. Значение по умолчанию для type, типа выделения, —
PRIMARY.Аргумент data-type задаёт способ преобразования данных, используемый для преобразования необработанных данных, полученных от другой программы, в данные Lisp. По умолчанию используется
STRING. Перечень допустимых типов данных в X см. в разделе Выделения X, а сведения о других системах — в разделе Другие выделения. В X Window System рекомендуется всегда указывать конкретный data-type, особенно если ожидается, что выделение будет содержать текст, отличный от ASCII (в таком случае в программах Lisp в качестве значения data-type предпочтительно использоватьUTF8_STRING). Это связано с тем, что значение data-type по умолчанию,STRING, поддерживает только текст в кодировке Latin-1, что во многих случаях сегодня недостаточно.
- Пользовательская опция: selection-coding-system
-
Эта переменная задаёт кодировку (см. раздел Кодировки), используемую для кодирования данных выделения; она действует в MS-Windows и X. Она также используется в версии для MS-DOS при работе в MS-Windows, если доступен текст буфера обмена Windows.
В X значение этой переменной задаёт кодировку, которую
gui-get-selectionбудет использовать для декодирования данных выделения для подмножества текстовых типов данных, а также приводит к тому, что ответы на запросы выделения для полиморфного типа данныхTEXTкодируются с помощью кодировкиcompound-text-with-extensions, а не Unicode.В MS-Windows эта переменная обычно игнорируется, поскольку буфер обмена MS-Windows содержит сведения о декодировании в составе данных буфера обмена и автоматически использует UTF-16 или кодировку, специфичную для локали, в зависимости от ситуации. Рекомендуется задавать значение этой переменной только в более старых версиях Windows 9X, поскольку в остальных случаях она используется лишь в крайне редких ситуациях, когда сведения, предоставленные данными буфера обмена, по какой-либо причине непригодны.
Значение этой переменной по умолчанию — системная кодовая страница в MS-Windows 98 или Me,
utf-16le-dosв Windows NT/W2K/XP/Vista/7/8/10/11,iso-latin-1-dosв MS-DOS иnilв остальных системах.
Для обратной совместимости существуют устаревшие псевдонимы x-get-selection и x-set-selection, которые до Emacs 25.1 были именами gui-get-selection и gui-set-selection.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Window-System-Selections.html