Apprentissage
La difficulté de Neovim n’est pas la quantité de choses à savoir. C’est l’ordre. Tout est documenté, tout est accessible dès le premier jour, et c’est précisément le problème : rien n’indique ce qu’il faut apprendre maintenant et ce qu’il faut refuser d’apprendre encore.
Cette page propose un ordre. Six paliers, chacun avec ce qu’on y travaille, ce qu’on s’interdit d’y toucher, et un critère observable pour savoir qu’on l’a franchi.
Le plateau
Pendant deux à trois semaines, vous serez plus lent qu’avant. Pas un peu : nettement. C’est mécanique — vous remplacez des réflexes automatiques par des décisions conscientes, et le passage par la conscience coûte cher.
Deux conséquences pratiques. D’abord, ne commencez pas la semaine d’une échéance : la tentation de rouvrir l’ancien éditeur « juste pour cette fois » est irrésistible, et elle suffit à ne jamais franchir le plateau. Ensuite, acceptez de travailler moins bien pendant ce temps, consciemment, plutôt que d’essayer de compenser — c’est cette compensation qui fait rechuter.
Le signe que le plateau est passé n’est pas que vous êtes redevenu rapide, c’est que vous cessez d’y penser.
Trois pièges
Configurer avant de savoir éditer. C’est le plus courant et le plus coûteux. Installer des plugins produit une sensation de progrès immédiate, sans rien apprendre : au bout d’un mois on a une configuration de trois cents lignes et on se déplace toujours avec les flèches. Les paliers 0 à 4 se franchissent entièrement avec un Neovim nu. La configuration est le palier 5, et cet ordre n’est pas négociable.
Installer une distribution sans la lire. Une distribution fait gagner des semaines, et laisse une couche entière qu’on ne comprend pas — jusqu’au jour où elle casse, où l’on ne sait ni ce qui s’est passé, ni où regarder. Si vous en utilisez une, lisez ce qu’elle active.
Remapper vers ses anciens réflexes. Rebrancher Ctrl + S sur la sauvegarde,
garder les flèches, installer un plugin qui recrée le comportement de son ancien
éditeur : chacun de ces gestes semble innocent et supprime exactement la
contrainte qui allait vous faire progresser. La friction est le mécanisme
d’apprentissage, pas un défaut à corriger.
Palier 0 · Survivre
On travaille : ouvrir un fichier, passer en insertion avec i, revenir au
mode normal, enregistrer avec :w, quitter avec :q. hjkl pour se déplacer.
Et surtout :Tutor, le tutoriel intégré — trente minutes, en entier, sans sauter
de section. C’est le meilleur investissement de tout le parcours.
On s’interdit : tout le reste. Sérieusement. Aucun plugin, aucune configuration, aucune antisèche imprimée.
Critère : vous ouvrez, modifiez, enregistrez et quittez sans hésiter, et vous savez toujours dans quel mode vous êtes.
Palier 1 · Lâcher les flèches
On travaille : les déplacements. w, b, e pour les mots. 0, ^, $
pour la ligne. f{char} et t{char} dans la ligne — les deux plus rentables de
tout Vim. gg, G, Ctrl + d, Ctrl + u pour le fichier.
On s’interdit : les flèches et la souris, radicalement. Et les opérateurs : on ne fait encore que se déplacer.
Critère : vous ne tapez plus jamais hjkl plus de trois fois de suite. Quand
la cible est à plus de trois caractères, votre main choisit une autre touche sans
que vous y pensiez.
Palier 2 · Parler la grammaire
C’est le palier qui compte. Les précédents vous ramènent au niveau de votre ancien éditeur ; celui-ci vous fait passer devant.
On travaille : la composition {opérateur}{motion}. d, c, y combinés
aux déplacements du palier 1. Puis les objets texte — iw, i(, i", it —
et enfin ., qui rejoue la dernière modification.
On s’interdit : les registres nommés, les macros, les marques. Tout ce qui ressemble à de l’automatisation attendra le palier 4.
Critère : vous composez une commande que vous n’avez jamais tapée ni lue, et
elle fait ce que vous attendiez. Et . vous sert plusieurs fois par heure.
Palier 3 · Travailler dans un projet
Jusqu’ici vous éditiez un fichier. Maintenant vous travaillez dans un dépôt.
On travaille : les buffers, les fenêtres et la distinction entre les deux. La
recherche avec / et *. La substitution :%s. Et c’est ici qu’un premier
outillage devient légitime : recherche floue de fichiers, explorateur, serveur de
langage.
On s’interdit : de tout installer d’un coup. Un outil, utilisé une semaine, avant le suivant.
Critère : vous ne quittez plus Neovim pour changer de fichier, et une substitution sur tout un projet ne vous fait plus peur.
→ Buffers, fenêtres et onglets, Recherche et remplacement
Palier 4 · Ne jamais répéter
On travaille : les registres, les macros, :g et :v, :normal, et la
quickfix avec :cdo. L’objectif n’est pas la performance : c’est de changer de
réflexe devant une tâche répétitive.
On s’interdit : rien. À ce stade vous choisissez.
Critère : devant quarante lignes à transformer de façon identique, votre
premier geste est q ou :g, pas de commencer à la main en espérant que ça aille
vite.
Palier 5 · Façonner son outil
On travaille : lire sa propre configuration, la comprendre, la modifier. Ajouter un langage, un plugin, un raccourci. Savoir pourquoi chaque ligne est là.
Critère : vous ajoutez le support d’un langage à votre configuration sans copier-coller depuis un article de blog, et vous pouvez expliquer ce que fait chaque ligne ajoutée.
→ Configuration, Plugins, Ma configuration
Comment une touche s’ancre
Une seule règle : une nouveauté à la fois, jusqu’à ce qu’elle devienne inconsciente. Trois touches apprises le lundi sont trois touches oubliées le mercredi. Une touche travaillée pendant une semaine est acquise pour dix ans.
Le déclencheur pour en chercher une nouvelle n’est pas la curiosité, c’est
l’agacement. Quand vous vous surprenez à faire quelque chose de laborieux — tenir
x enfoncé, retaper trois fois la même correction, descendre de quarante lignes
en j — arrêtez-vous et cherchez. Une touche apprise en réponse à une gêne
concrète reste ; une touche apprise dans une antisèche s’évapore.
Le carnet
Tenir une liste des cinq choses qui vous agacent en ce moment, et n’en résoudre qu’une par semaine, marche mieux que n’importe quel poster de raccourcis. La liste est personnelle, elle est courte, et chaque ligne rayée correspond à un réflexe réellement acquis.
Lire la documentation intégrée
Le réflexe le plus rentable du parcours, et le plus négligé : :h avant Google.
La documentation de Vim est exhaustive, précise, et elle décrit votre version
exacte plutôt qu’une autre.
:Tutor— le tutoriel interactif, à faire au palier 0:h {sujet}— l’aide sur un sujet:h user-manual— le manuel complet, structuré comme un cours ; les chapitres se lisent dans l’ordreCtrl + ]sur un mot entre barres verticales — suit le lien ;Ctrl + orevient:helpgrep {motif}— cherche dans toute la documentation, résultats dans la quickfix
La convention de nommage des sujets d’aide se devine vite : :h 'number' avec
des apostrophes pour une option, :h ctrl-w pour une combinaison, :h i_CTRL-R
pour une touche en mode insertion, :h :substitute avec deux-points pour une
commande Ex.
Et pour comprendre son propre éditeur plutôt que la documentation :
:verbose map gd dit à quoi une touche est associée et quel fichier l’a
définie. C’est ce qui permet de démêler ce qui vient de Neovim, de sa
configuration ou d’un plugin.