Comment accéder au presse-papiers du système d'exploitation à l'aide d'Emacs + Evil

8

Comment puis-je tirer vers / depuis le presse-papiers de Windows lorsque j'utilise:

  • Windows 7 (x64)
  • GNU Emacs 24.4.1 (x64)
  • Evil 1.0.9
  • et avoir (setq x-select-enable-clipboard nil)dans mon .emacs? (Je mets là cette ligne parce que je ne voulais pas les changements vim ( x, d, etc.) à CLOBBER Planchette os.

J'ai essayé "+p, "*p, "+y, "*y, CTRL+Ymais il ne fonctionne pas. Lorsque je cours, :registersil ne s'affiche +ni ne *s'enregistre.

Pour clarifier: je veux qu'Emacs se comporte comme Vim lors de la copie / du tirage vers / depuis différents registres, sans encombrer le presse-papiers du système d'exploitation à chaque commande de changement de texte. En particulier:

  • yy- ne doit PAS copier le texte dans le presse-papiers du système d'exploitation (uniquement pour vous 0inscrire)
  • "+yy - devrait tirer du texte dans le presse-papiers du système d'exploitation
  • dd - ne doit PAS encombrer le presse-papiers
  • cw - presse-papiers PAS clobber os
  • etc.
Kossak
la source

Réponses:

5

J'ai désactivé l'intégration du presse-papiers avec:

(setq x-select-enable-clipboard nil)

Ensuite, vous devriez toujours pouvoir copier et coller en utilisant le registre + du mal. Si vous souhaitez toujours intégrer le presse-papiers sans mal, vous pouvez utiliser cette fonction pour coller:

(defun paste-from-clipboard ()
  (interactive)
  (setq x-select-enable-clipboard t)
  (yank)
  (setq x-select-enable-clipboard nil))

et celui-ci pour le copyping:

(defun copy-to-clipboard()
  (interactive)
  (setq x-select-enable-clipboard t)
  (kill-ring-save (region-beginning) (region-end))
  (setq x-select-enable-clipboard nil))

Liez ensuite copy-to-clipboardà M-wet paste-from-clipboardà C-y, ou à toute autre liaison de touches de votre choix.

Edit: je lance Archlinux. Je ne peux pas dire si cela fonctionnera sous Windows.

Jesse
la source
Sous Linux Mint l' (setq x-select-enable-clipboard nil)est assez trop parce qu'il ya +et *registres à travailler avec le presse - papiers d'os, pas sous Windows malheureusement.
Kossak
J'ai essayé votre fonction personnalisée (dans Windows) avec le plugin evil et (setq x-select-enable-clipboard nil): Le presse-papiers yanking FROM os fonctionne comme il se doit, mais je ne peux pas tirer la sélection TO clipboard os (avec des liaisons (define-key evil-normal-state-map (kbd "C-y") 'paste-from-clipboard)et(define-key evil-visual-state-map (kbd "C-y") 'paste-from-clipboard)
Kossak
Je ne sais pas si je comprends ce que vous voulez dire, paste-from-clipboardne collera que depuis le presse-papiers. Vous aurez besoin d'une autre fonction pour copier dans le presse-papiers. J'ai édité la question pour ajouter une copy-to-clipboardfonction. Veuillez essayer si cela fonctionne
Jesse
J'ai pensé à tort que la yankfonction copie vers et depuis le presse-papiers du système d'exploitation (en fonction de la présence d'une sélection visuelle). Votre autre fonction fait ce que je veux, merci.
Kossak
2

https://github.com/rolandwalker/simpleclip

il couvre TOUS les cas d'utilisation sur Mac / Linux / Windows / Cygwin.

Plus précisément, pour le copier-coller, il n'y a que deux commandes:

simpleclip-get-contents
simpleclip-set-contents

N'hésitez pas à attribuer des touches courtes.

chen bin
la source
C'est merveilleux, cela simplifie considérablement l'interaction avec le presse-papiers.
loevborg