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
11
A
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.
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>
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