2010-10-18 15 views
11

Sono su un Macintosh e sto usando "terminale" per la mia shell. Quando copio il testo da qualsiasi finestra (con il mouse trascina il tasto destro del mouse sul menu -> copia) e poi incollo il testo (tasto destro del mouse -> incolla) in un terminale con emacs in esecuzione, non agisce come un incolla. Invece, è proprio come inserire o digitare il testo. Il problema si verifica quando il testo è rientrato. Emacs fa il suo auto-indentation in cima a quello in modo da ottenere una sorta di testo a cascata. Voglio solo che sia un vero "incolla" in modo che tutto ciò che è stato copiato si presenti esattamente com'era. Qualche idea su come cambiare qualcosa per farlo funzionare?Incollare il testo in emacs su Macintosh

+0

Non sono sicuro di come ci si aspetta a questo lavoro. Un terminale di testo non ha una "incolla". Terminal.app implementa l'inserimento digitando tutti i caratteri negli Appunti. Se si desidera che pasta funzioni in modo diverso, non eseguire programmi in un terminale di testo. – Ken

risposta

18

Prova questo:

(defun pt-pbpaste() 
    "Paste data from pasteboard." 
    (interactive) 
    (shell-command-on-region 
    (point) 
    (if mark-active (mark) (point)) 
    "pbpaste" nil t)) 

(defun pt-pbcopy() 
    "Copy region to pasteboard." 
    (interactive) 
    (print (mark)) 
    (when mark-active 
    (shell-command-on-region 
    (point) (mark) "pbcopy") 
    (kill-buffer "*Shell Command Output*"))) 

(global-set-key [?\C-x ?\C-y] 'pt-pbpaste) 
(global-set-key [?\C-x ?\M-w] 'pt-pbcopy) 

Usa C-x C-y per incollare e C-x M-w copiare.

+0

+1 Funzionerà alla grande, vorrei aver pensato a questo;) – ocodo

+0

Questo dovrebbe essere contrassegnato come la risposta corretta – bge0

2

Per una soluzione rapida e sporca che non richiede la configurazione di comandi personalizzati, è possibile eseguire shell-command con un argomento prefisso per inserire i risultati della chiamata pbpaste nel buffer corrente.

Così:

C-u M-! pbpaste <RET> 
Problemi correlati