Odpowiedzi:
Aby skopiować bieżący region do schowka OS X, możesz użyć
(shell-command-on-region (region-beginning) (region-end) "pbcopy")
Odwrotne kopiowanie bufora wklejania OS X do pierścienia zabijania Emacsa nie jest zalecane. Pierścienie zabijania i schowki to bardzo różne struktury i nie ma dobrej odpowiedzi na to, co dokładnie powinno zrobić wepchnięcie schowka do pierścienia zabijania. Mimo to możesz uruchomić pbpaste
ręcznie, aby uzyskać bieżącą zawartość schowka.
Dodaj to do ~/.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)
Jeśli używasz Emacsa w iTerm 2, możesz również mapować kombinacje klawiszy w preferencjach:
Następnie dodaj coś takiego do ~/.emacs
:
(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
Oto rozwiązanie pozwalające zintegrować Schowek OS X z zabójczym pierścieniem Emacsa autorstwa Daniela Nelsona: https://github.com/wesen/emacs/blob/master/pbcopy.el
Komentarze autora:
Włącza funkcję kill-ring do interakcji ze schowkiem podczas uruchamiania Emacsa z terminala Mac OSX (bez utraty pełnej funkcjonalności kill-ring). Wszystko, co zrobiłem, to zmodyfikowałem
xclip.el
do pracy zpbcopy
ipbpaste
. Prawdziwe podziękowania należą się Leo Shidai Liu, autorowi pliku xclip.el.
Poniższe po prostu działa, mam to stąd :)
(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))
Wersja emacsa zawarta w systemie OS X jest zbyt stara, aby zapewnić tę funkcjonalność.
Na szczęście możesz zaktualizować emacsa do wersji zintegrowanej ze schowkiem tutaj: http://emacsformacosx.com
Uważam, że po aktualizacji używasz Ctrl+ Ydo wklejania emacsa.
pbcopy
i pbpaste
to zarówno aplikacje terminalowe; każda inna aplikacja terminalowa może robić to, co robią lub po prostu wywoływać je bezpośrednio.
pbcopy
od wycinania i kopiowania Emacsa. Czy to możliwe?
Uważam ten post za bardzo przydatny (definiowanie 2 funkcji i przypisywanie do nich skrótów w pliku ~ / .emacs).
Po dodaniu tych linii do pliku .emacs nie będziesz mieć dostępu do tych skrótów, dopóki nie otworzysz nowej sesji powłoki (tab / window). Niech zmiany zostaną zastosowane.
Możesz uzyskać taką interakcję ze schowkiem podczas uruchamiania Emacsa w terminalu tekstowym, włączając pakiet xclip-mode
dostarczony przez xclip
GNU ELPA (tj. Via M-x package-list-packages RET
).
Zobacz także /emacs/10900/, aby uzyskać podobne pytanie i odpowiedzi.
/usr/bin/emacs
plik wykonywalny, który Apple łączy z OSX i który jest arbitralnie ograniczony do terminala tekstowego?