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.
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)
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.
j'utilise habituellement Shift+insert pour coller dans un tampon emacs, Je ne sais pas si votre clavier a ces touches.
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
)
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)
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.
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)