Відповіді:
Щоб скопіювати поточний регіон у буфер обміну OS X, ви можете використовувати
(shell-command-on-region (region-beginning) (region-end) "pbcopy")
Зворотне, копіювання буфера для вставки OS X в кільце Emacs, не рекомендується використовувати. Кільця для вбивства та буфер обміну є дуже різними структурами, і немає хорошої відповіді на те, що саме має робити штовхнення буфера обміну в кільце для вбивства. Тим не менш, ви можете запустити pbpaste
вручну, щоб отримати поточний вміст буфера обміну.
Додайте це до ~/.emacs
:
(defun pbcopy ()
(interactive)
(call-process-region (point) (mark) "pbcopy")
(setq deactivate-mark t))
(defun pbpaste ()
(interactive)
(call-process-region (point) (if mark-active (mark) (point)) "pbpaste" t t))
(defun pbcut ()
(interactive)
(pbcopy)
(delete-region (region-beginning) (region-end)))
(global-set-key (kbd "C-c c") 'pbcopy)
(global-set-key (kbd "C-c v") 'pbpaste)
(global-set-key (kbd "C-c x") 'pbcut)
Якщо ви використовуєте Emacs в iTerm 2, ви також можете перевпорядкувати комбінації клавіш у налаштуваннях:
Потім додайте щось подібне до ~/.emacs
:
(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
Ось рішення про інтеграцію буфера обміну OS X в Emacs 'kill-ring від Daniel Nelson: https://github.com/wesen/emacs/blob/master/pbcopy.el
Коментарі автора:
Дозволяє взаємодія дзвінка для взаємодії з буфером обміну при запуску Emacs з терміналу Mac OSX (не втрачаючи повноцінного функціонального кільця). Все, що я зробив, було модифіковано
xclip.el
для роботи зpbcopy
іpbpaste
. Справжня подяка належить Лео Шидаю Лю, автору xclip.el.
Далі просто працює, отримав це звідси :)
(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))
Версія emacs, яка входить до ОС X, занадто стара, щоб забезпечити цю функціональність.
На щастя, ви можете оновити emacs до версії, інтегрованої до буфера обміну тут: http://emacsformacosx.com
Я вважаю, що ви використовуєте Ctrl+, Yщоб вставити в emacs після оновлення.
pbcopy
і pbpaste
обидва термінальні програми; будь-який інший додаток для терміналів може робити те, що вони роблять, або просто телефонувати їм безпосередньо.
pbcopy
до вирізання та копіювання Emacs. Це можливо?
Я вважаю цю публікацію дуже корисною (визначивши 2 функції та призначивши їм ярлики у вашому файлі ~ / .emacs).
Після додавання цих рядків у файл .emacs ви не матимете доступу до цих ярликів, поки не відкриєте новий сеанс оболонки (вкладка / вікно). Нехай зміни застосовуються.
Ви можете отримати таку взаємодію з буфером обміну прозоро під час роботи Emacs в текстовому терміналі шляхом активації xclip-mode
надається xclip
пакет , який можна встановити з GNU ELPA (тобто через M-x package-list-packages RET
).
Дивіться також /emacs/10900/ для подібного питання та відповідей.
/usr/bin/emacs
виконуваний файл, який Apple постачає з OSX і який довільно обмежений текстовим терміналом?