Vim

    Qu'est-ce que VIM ?

    Vim est un éditeur de texte basé sur Vi et créé par Bram Moolenaar en 1991. C'est un éditeur modal, c'est-à-dire qu'il est basé sur plusieurs modes accessibles par des raccourcis clavier. Vim comportent 6 modes de base et des variantes. Nous allons rapidement faire l'inventaire des modes les plus utiles. Le mode est affiché en bas à gauche quand on ouvre Vim :

    • Normal : le mode par d√©faut qui permet de rentrer des commandes. Attention, on ne peut pas "√©crire" de texte dans ce mode ce qui peut √™tre d√©stabilisant pour les nouveaux utilisateurs.
    • Insert : permet d'√©diter du texte de mani√®re "classique".
    • Visual : permet de s√©lectionner du texte.

    Comment ça s'utilise ?

    Commandes

    Vim s'utilise un peu différemment d'un éditeur de texte classique. On ouvre un fichier avec Vim en tapant dans un terminal vim monFichier.txt. On arrive alors sur l'éditeur de texte en mode Normal. Ce mode permet d'écrire des commandes que l'on peut voir s'afficher dans la barre de statut en bas de la fenêtre.

    Nous allons maintenant voir quelques commandes utiles :

    • :w sauvegarder le fichier.
    • :q fermer le fichier.
    • /mot chercher "mot" dans le fichier.
      • n : occurrence de "mot" suivant.
      • N : occurrence de "mot" pr√©c√©dente.
    • :11 aller √† la ligne 11.
    • :%s/mot1/mot2/g remplacer "mot1" par "mot2".
    • :%s/mot1/mot2/gc remplacer "mot1" par "mot2" en demandant confirmation.

    On peut bien s√Ľr combiner les commandes :

    • :wq sauvegarder puis de quitter le fichier.
    • :q! quitter le fichier sans sauvegarder.

    Raccourcis

    Dans le mode Normal de Vim, on peut aussi √©diter du texte gr√Ęce √† des raccourcis clavier. On va voir ici les raccourcis de base et on parlera aussi du mode Visualet de ses d√©riv√©s.

    Se déplacer

    Il est important de pouvoir se déplacer rapidement dans le texte.

    • l ou fl√®che droite : se d√©placer √† droite.
    • h ou fl√®che gauche : se d√©placer √† gauche.
    • k ou fl√®che haut : se d√©placer en haut.
    • j ou fl√®che bas : se d√©placer en bas.
    • ^ (2 fois la touche sur un clavier AZERTY) : aller au d√©but de ligne.
    • $ : aller √† la fin de ligne.
    • G : aller √† la fin du fichier.
    • gg : aller au d√©but du fichier.
    • 10G : aller √† la ligne 10.

    Sélectionner du texte, le mode Visuel

    Sélectionner du texte fait appel aux modes Visuel de Vim:

    • V : s√©lectionner une ligne, V-Line mode.
    • v : s√©lectionner du texte en se d√©placent, Visual mode.
    • Ctrl + v : s√©lectionner un bloc de texte, V-Block mode.
    • vi) : s√©lectionner les caract√®res entre deux parenth√®ses.
    • vi] : s√©lectionner les caract√®res entre deux crochets.
    • vi} : s√©lectionner les caract√®res entre deux accolades.
    • vi" : s√©lectionner les caract√®res entre deux guillemets.

    Copier, coller et supprimer.

    Raccourcis les plus utiles pour tout utilisateur débutant comme confirmé.

    • y : copier une s√©lection.
    • yy : copier une ligne.
    • p : coller apr√®s le curseur.
    • P : coller avant le curseur.
    • d : supprimer une s√©lection.
    • dd : supprimer une ligne.
    • x : supprimer le caract√®re.
    • diw : supprimer le mot.

    √Čditer du texte

    Pour éditer du texte de manière conventionnelle, il suffit de passer en mode Insert

    • a : passer en mode Insert apr√®s le curseur.
    • i : passer en mode Insert avant le curseur.
    • A : passer en mode Insert en fin de ligne.
    • I : passer en mode Insert en d√©but de ligne.

    La sortie du mode Insert se fait en appuyant sur la touche √Čchap.

    Autres

    • . refaire l'action pr√©c√©dente.
    • Ajouter un chiffre devant une commande la r√©p√®te : 4dd supprime 4 lignes.

    On n'a présenté ici qu'une fraction infinitésimale des commandes et raccourcis de Vim. Vous-pouvez trouver le reste dans les sources en bas de la page. Il faut garder à l'esprit que passer d'un éditeur de texte classique à Vim demande un certain temps d'apprentissage. Les quelques commandes vues précédemment permettent sans problème de commencer à utiliser Vim de manière efficace. Une fois les commandes de base et la logique des raccourcis intégrées, il est très facile de continuer à enrichir petit-à-petit son répertoire de raccourcis.

    Bien que Vim puisse demander plusieurs semaines d'apprentissage, une fois ma√ģtris√© il est souvent difficile, voir IMPOSSIBLE de repasser √† un √©diteur classique.

    Ouvrir plusieurs fichiers

    On peut combiner les commandes vues précédemment pour les adapter à plusieurs fichiers :

    • :wa sauvegarder les fichiers.
    • :qa fermer les fichiers.
    • :wqa sauvegarde puis quitter les fichiers.
    • :qa! quitter les fichiers sans sauvegarder.

    Je présente ici des raccourcis présents dans ma configuration de Vim, adaptés pour être intégrés avec Tmux et Awesome.

    En mode onglet

    La commande vim fichier1 fichier2 -p permet d'ouvrir les fichiers en mode onglet :

    • Ctrl + fl√®che bas : aller √† l'onglet pr√©c√©dent.
    • Ctrl + fl√®che haut : aller √† l'onglet suivant.

    En mode fenêtré

    La commande vim fichier1 fichier 2 -O permet d'ouvrir les fichiers en sous-fenêtres arrangées verticalement :

    • Ctrl + fl√®che gauche : aller √† la fen√™tre de gauche.
    • Ctrl + fl√®che droite : aller √† la fen√™tre de droite.

    La commande vim fichier1 fichier 2 -o permet d'ouvrir les fichiers en sous-fenêtres arrangées horizontalement. Aucun raccourci n'y est attaché car je n'utilise jamais ce mode. Voir la section Configurer pour ajouter un raccourci si nécessaire.

    Et alors pourquoi utiliser Vim ? √áa para√ģt bien compliqu√©. Alors d√©j√† comme vous avez pu le remarquer c'est un √©diteur de texte tr√®s configurable et portatif. Une fois que l'on a son fichier de configuration, on peut retrouver le m√™me environnement de travail sur n'importe quels syst√®mes tr√®s facilement. Un utilisateur avanc√© de Vim sera tr√®s rapide √† √©diter du texte. Pour les personnes ayant besoin d'√©diter du texte en ligne, via ssh, la transition bureau/machine √† distance est invisible (surtout comme nous le verrons par la suite avec Tmux) et la productivit√© n'est pas alt√©r√©e.

    Beaucoup de commandes et de tutoriels existent en ligne, voir la documentation officielle ou le wiki.

    En français :

    1. https://doc.ubuntu-fr.org/vim

    En anglais :

    1. https://www.vim.org/docs.php
    2. https://vim.fandom.com/wiki/Vim_Tips_Wiki