Vi c'est la vie !

Mon premier (vrai) article commence par une petite dédicace à Jerem et la section last IRIS.

Je présente ici ce qui me semble être l'essentiel de Vi, pour une utilisation (très) minimaliste. Le but étant de préparer les bases d'un deuxième article sur VIM.

V'oui mais c'est quoi ?

Vi, Vial ou VIM (Vi IMproved : version améliorée de Vi), est un éditeur de texte en ligne de commande orienté SysAdmin/Dev. Il permet d'effectuer les actions classiques d'un éditeur de texte (et plus encore).

logo VIM

VIM indispensable ?

Non pas indispensable, mais Totalement indispensable pour un SysAdmin (enfin pour moi), et voici quelques arguments :

  • il est présent sur toutes les distributions serveur (je n'ai jamais rencontré le cas inverse)
  • il n'a pas besoin d'interface graphique (pratique lorsque l'on travaille en ssh)
  • il est rempli de fonctionnalités utiles (recherche/remplacement par ReGex, coloration syntaxique, utilisation de l'autocomplétion, des Macros, des templates, ...)

Principe de fonctionnement

Maintenant que l'on sait que c'est bien, il faut en comprendre son fonctionnement (très particulier). Il faut savoir que VIM à plusieurs modes d'utilisation. en voici quelque uns que j'utilise régulièrement :

  • Normal mode : permet de naviguer dans les documents et d'utiliser les commandes basiques
  • Command-line mode : permet d'utiliser les commandes VIM (accéssible via le préfixe :) et la recherche dans un document (via les préfixes / ou ?)
  • Insert mode : permet d'insérer ce que l'on tape au clavier dans le fichier courant
  • Visual mode : s'utilise comme le mode Normal mais permet de sélectionner une zone de texte en la méttant en surbrillance (accéssible en tapant v ou V)

Dans un usage basique, on est constamment en train de passer d'un mode à l'autre.

Utiliser VIM

Pour ouvrir un fichier (ou en créer un si il n'existe pas), rien de plus simple :

vi my_text.txt

Normal mode

Pour se déplacer dans un fichier il faut utiliser les touches [H], [J], [K] et [L] qui correspondent respectivement aux directions gauche, bas, haut et droite.

La suppression :

  • x : supprime un caractère (10x supprime dix caractères)
  • dw : (delete word) supprime un mot (2dw supprime deux mots)
  • dd : supprime une ligne (3dd supprime trois lignes)
  • dtX : (delete till 'X') supprime tout ce qu'il y a jusqu'à la lettre 'X' exclu

La copie :

  • yw : (yank word) copie un mot (4yw copie quatre mots)
  • yy : copie une ligne (3yy copie trois lignes)

Le collage :

  • p : (paste) colle après le curseur (2p colle deux fois ce qui est en mémoire)
  • P : colle avant le curseur

Le remplacement :

  • r : (replace) permet de remplacer le caractère courant par le prochain entré au clavier
  • cw : (change word) remplace la portion de texte, commençant de la position courante du curseur jusqu'à la fin du mot courant par le texte inséré ([Esc] pour revenir en mode Normal)

Autre :

  • u : (undo) annuler/défaire
  • [CTRL]+r : (redo) refaire
  • . : "rejouer" la précédente commande

Insert mode

Pour passer en mode insertion :

  • i : (insert) insertion avant le curseur
  • I : insertion en début de ligne
  • a : (append) insertion après le curseur
  • A : insertion en fin de ligne

Pour revenir en mode Normal (et donc quitter le mode actuel) appuyer sur la touche [Esc].

Command-line mode

Les commandes indispensables :

  • :w : (:write) sauvegarder le document
  • :q : (:quit) quitter le document
  • :wq : sauvegarder et quitter (a bon ?)

Visual mode

Parfois il peut être intéressant de sélectionner un ensemble de caractères, mots ou lignes directement avec le curseur pour effectuer une action dessus (supprimer, couper, copier, ...), c'est justement ce que va permettre le mode visuel. Pour l'utiliser :

  • v : pour la sélection caractère par caractère
  • V : pour la sélection ligne par ligne

Durant l'utilisation du mode visuel il est possible d'effectuer des actions (d, y, ...) et c'est tout l'intêret. Une fois l'action réalisé, revenir en mode normal en appuyant sur la touche [Esc].

Et pour la suite ?

C'est tout pour le moment ! J'espère que cet article n'a pas était trop long, mais cela me semblait nécessaire pour présenter le prochain. to be continued...

Une petite dernière pour la route, à tester juste pour le FUN (juste pour constater de l'humour des développeurs de VIM) :

  • :help!
By @Mikael FLORA in
Tags : #documentation,