Notes et astuces sur les systèmes libres basés sur GNU/Linux

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - X11

Fil des billets

jeudi, 12 décembre 2013

Copier Coller d'une application graphique vers/depuis vim.

Wiki-wordmark.pngPlus j'utilise vim plus j'en découvre à son sujet.
Alors comme tout n'est pas forcément très facile à retenir, ni très intuitif, je le couche sur ce blog.
L'astuce du jour porte sur les copier/coller.
Par convention, je mets un points virgule entre deux touches qui ne sont pas pressées en même temps.

Copier un mot dans le registre courant

Se placer sur la ligne désirée et placer le curseur en début de mot, puis effectuer le raccourci suivant :

Echap;y; w

Pour visualiser ce qui est dans votre registre, vous pouvez taper la commande suivante :

Echap; :reg
:reg
--- Registres ---
""   define

Ci-dessus, on peut constater qu'il y a dans le registre courant "", le mot define.

On peut aussi copier la fin de ligne ou toute la ligne avec les raccourcis ci-dessous :

#Copier la fin de ligne
Echap;y;$ 
#Copier toute la ligne courante
Echap;y;y

On peut aussi utiliser le mode visuel afin de copier un bloc de texte comme ci-dessous :

#Passer en mode visuel
Echap; v
#Effectuer votre sélection avec les touches j,k,l,h
#Puis copier
y

Coller un mot depuis le registre courant

La vous n'avez pas douze solutions, soit vous coller avant le curseur soit après:

#Coller avant
Echap; P
#Coller après
Echap; p

Jouer avec le presse-papier/registre de vim

Tout à l'heure, vous avez pu visualiser le contenu de mon registre et vous avez sans doute dû voir que le votre contenait pleins de lignes.
Je pense qu'il y en a une petite quarantaine. Dix sont nommés avec des chiffres, 26 avec notre alphabet et quelques autres spéciaux.
Pour les manipuler, c'est assez simple à comprendre mais moins à manipuler, il suffit de préfixer votre commande copier/coller avec la double quote " suivi du nom de votre registre.

#Copier une ligne dans le registre 5
Echap; ";5; y;y
#Coller la ligne depuis le registre 5
Echap; ";5;p

Copier/coller depuis/vers une application graphique sans toucher à votre souris

Je vous l'ai dit, il reste quelques registres spéciaux, ils se nomment entre autre :

  • "+ : Le presse-papier commun
  • "* : Celui qui contient les sélections à la souris

Attention : tous les vim ne sont pas compilés avec ces deux registres :
Pour savoir si le votre supporte cette option, il suffira de taper la ligne de commande suivante dans vim :

:echo has('x11') && has('clipboard')

SI vous obtenez 1 c'est bon sinon il va falloir télécharger un autre vim.
Sous Ubuntu/Debian, le paquet qui supporte cette option est entre-autre vim-gtk
SOus Archlinux, vous pouvez télécharger gvim.

A noter que la ligne de commande à exécuter dans un terminal marche également :

#Si cela vous renvoit une ligne, c'est bon
vim --version | grep +xterm_clipboard

Ensuite, vous n'avez plus qu'à manipuler ces deux registres comme précédemment :

#Copier une ligne dans le registre graphique
Echap; ";+; y;y
#Coller la ligne depuis le registre +
Echap; ";+;p

See you soon

Source :