Copier-coller sous Linux
Le but de ce billet est d’expliquer comment copier-coller sous GNU/Linux pour les hackers, c.-à-d de favoriser le clavier.
Les trois presse-papiers
Il existe 3 presse-papiers sous X : le primaire, le secondaire et le clipboard.
Le presse-papiers primaire est alimenté par une sélection à la souris et son contenu est collé à la souris avec un clic sur le bouton du milieu ou au clavier avec Shift + Insert.
Le presse-papiers clipboard est alimenté par une sélection à la souris suivi de Ctrl + C et son contenu est collé au clavier avec Ctrl + V.
Le presse-papiers secondaire ne sert à rien.
Vim
Vim utilise une terminologie différente : yank y
pour copier et put p
pour coller.
De plus, vim n’utilise pas le clipboard mais des registres.
Un registre peut être précisé avant la commande pour copier ou coller (s’il est omis, le registre unnamed "
est utilisé).
- pour copier :
"{register}y{motion}
- pour coller :
"{register}p
2 registres spéciaux permettent d’interagir avec le presse-papier : +
le presse-papier clipboard et *
le presse-papier primaire
Pour copier-coller de Vim vers une autre application, j’utilise la configuration suivante :
set clipboard=unnamedplus
Cela permet de synchroniser automatiquement le registre "
(unnamed) avec le registre +
(presse-papier clipboard).
Le shell
xsel
est un outil en ligne de commande pour interagir avec les presse-papiers.
xsel -i -p
copie l’entrée standard dans le presse-papier primairexsel -i -b
copie l’entrée standard dans le presse-papier clipboardxsel -o -p
colle le presse-papier primairexsel -o -b
colle le presse-papier clipboard
Remarque : xclip
est une alternative à xsel
.
Le terminal
La plupart des terminaux (par ex. gnome terminal) utilise Ctrl + Shift + C pour copier et Ctrl + Shift + V pour coller. En effet, le raccourci Ctrl + C est déjà utilisé par le shell pour terminer un processus.
Si vous utilisez urxvt, un plugin permet de copier/coller en utilisant le presse-papier clipboard avec Ctrl + C et Ctrl + V.
Les cas d’utilisation
- Firefox vers Vim
- Primaire : sélection dans Firefox,
"*p
dans Vim (en mode normal). - Clipboard : sélection et Ctrl + C dans Firefox,
p
dans Vim (en mode normal).
- Primaire : sélection dans Firefox,
- Vim vers Firefox
- Primaire :
"*y{motion}
dans Vim, clic milieu dans Firefox. - Clipboard :
y{motion}
dans Vim, Ctrl + V dans Firefox.
- Primaire :
- Firefox vers un terminal (pour coller une commande trouver sur le Net)
- Primaire : sélection dans Firefox, Shift + Insert dans le terminal.
- Clipboard : sélection et Ctrl + C dans Firefox, Ctrl + Shift + V dans le terminal.
- Terminal vers Firefox (pour montrer un problème sur un forum)
- Primaire : sélection dans le terminal, clic milieu dans Firefox car Firefox ne supporte pas Shift + Insert.
- Clipboard : sélection et Ctrl + Shift + C dans le terminal, Ctrl + V dans Firefox. (préféré pour éviter double clic sur le touchpad.
Un gestionnaire de presse-papiers
Il n’est pas possible nativement de mettre plusieurs choses dans le presse-papiers, à l’instar des registres de Vim. Heureusement, clipit, un fork de Parcellite, est un outil GTK pour faire des copier-coller multiples. On colle avec Ctrl + C et au moment de coller, on fait Ctrl + Alt + H pour choisir dans l’historique puis Ctrl + V.
Conclusion
J’utilise plus souvent le clipboard pour éviter le double clic que je ne trouve pas pratique sur le touchpad.