Spec-Zone.ru › Elisp

Выделения оконной системы

В оконных системах, таких как 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

Spec-Zone.ru

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