Comprendre les raccourcis claviers de vi/vim

Comprendre les raccourcis claviers Vim : la méthode des deux tableaux

Aujourd’hui nous allons essayer de comprendre les raccourcis de vi/vim. Je vous demande de prendre deux feuilles. Je vais essayer de vous monter comment se combinent les touches.

  • sur la feuille 1 dessinez deux colonnes: touche description.
  • Titre de la feuille 1 : Mouvement
  • Tire de la feuille 2 : Action deux colonnes : touche et description.

Lancez vim et ouvrez un fichier texte existant.

Les mouvements :

w signifie word appuyez sur w vous passez au mot suivant.

Ajouter à votre tableau mouvement w word passe au mots suivant

b signifie back. Vous allez au mot précédent

Vous ajoutez a la feuille b back

e signifie end va à la fin du mot

les directions

J’ai un peu peur de vous perdre ici. Dans le temps les clavier n’avait pas de touche de direction. Les touches sont h, j, k, l pour respectivement gauche, bas, haut, droite

Moyen mnémotechnique j va vers le bas, k va vers le haut.

Vous pouvez utiliser les flèches. Mais un des avantage d’utiliser les j et k est que vos doigts ne quitte jamais le milieu du clavier.

Vous avez maintenant 7 lignes à votre tableau

Un quiz !

Que se passe t’il si je tape 3w ou 5j ?

Réponse je me déplace de 3 mots ou 5 ligne vers le bas modifions notre tableau en rajoutant le (n).

Se déplacer dans le fichier.

gg vous ramène au début du fichier (g pour go) G vous emmène à la fin du fichier 50G vous emmène à la ligne 50 (variante :50 marche aussi)

Vous rajoutez les 3 lignes dans votre tableau.

Début de ligne, fin de ligne

si vous connaissez vos Regex ^a vous donnes tout les occurrences qui commencent par a et a$ qui finissent par a ^ début du texte sur la ligne actuelle $ fin de la ligne 0 colonne 0 (tout début de la ligne)

A la recherche du mot perdu

pour chercher de vi on utilise la touche /, vous mettez le mot que vous souhaitez, appuyez sur n pour suivant ou N pour précédent.

nous avons le tableau final

Touche Description
w word mot suivant
(n)w n word (ex: 3w 3 mots)
b back mots précédent
e end fin du mot
h,j, k,l gauche, bas, haut, droite
(n)j 3 fois bas
gg début du fichier
G fin du fichier
20G ligne 20
^ Début de ligne
$ fin de la ligne
/mot cherche mot. n pour suivant N pour précédent

Nous avons la feuille 1.

Un demi conclusion :

  • Il existe plus de mouvement.
  • mais le but ici n’est pas d’être exhaustif. J’ai besoin des mouvements pour introduire la feuille suivante.

Les Actions.

d signifie delete (en fait c’est un couper)

Petit quizz : que se passe t’il si j’appuie sur les touches suivantes ? d3w une traduction delete 3 words. J’efface trois mots, Vous comprenez pourquoi j’ai absolument besoin de la table d’avant. Car en fait et c’est une des vérités qui vous aidera dans Vi/Vim. Un combinaison dans Vi c’est action + mouvement.

Je donne les autres actions

  • ypour yank pour copier yw copie un mot. y3j copie 3 lignes. pour coller on utilise la touche p comme paste
  • c pour change. Vous souhaitez changer un mot. avant vous appuyer sur i pour vous effacer le mot, puis vous rajouter le votre. Si vous taper cw comme change word. vi supprime le mot et met directement en mode insertion.
  • > et < déplace à droite et à gauche le texte <4j déplace 4 ligne à gauche.
  • = re-indente le texte, c’est un pictogramme le deux lignes du égale sont alignées. Pour ré-indenter tout le texte gg=G soit gg va au début du fichier =G ré-indente jusqu’à la fin du fichier.

Table 2

Touche Description
d delete
c change efface et passe en mode insertion
y yank (copier) p pour paste coller
> décale le texte à droite
< décale à droite
= reindente le code
v visual selectionne le texte y copie d coupe etc ..

Conclusion

  • Pour faire une combinaison de touche il suffit de prendre une lettre de la table 2 + un mouvement de la table 1. par exemple je veux effacer 5 lignes: delete 5 lines -> d5j je veux changer un mot change word -> cw

  • Recopier les deux tableaux. L’astuce est vraiment d’avoir les feuilles sous les yeux.

  • Les touches sont les mêmes pour man et surtout less

Un peu de philosophie.

  • Je n’ai pas utilisé une seul fois la touche controle et alt.
  • En 1 sens, je n’utilise pas la souris. Je veux indenter le texte je dis indente le texte =G et pas sélectionner le texte, puis bouton droit ou un raccourci clavier. En un sens Vi est plus direct.
  • J’espère que cela démystifie un peu l’utilisation du clavier sur vi

Teaser

il existe d’autre mouvement ! Je ferai une version deluxe, l’idée ici est de comprendre la combinaison de mouvements. une touche apprise c’est de dizaine de nouvelles possibilités par exemple di( i signifie inside. donc delete inside parenthèse. Efface le texte entre les parenthèses.

Faq

j’appris que pour effacer une ligne c’est dd ? je ne le vois pas dans le tableau. en fait

  • dd efface une ligne.
  • yy copie la ligne.
  • cc change la ligne.

Il existe un mouvement qui s’appelle _ qui représente la ligne actuelle (c’est d’ailleurs le pictogramme d’une ligne) donc en fait si on tape d_ on efface la ligne actuelle (essayez !). Mais la plupart du temps c’est un peu compliqué à taper pour une opération plutôt courante (supprimer une ligne) . Donc il a été décidé que dd, yy , cc sont les raccourcis de d_, y_ et c_.

Il y a en fait une multitude de raccourcis par exemple:

  • c$ donne C(Change tout la ligne à partir du curseur).
  • d$ donne D(Efface toute la ligne à partir du Curseur).
  • ^i donne I insert au début de la ligne.
  • $a donne A ajoute à la fin de la ligne.