2010-10-18 9 views
11

Je suis sur un Macintosh et j'utilise "terminal" pour mon shell. Lorsque je copie du texte à partir de n'importe quelle fenêtre (en faisant glisser la souris puis sur le bouton droit de la souris -> copier), je colle le texte (bouton droit de la souris -> coller) dans un terminal avec emacs en cours. Au lieu de cela, c'est comme entrer ou taper du texte. Le problème se produit lorsque le texte est en retrait. Emacs fait son auto-indentation en plus de cela, donc je reçois un effet de texte en escalier en cascade. Je veux juste que ce soit une véritable "pâte" pour que tout ce qui a été copié apparaisse exactement comme il était. Des idées sur la façon de changer quelque chose pour que cela fonctionne?Coller du texte dans emacs sur Macintosh

+0

Je ne sais pas comment vous vous attendez que cela fonctionne. Un terminal de texte n'a pas de "coller". Terminal.app implémente le collage en tapant tous les caractères dans le Presse-papiers. Si vous souhaitez que le collage fonctionne différemment, n'exécutez pas de programmes dans un terminal texte. – Ken

Répondre

18

Essayez ceci:

(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) 

Utilisez C-x C-y pour coller et C-x M-w à copier.

+0

+1 Cela fonctionnera très bien, j'aurais aimé y penser;) – ocodo

+0

Ceci devrait être marqué comme la bonne réponse – bge0

2

Pour une solution rapide et sale qui ne nécessite pas la configuration de commandes personnalisées, vous pouvez exécuter shell-command avec un argument préfixe pour insérer les résultats de l'appel pbpaste dans le tampon en cours.

Ainsi:

C-u M-! pbpaste <RET> 
Questions connexes