Souvent, je me retrouve à copier un extrait de code dans le presse-papiers de mon système d'exploitation à partir d'Internet. Ensuite, je prends les étapes simples suivantes:
- Passer à ma fenêtre Emacs
- Trouvez l'endroit où je veux coller le code
- Utilisez
C-y
(yank
) pour insérer le texte copié.
Cependant, parfois je trouve (à ma grande déception) que j'ai involontairement utilisé une certaine forme de commande kill (comme kill-word
ou kill-line
) pendant que j'étais à l'étape 2. Dans de tels cas, le texte copié du "presse-papiers" ne parvient jamais au kill bague.
Existe-t-il un moyen de s'assurer que le texte copié à partir d'autres applications arrive toujours dans mon kill ring?
Je travaille le plus souvent sous Linux, mais j'utilise également Emacs régulièrement sur Windows et Mac OS X, donc une réponse indépendante du système d'exploitation est préférable.
copy-paste
clipboard
nispio
la source
la source
Réponses:
Vous devez personnaliser
save-interprogram-paste-before-kill
pourt
. Cela poussera votre presse-papiers sur le killring au cas où vous tueriez quelque chose dans emacs avant de coller le presse-papiers. Une personnalisation associée est celleyank-pop-change-selection
qui pousse votre yank actuel dans emacs dans le presse-papiers. Pour que ces deux éléments fonctionnent, vous devezx-select-enable-clipboard
(remplacé pargui-select-enable-clipboard
dans emacs 25.1) être celuit
qui est par défaut.La raison pour laquelle cette option est désactivée par défaut est d'empêcher la transmission involontaire d'une grande quantité de données sur le killring qui persiste tout au long de la session, contrairement au presse-papiers qui est facilement remplacé.
la source
save-interprogram-paste-before-kill
semble faire exactement ce que je veux!gui-select-enable-clipboard
justeselect-enable-clipboard
.une autre solution consiste simplement à utiliser l'outil cli si possible,
pbcopy / pbpaste sur Mac
getclip / putclip sur Cygwin
L'avantage de cette solution est que le presse-papiers est toujours utilisable (par exemple, lorsque vous distant ssh).
Ma réponse comporte deux parties. la première partie présente quelques outils pratiques pour manipuler le presse-papiers. la deuxième partie répondra à votre question initiale (rangez le presse-papiers dans le kill ring).
PARTIE UN
Insérez le code ci-dessous dans votre ~ / .emacs:
DEUXIÈME PARTIE
insérez le code ci-dessous dans votre ~ / .emacs, et à partir de maintenant, utilisez "Mx paste-from-clipboard-and-cc-kill-ring" pour coller:
la source