Подтвердить что ты не робот

Как вставить в Emacs из буфера обмена на OSX?

Это может быть необычайно просто, но я играю с Emacs (22.1.1), и я не могу заставить его вставлять текст в буфер обмена, используя Control - Y.

4b9b3361

Ответ 1

Если вы используете встроенный Emacs, вы используете Emacs в терминале. "Буфер обмена" - это функция вашей оконной системы. Emacs в режиме терминала (-nw) не имеет доступа к каким-либо API-интерфейсам, зависящим от окна. Это справедливо для большинства инструментов командной строки, предназначенных для работы в терминале.

Вам необходимо обновить Emacs, как предложили другие, и запустить графический Режим. Использование Emacs 24 в Mac OS X по умолчанию - по умолчанию.

Если вы настаиваете на использовании терминала, то this hack сделает работу буфера обмена.

(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))

(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))

(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx) 

Ответ 2

Попробуйте использовать команду M-x clipboard-yank. Если вы хотите скопировать текст в буфер обмена, вы должны M-x clipboard-kill-region.

Это работает на Linux и Windows, я думаю, на Mac это то же самое.

Ответ 3

Я обычно использую Shift + insert для вставки в буфер emacs, я не знаю, есть ли у вашей клавиатуры эти ключи.

Ответ 4

См. http://blog.binchen.org/?p=589

Вот код:

(require 'simpleclip)
(defun copy-to-clipboard ()
  (interactive)
  (let ((thing (if (region-active-p)
                   (buffer-substring-no-properties (region-beginning) (region-end))
                 (thing-at-point 'symbol))))
    (simpleclip-set-contents thing)
    (message "thing => clipboard!")))

(defun paste-from-clipboard()
  "Paste string clipboard"
  (interactive)
  (insert (simpleclip-get-contents)))

В коде используется simpleclip (https://github.com/rolandwalker/simpleclip)

Simpleclip требует установки некоторого инструмента командной строки на Mac/Linux/Cygwin, который. Таким образом, даже emacs без графической поддержки также могут обращаться к буферу.

Это решение работает с любой версией Emacs, любой ОС. Он также работает, когда ваш удаленный ssh, если сервер включает X forward, полная команда ssh -X -C -c blowfish-cbc,arcfour [email protected])

Ответ 5

Вкл. Windows? Я M-ins связан с h-insert-x-selection, который я определил следующим образом:

(defun h-insert-x-selection () (interactive)
  (insert (x-selection 'CLIPBOARD))) 
(global-set-key [(meta insert)] 'h-insert-x-selection)

В XEmacs это другое, где я

(global-set-key  [(shift insert)] 'x-insert-selection)

Ответ 6

Это странно.

Я использую command-V, и он работает каждый раз.

Когда вы фокусируетесь на окне терминала, все, что вы вставляете через команду -V, становится отдельными нажатиями клавиш, отправленными в терминал.

Я использую Mac OS X 10.5 (Leopard) и emacs 22.1.1.

Ответ 7

OS suse 12.2 - версия emacs по умолчанию 24.2-15.8.2 (x86_64) просто игнорируется вставкой из буфера обмена ctrl-y Наконец, проблема решена с понижением до версии 23.3-15.5.1 (x86_64)