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
y
pour yank pour copieryw
copie un mot.y3j
copie 3 lignes. pour coller on utilise la touchep
comme pastec
pour change. Vous souhaitez changer un mot. avant vous appuyer suri
pour vous effacer le mot, puis vous rajouter le votre. Si vous tapercw
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 textegg=G
soitgg
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 motchange word
-> cwRecopier les deux tableaux. L’astuce est vraiment d’avoir les feuilles sous les yeux.
- Les touches sont les mêmes pour
man
et surtoutless
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$
donneC
(Change tout la ligne à partir du curseur).d$
donneD
(Efface toute la ligne à partir du Curseur).^i
donneI
insert au début de la ligne.$a
donneA
ajoute à la fin de la ligne.