web-dev-qa-db-fra.com

Comment coller sur Emacs depuis le presse-papiers sur OSX?

Cela peut être extraordinairement simple, mais je joue avec Emacs (22.1.1) et je n'arrive pas à le coller de texte dans le presse-papiers en utilisant Control-Y.

34
n_x_l

Si vous utilisez Emacs intégré, vous exécutez Emacs dans le terminal. Le "presse-papiers" est une fonction de votre système de fenêtrage. Emacs en mode terminal (-nw) n'accède à aucune API spécifique au système de fenêtrage. Cela est vrai de la plupart des outils de 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 en mode graphique. En utilisant Emacs 24 sur Mac OS X, le comportement souhaité est celui par défaut.

Si vous voulez le faire dans un terminal, alors this hack fera fonctionner le presse-papiers.

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

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

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

40
ayckoster

J'utilise généralement Shift + insert pour coller dans un tampon emacs, je ne sais pas si votre clavier possède ces touches.

18
quicoju

Voir 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 vous oblige à installer un outil de ligne de commande sur Mac/Linux/Cygwin qui. Ainsi, même emacs sans support graphique peut également accéder au presse-papiers.

Cette solution fonctionne sur n'importe quelle version d'Emacs, n'importe quel système d'exploitation. Il fonctionne également lorsque votre ssh distant si le serveur active le transfert X, la commande complète est ssh -X -C -c blowfish-cbc,arcfour [email protected])

1
chen bin

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

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

(global-set-key  [(shift insert)] 'x-insert-selection)
0

C'est étrange.

J'utilise la commande-V, et cela fonctionne à chaque fois.

Lorsque vous vous concentrez sur la fenêtre du terminal, tout ce que vous collez via la commande-V devient des touches distinctes envoyées dans le terminal.

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

0
twelvefaces

OS suse 12.2 - emacs par défaut version 24.2-15.8.2 (x86_64) vient d'ignorer le collage depuis le presse-papiers par ctrl-y

0
kind soul