Vim efficace avec peu d'efforts
tlàl : Vous désirez apprendre vim (le meilleur editeur de texte connu à ce jour) le plus rapidement possible. Voici mes conseils pour vous aider.
Vim ou l’éditeur qui vallait 3 milliards :
Meilleur, plus fort, plus rapide.
Apprenez vim et ce sera votre dernier éditeur. Aucun éditeur que je connaise ne le surpasse. Sa prise en mais est difficile, mais payante.
Je vous conseille de l’apprendre en 4 étapes :
- La survie
- Se sentir à son aise
- Se sentir meilleur, plus fort et plus rapide
- Les super-pouvoirs
Après ces leçons, vous serez une super star de l’édition de texte.
1er Niveau: survivre
- Installez vim
- Lancez vim
- NE TOUCHEZ A RIEN! Lisez
Dans un éditeur normal, il suffit de taper sur une touche du clavier et la lettre s’affiche à l’écran.
Pas ici.
Vim est en mode edition.
Commençons par placer vim en mode insertion.
Tapez sur la touche i
.
Voilà, c’est magique.
Vous pouvez tapez comme dans un éditeur standard.
Pour repasser en mode édition tapez sur la touche Echap
.
Maintenant que vous savez passer du mode edition au mode insertion. Voici les commandes de survie (toutes en mode edition) :
i
: Passer en mode insértion. Taper Echap pour repasser en mode edition.x
: Supprimer le caractère sous le curseur:wq
: Sauvegarder et quitter (:w
sauvegarde,:q
quitter)dd
: Supprimer (et copier) la ligne courantep
: Collerhjkl
(optionnel) : se déplacer (←↓↑→). Souvenez vousj
ressemble à une flèche vers le bas.
Seulement 5 commandes. Voilà, c’est tout pour un début. Essayez d’éditer vos fichier comme ça pendant une petite journée. Lorsque ces commandes vous seront devenues naturelle. Vous pouvez passer à l’étape d’après.
2ème Niveau - Se sentir à son aise
Vous connaissez les commandes de survie. Passons à des commandes pour être un peu plus à notre aise. Je vous suggère :
-
Les variantes de l’insertion
a
→ commei
, mais après la position du curseur.o
→ commei
, mais à la ligne suivanteO
→ commeo
mais ajoute la ligne avant.cw
→ remplacer le mot sous le curseur.
-
Déplacements basiques
0
→ aller à la première colonne^
→ aller au premier caratère de la ligne$
→ aller à la fin de la ligne/pattern
→ rechercherpattern
dans le fichier.
-
Copier/Coller
P
→ Coller avant, souvenez-vous quep
collait après la position du curseur.yy
→ copier la ligne courante. C’est plus simple et équivalent àddP
Niveau 3 - Meilleur. Plus fort. Plus rapide.
Bravo ! Si vous êtes arrivé jusqu’ici nous allons pouvoir commencer à apprendre les choses vraiment intéressantes.
Pour cette section, je vais seulement parler de choses qui sont aussi disponible dans le vieux vi
.
Commençons par le premier super pouvoir de vi
, éviter les répétitions (niveau 1):
.
→ Le caractère point répètera la dernière commande.- N<commande> → répètera la commande N fois.
Quelques exemples, ouvrez un fichier avec vim et tapez :
2dd
→ Supprimera 2 lignes3p
→ copiera 3 fois d’affiler le texte copié100idesu [ESC]
→ écrira “desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu “.
→ Juste après la dernière commande réécrira les 100 “desu “.3.
→ Écrira 3 “desu” et non pas 300.
Second super pouvoir de vim, les déplacements (niveau 1) : Savoir se déplacer efficacement avec vim est très important, ne sautez pas cette section.
- N
G
→ Aller à la ligne N gg
→ raccourci pour1G
, retourner au début du fichierG
→ Aller à la dernière ligne.-
Déplacement autour des mots:
w
→ aller au début du mot suivante
→ aller à la fin du mot courant
Par défaut les mots sont seulement composés de lettres (et du caractère souligné
_
). Si vous voulez considérer les mots au sens “jusqu’au prochain espace”, alors il suffit d’utiliser les majuscules.W
→ aller au début du mot “étendu” suivantE
→ aller à la fin du mot “étendu” courant
Maintenant passons aux déplacement qui vont vous faire sentir vraiment meilleur :
%
: Aller à la parenthèse, accolade, crochet correspondante.*
(resp.#
) : Aller à la prochaine (resp. précédente) occurrence du mot sous le curseur
Croyez moi, ces trois dernières commandes valent de l’or. Retenez les, et vous gagnerez beaucoup de temps.
Niveau 4 - Power Overwhelming
Avec toutes les commandes précédentes vous avez presque toutes les commandes que j’utilise tous les jours. Mais voici les killer features de vim. Celles que je n’ai retrouvé que dans vim (ou presque).
Déplacement sur la ligne : 0^$fFtT,;
0
→ aller à la colonne 0,^
→ aller au premier caractère de la ligne$
→ aller au dernier caractère de la lignefa
→ vous amène à la prochaine occurrence de a sur la ligne courante.,
recherche l’occurrence suivante.t,
→ vous amène juste après le,
.3fa
→ recherche la 3ième occurrence dea
.F
etT
→ commef
ett
mais en arrière.
Sélection de blocs rectangulaires : C-V
.
Les blocs rectangulaires sont très commodes pour commenter plusieurs lignes de codes.
Typiquement: ^C-VC-dI// [ESC]
^
→ aller en début de ligneC-V
→ Commencer la sélection du blocC-d
→ se déplacer vers le bas (pourrait êtrejjj
ou%
etc…)I// [ESC]
→ écrit//
pour commenter le reste de la ligne.
Complétion : C-n
et C-p
.
En mode insertion, commencez à écrire le début d’un mot déjà présent dans l’un des buffers (fichers) ouvert et tapes C-p
. Magique.
Macros : qa
faire quelque chose qq
. @a
, puis @@
.
qa
enregistre tout ce que vous faite et enregistre le tout dans le registre a
. Ensuite @a
va rejouer la macro enregistrée dans le registre a
comme si c’est vous qui tapiez au clavier.
Exemple : Sur une ligne contenant seulement un nombre tapez :
qaYpC-aqq
→qa
début de l’enregistrement.Yp
copier cette ligne.C-a
incrémente le nombre.Maintenant essayez
10@a
. Cela va créer une liste de nombre croissants.
Mais aussi,
Sélection visuelle.
On a déjà vu un exemple avec C-V
.
Mais il y a aussi, v
et V
.
Et une fois la sélection visuelle faite vous pouvez par exemple:
=
→ auto indenter<
(resp.>
) → indenter à gauche (resp. à droite).J
→ joindre toutes les lignes pour en faire une seule
Ajouter quelque chose à la fin de toutes les lignes sélectionnées visuellement :
S-V
- aller jusqu’à la ligne désirée (
jjj
ouC-d
ou/pattern
ou%
etc…) $
aller à la finA
, écrire le texte,Echap
.
Splits : :split
et vsplit
. Pour en savoir plus faite un :help split