Comment coller à Emacs à partir de presse-papiers sur OSX?

cela peut être extraordinairement simple, mais je joue avec Emacs (22.1.1) et je ne peux pas le faire coller dans le presse-papiers en utilisant Contrôle-O.

33
demandé sur nbro 2012-04-03 03:42:55

7 réponses

si vous utilisez Emacs intégré, alors vous utilisez Emacs dans le terminal. Le "presse-papiers" est une fonction de votre système de fenêtrage. Emacs en mode terminal (-nw) n'a pas accès à des API spécifiques au système de fenêtrage. C'est le cas de la plupart des outils en ligne de commande conçus pour fonctionner dans le terminal.

vous devez mettre à jour votre Emacs comme d'autres l'ont suggéré, et l'exécuter sous forme graphique mode. En utilisant Emacs 24 sur Mac OS X, le comportement que vous voulez est le comportement par défaut.

si vous voulez faire cela, dans un terminal, puis hack fera le presse-papiers de travail.

(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) 
23
répondu event_jr 2018-03-14 16:59:28

Essayez d'utiliser le M-x clipboard-yank la commande. Si vous voulez copier le texte dans le presse-papiers vous devez vous M-x clipboard-kill-region.

cela fonctionne sur Linux et Windows, je suppose que sur Mac c'est la même chose.

40
répondu ayckoster 2012-04-03 02:40:47

j'utilise habituellement Shift+insert pour coller dans un tampon emacs, Je ne sais pas si votre clavier a ces touches.

17
répondu quicoju 2012-04-03 00:31:29
http://blog.binchen.org/?p=589

Voici le code:

(require 'simpleclip)
(defun copy-to-clipboard ()
  (interactive)
  (let ((thing (if (region-active-p)
                   (buffer-substring-no-properties (region-beginning) (region-end))
                 (thing-at-point 'symbol))))
    (simpleclip-set-contents thing)
    (message "thing => clipboard!")))

(defun paste-from-clipboard()
  "Paste string clipboard"
  (interactive)
  (insert (simpleclip-get-contents)))

le code utilise simpleclip (https://github.com/rolandwalker/simpleclip)

Simpleclip nécessite l'installation d'un outil en ligne de commande sur Mac / Linux / Cygwin which . Ainsi, même emacs sans support graphique peut aussi accéder au presse-papiers.

cette solution fonctionne sur N'importe quelle version D'Emacs, N'importe quel OS. Il fonctionne également lorsque votre ssh si le serveur active X avant, la commande complète est ssh -X -C -c blowfish-cbc,arcfour name@host.com)

1
répondu chen bin 2016-09-27 06:12:31

Windows? J'ai M-ins lié h-insert-x-selection, que j'ai défini comme suit:

(defun h-insert-x-selection () (interactive)
  (insert (x-selection 'CLIPBOARD))) 
(global-set-key [(meta insert)] 'h-insert-x-selection)

XEmacs c'est différent, où j'ai

(global-set-key  [(shift insert)] 'x-insert-selection)
0
répondu Miserable Variable 2012-04-03 07:28:13

C'est étrange.

j'utilise command-V, et ça marche à chaque fois.

lorsque vous vous concentrez sur la fenêtre du terminal, Tout ce que vous copiez par la commande-V devient des touches séparées envoyées dans le terminal.

J'utilise Mac OS X 10.5 (Leopard) et emacs 22.1.1.

0
répondu twelvefaces 2013-03-08 09:08:22

OS suse 12.2 - emacs version par défaut 24.2-15.8.2 (x86_64), tout simplement ignorés coller à partir du presse-papiers en appuyant sur ctrl-y Enfin Problème résolu par down grade à la version 23.3-15.5.1 (x86_64)

0
répondu kind soul 2014-04-21 10:18:18