Это может быть необычайно просто, но я играю с Emacs (22.1.1), и я не могу заставить его вставлять текст в буфер обмена, используя Control - Y.
Как вставить в Emacs из буфера обмена на OSX?
Ответ 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)