Как скопировать некоторый контент в системный буфер обмена, а не в список уничтожений с помощью elisp / emacs? - PullRequest
2 голосов
/ 10 сентября 2010

Я узнал, что копировать что-то для уничтожения буфера, я могу использовать буфер kill-new

(kill-new (file-truename buffer-file-name))

Как насчет копирования контента в буфер обмена? Emacs / elisp предоставляет функцию?

ДОБАВЛЕНО

Я получил 2 ответа, но ответ, похоже, относится к системе X Windows. Поскольку я использую Aquamacs, это не может быть универсальным решением, которое может быть применено к моей проблеме.

Ответы [ 2 ]

2 голосов
/ 11 сентября 2010

Вы можете настроить Emacs для автоматического копирования в системный буфер обмена, а также в список уничтожений.Функция kill-new вызывает interprogram-cut-function, которая обычно копирует в системный буфер обмена, если он есть.В X Window переменная x-select-enable-clipboard определяет, используется ли основной выбор или буфер обмена.

2 голосов
/ 10 сентября 2010
(x-set-selection nil (file-truename buffer-file-name))

Документация для x-set-selection говорит:

Эта функция устанавливает «выбор» в Х-сервер. Требуется два аргумента: тип выбора типа и значение назначить ему данные. Если данные ноль, это означает очистить выбор. В противном случае данные могут быть строкой, символ, целое число (или минусы двух целые числа или список из двух целых чисел), оверлей или минусы двух маркеров указывая на тот же буфер. оверлей или пара стендов с маркерами для текста в наложении или между маркеры.

Данные аргумента также могут быть вектором. допустимых значений выбора вектора.

Каждый возможный тип имеет свой значение выбора, которое изменяется независимо. Обычные значения тип ПЕРВИЧНЫЙ, ВТОРИЧНЫЙ и CLIPBOARD; это символы с имена в верхнем регистре, в соответствии с X Соглашения об оконной системе. Если тип ноль, что означает ПЕРВИЧНЫЙ.

...