Configura emacs per tagliare e copiare il testo negli Appunti di Mac OS X.

15

Posso configurare emacs , in modo da poter copiare / tagliare il testo da emacs (versione predefinita di Terminal) e incollarlo da qualche altra parte (nel programma X Window)?

    
posta syntagma 12.03.2013 - 18:52
fonte

7 risposte

3

Per copiare la regione corrente negli appunti di OS X, puoi usare

(shell-command-on-region (region-beginning) (region-end) "pbcopy")

L'inverso, copiando il buffer di incisione OS X sull'anello di uccisione di Emacs, non è raccomandato. Uccidi gli anelli e gli Appunti sono strutture molto diverse e non c'è una buona risposta a ciò che, esattamente, si dovrebbe fare spingendo gli appunti in un anello di uccisione. Tuttavia, puoi eseguire pbpaste manualmente per ottenere il contenuto degli appunti corrente.

    
risposta data 16.03.2013 - 13:40
fonte
7

Aggiungi questo a ~/.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)

Se usi Emacs in iTerm 2, puoi anche rimappare le combinazioni di tasti nelle preferenze:

Quindiaggiungiqualcosadisimilea~/.emacs:

(global-set-key(kbd"<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
    
risposta data 10.04.2014 - 05:02
fonte
3

Ecco una soluzione per integrare OS X negli appunti per l'uccisione di Emacs di Daniel Nelson: link

Commenti dell'autore:

Enables the kill-ring to interact with the clipboard when running Emacs from a Mac OSX terminal (without losing full kill-ring functionality). All I did was modify xclip.el to work with pbcopy and pbpaste. The real thanks go to Leo Shidai Liu, the author of xclip.el.

    
risposta data 26.08.2013 - 11:11
fonte
1

Quanto segue funziona, capito da qui:)

(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))
    
risposta data 27.04.2015 - 18:06
fonte
0

La versione di emacs inclusa in OS X è troppo vecchia per fornire questa funzionalità.

Fortunatamente puoi aggiornare emacs a una versione integrata con i tuoi appunti qui: link

Credo che tu usi Ctrl + Y per incollare emacs, dopo l'aggiornamento.

    
risposta data 15.03.2013 - 22:33
fonte
0

Ho trovato questo post davvero utile (definendo 2 funzioni e assegnando scorciatoie a loro nel tuo file ~ / .emacs).

Dopo aver aggiunto quelle linee al tuo file .emacs, non avrai accesso a quelle scorciatoie finché non aprirai una nuova sessione di shell (scheda / finestra). Applica le modifiche.

    
risposta data 24.01.2015 - 04:13
fonte
0

Puoi ottenere tale interazione con gli appunti in modo trasparente mentre esegui Emacs nel terminale di testo abilitando xclip-mode fornito dal pacchetto xclip che puoi installare da GNU ELPA (cioè tramite M-x package-list-packages RET ).

Vedi anche link per domande e risposte simili.

    
risposta data 18.01.2018 - 15:45
fonte

Leggi altre domande sui tag