Réponses:
Pour copier la région actuelle dans le presse-papiers OS X, vous pouvez utiliser
(shell-command-on-region (region-beginning) (region-end) "pbcopy")
L'inverse, copier le tampon de collage OS X dans le kill ring d'Emacs, n'est pas recommandé. Les anneaux de destruction et les planchettes à pince sont des structures très différentes et il n'y a pas de bonne réponse à ce que devrait exactement faire pousser une planchette à pince dans un anneau de destruction. Néanmoins, vous pouvez exécuter pbpaste
manuellement pour obtenir le contenu actuel du presse-papiers.
Ajoutez ceci à ~/.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)
Si vous utilisez Emacs dans iTerm 2, vous pouvez également remapper les combinaisons de touches dans les préférences:
Ajoutez ensuite quelque chose comme ceci à ~/.emacs
:
(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
Voici une solution pour intégrer le presse-papiers OS X au kill-ring d'Emacs par Daniel Nelson: https://github.com/wesen/emacs/blob/master/pbcopy.el
Commentaires de l'auteur:
Permet au kill-ring d'interagir avec le presse-papiers lors de l'exécution d'Emacs à partir d'un terminal Mac OSX (sans perdre la fonctionnalité complète du kill-ring). Je n'ai fait que modifier
xclip.el
pour travailler avecpbcopy
etpbpaste
. Nous remercions sincèrement Leo Shidai Liu, l'auteur de xclip.el.
Ce qui suit fonctionne, je l'ai ici :)
(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))
La version d'emacs incluse avec OS X est trop ancienne pour fournir cette fonctionnalité.
Heureusement, vous pouvez mettre à jour emacs vers une version intégrée à votre presse-papiers ici: http://emacsformacosx.com
Je crois que vous utilisez Ctrl+ Ypour coller dans emacs, après la mise à jour.
pbcopy
et ce pbpaste
sont deux applications terminales; n'importe quelle autre application de terminal pourrait faire ce qu'elle fait ou simplement l'appeler directement.
pbcopy
à Emacs cut & copy. C'est possible?
J'ai trouvé ce post vraiment utile (définir 2 fonctions et leur assigner des raccourcis dans votre fichier ~ / .emacs).
Après avoir ajouté ces lignes à votre fichier .emacs, vous n'aurez pas accès à ces raccourcis tant que vous n'aurez pas ouvert une nouvelle session shell (onglet / fenêtre). Laissez les changements être appliqués.
Vous pouvez obtenir une telle interaction avec le presse-papiers de manière transparente lors de l'exécution d'Emacs dans le terminal texte en activant le xclip-mode
fourni par le xclip
package que vous pouvez installer à partir de GNU ELPA (c'est-à-dire via M-x package-list-packages RET
).
Voir également /emacs/10900/ pour une question et des réponses similaires.
/usr/bin/emacs
exécutable fourni par Apple avec OSX et qui est arbitrairement limité au terminal texte?