Как я могу вставить выбранный регион за пределы Emacs? - PullRequest
13 голосов
/ 13 марта 2011

Я использую Mac OS и emacs -nw (режим терминала).Я не знаю, как я могу вставить вещи (реализованные Mw в emacs -nw) вне emacs.

Я знаю, что emacs -ns может это сделать.

Поиск вИнтернет и команда Ch b, я узнаю этот метод, но он не сработал.

(setq x-select-enable-clipboard t)

(setq interprogram-cut-function 'x-select-text)

Я не знаю много об аргументе interprogram-cut-function.Откуда берется x-select-text и что он означает?

Ответы [ 3 ]

27 голосов
/ 02 февраля 2013

Если вы используете Ubuntu 12.04 или Fedora 21, есть несколько вариантов, чтобы сделать эту работу.

Сначала вам нужно установить xclip

sudo apt-get install xclip

Первый вариант: для Emacs 24

Если вы используете emacs24, вы можете установить его из списка пакетов

M-x package-list-packages

Выберите

xclip //mine was version 1.3

В вашем .emacs добавьте:

(xclip-mode 1)

Второй вариант. Для Emacs до версии 24

Установить xclip.el: Интеграция Emacs с буфером обмена X11 в Linux

Третий вариант. Используя код Николаса Райли, показанный в ответе

Чтобы использовать код в ответе вам нужно pbcopy / pbpaste в Ubuntu (буфер обмена командной строки)

10 голосов
/ 13 марта 2011

x-select-text используется только если вы запускаете Emacs в графическом интерфейсе.(Emacs отображает интерфейсы Mac / Windows для работы с буфером обмена / буфером обмена с моделью X11, отсюда и название).Вы всегда можете использовать C-h f, чтобы узнать больше о такой функции и просмотреть ее определение, если она написана на elisp.

На Mac нет понятия выбора CLIPBOARD против PRIMARY, поэтому нет смысла устанавливать x-select-enable-clipboard.

Весь смысл запуска emacs -nw в том, что он не взаимодействует с оконной системой.Зачем использовать Emacs в терминале, когда есть множество графических Emacsen, которые прекрасно работают на Mac?

Тем не менее, если вы действительно хотите подключить терминал Emacs к монтажной плате Mac, вы можете сделать что-то вроде этого:

(setq interprogram-cut-function
      (lambda (text &optional push)
    (let* ((process-connection-type nil)
           (pbproxy (start-process "pbcopy" "pbcopy" "/usr/bin/pbcopy")))
      (process-send-string pbproxy text)
      (process-send-eof pbproxy))))
1 голос
/ 28 февраля 2014

Если вы хотите, чтобы способ поместить содержимое области emacs в буфер обмена только иногда , в отличие от того, когда вы выполняете emacs yank (что приводит к тому, что содержимое буфера обмена будет все время перезаписываться), вы должны проверить этот ответ на связанный вопрос:

https://stackoverflow.com/a/19625063/3363328

Я обнаружил, что это решило мою проблему намного лучше, чем установка режима xclip.

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