Vim un éditeur de texte, dans le terminal !

Bonjour,

Aujourd’hui, nous allons aborder le thème de Vim ou Vi IMproved, Vi amélioré pour les non-anglophones.
Oua super, on va apprendre à manipuler Vim de A à Z ? Non, pas vraiment pour 2 raisons :

  • Ce que vous pouvez faire avec Vim est assez bluffant, j’entends par là, il est capable de gérer de l’autocomplétion aussi bien que de la manipulation de texte en utilisant des RegEx.
  • Il existe nombre d’articles sur internet visitant tel ou tel aspect de Vim, et je ne les maitrise pas tous, loin de là.

Alors, pourquoi faire un Xeme article sur Vim ? Simplement, car un lecteur m’a signalé qu’il serait bon que j’explique rapidement comment utiliser Vim puisque j’en parle dans mes articles. Comme j’aime bien répondre par la positive et qu’un petit article ne fait jamais de mal, allons-y !
À la fin de cet article, vous serez donc capable de vous dépatouiller avec Vim et ne pas vous retrouver bloqué en suivant l’un de mes articles !

Arck, tu nous parles de Vim, mais dans tes articles je le vois cité nulle part ! Oui c’est normal, Vim est donc la version améliorée de Vi, il remplace donc le Vi inclus de base et lorsque vous taper la commande : vi, ceci lance Vim et non Vi lorsque ce dernier est installé.

Ou pouvons-nous utiliser cet éditeur de texte ? Dans le terminal, sous Mac vous le trouverez dans : Applications > Utilitaires > Terminal.

Si vous tapez juste vi, que ce passe t’il ? Vous devriez avoir ceci qui apparait dans votre écran :

vim_screenshot_accueil

Superbe non ? Si vous essayez de taper des caractères cependant, ceci risque de faire des *bip*, mais pas grand-chose n’a l’écran.
Ceci est tout à fait normal, mais un peu déroutant. Laissez-moi vous expliquer pourquoi avant de continuer plus loin.

Vim dispose de 2 modes pour fonctionner :

  1. Le mode édition
  2. Le mode administration / gestion

Par défaut, vous commencez dans le mode administration, dans ce mode les touches de votre clavier effectuent des actions données, nous allons en découvrir quelques une au cours de cet article. Dans le mode édition, tous les caractères de votre clavier vous permettent d’écrire. Pour quitter le mode édition, il suffit d’appuyer sur la touche « échap » de votre clavier. (en haut à gauche)

Le mode édition vous permettant d’écrire et rien d’autre, nous n’allons pas aller plus loin avec ce dernier. Passons au mode Administration, comment pouvez-vous passez en mode édition ? OK, pour quitter le mode édition on fait « échap », mais avant il serait bien d’y rentrer en mode édition.

Entrer en mode édition

Il existe plusieurs façons de rentrer en mode édition, nous allons nous limiter aux 2 dont je me sers le plus souvent :

  • i : lorsque vous pressez la touche « i », votre terminal va devenir comme ci-dessous et vous pourrez écrire. Notez la présence de : — Insert — en bas à gauche de votre écran vous confirmant que vous êtes en mode édition, et plus précisément en mode insertion de texte.
  • o : Insert une ligne vide en dessous de la ligne ou ce situe votre curseur et vous passe en mode édition. Ceci est très pratique pour insérer du texte à la ligne, pour ajouter une nouvelle ligne dans un ficher de configuration par exemple. Reprenons le fichier dans lequel nous avons écrie avec le « i », plaçons notre curseur sur la seconde ligne et pressons « o » ce coup la. (Attention à bien appuyer sur « échap » entre les deux pour repasser en mode administration)
vim_insert_i

Insertion avec i

vim_insert_o

Insertion avec o

Enregistrer et quitter

Vous savez écrire du texte super, mais comment enregistrer à présent ? Et comment quitter l’application ?
Comme je vous ai dit en début de l’article, Vim est très puissant, mais si on devait se limiter au nombre de touches du clavier, nous serions vite limités… 102 fonctionnalités pour un clavier traditionnel.

Pour parer cela, Vim dispose d’un invite de commande pouvant prendre nombre d’arguments. Pour activer l’invite de commande, il suffit de saisir le caractère « : » en mode administrateur. À ce moment tous les caractères que vous allez saisir vont s’afficher en bas de votre écran.

Pourquoi nous parler de cela ? Simplement, car l’enregistrement et la fermeture de ce fichier passent par cet invite de commande. Pour faire simple et court, sachez que Vim a optimisé au maximum les commandes pour qu’elles soient le plus rapides à taper.

  • Pour quitter, la lettre « q » comme « quit » suffit dans le mode invite de commande, ceci doit donnera à l’écran : « :q », voir le screenshot ci-dessous. Si vous n’avez pas enregistré, mais que vous avez modifié votre document, Vim va vous faire une alerte pour vous prévenir.
  • Pour enregistrer, la lettre « w » comme « write » suffit dans le mode invite de commande, ceci donnera à l’écran : « :w », voir le screenshot ci-dessous.
  • Et les deux en même temps ? Bas oui, c’est ennuyant de faire : « :w » puis « entrer » puis « :q » puis « entrer ». Pas de soucis, vous pouvez juxtaposer les commandes, ainsi pour enregistrer et quitter vous pouvez simplement faire : « :wq » puis « entrer ».
  • Je veux quitter ce truc, mais sans enregistrer ? On peut ? Oui, pour forcer une action dans Vim, il suffit de la faire suivre du caractère « ! », ainsi quitter sans enregistrer devient : « :q! »
vim_save_file

Nommer le fichier à enregistrer

vim_quit

Quitter Vim

vim_write_quit

Enregistrer et Quitter en même temps

Nice hein ? Comment ça vous avez une erreur ? [No file name] ?

Bien entendu, en tapant simplement « vi » dans le terminal nous n’avons ouvert aucun fichier, si vous souhaitez donc l’enregistrer, il faut le nommer. Pour cela, après votre commande : « :w » ou « :wq », faite un espace puis le nom du fichier comme ci-dessous. Attention, l’extension du fichier n’est pas automatique, à vous de l’écrire.

 

vim_save_file

Nommer le fichier à enregistrer (toto.txt)

 Ouvrir un fichier avec Vim

Ceci est assez simple, pour ouvrir un fichier, lorsque vous taper « vi » dans le terminal, vous le faites suivre du fichier à ouvrir par exemple : « vi toto.txt »

Annuler une action

Houla, mais oui, commande+Z ça ne marche pas dans Vim, j’ai écrit des trucs qu’il ne fallait pas et je ne sais pas comment faire pour revenir en arrière, il gère ça Vim ?
Non …  je rigole, bien entendu, en mode administrateur appuyez sur la touche « u » qui aura pour effet de « undo » la dernière action, défaire la dernière action en français.

Dans l’exemple ci-dessous j’ai écrit trois fois « toto » sur chaque ligne puis j’ai fait un « undo », notez que ce qui a été retiré est indiqué en bas à gauche de la fenêtre.

vim_undo

Une fois les 3 lignes annulées

 

Une fois les 3 lignes annulées

Voila, juste un petit dernier pour la route et après on arrête :

La coloration syntaxique et le numérotage des lignes

Vim est très intelligent, pour vous aider il est capable de faire de la coloration syntaxique pour que les différents éléments du fichier que vous éditez soient plus visibles. Pour ce faire il faut passer par l’invite de commande de Vim et saisir la commande suivant : « :syn on »
syn est le diminutif de syntax et on pour indiquer que l’on souhaite l’activer, comme vous vous en doutez, si vous refaite la commande avec « off » cela arrêtera la coloration syntaxique.

Voici l’exemple d’un fichier que vim reconnait et qu’il peut donc colorer, il arrive que Vim ne sache pas nativement gérer certain type de fichier, il faudra a ce moment soit vous en passer, soit chercher sur internet les plug-ins à installer pour prendre en compte ce type de fichier.

vim_syntax_off

Vim sans la coloration syntaxique

vim_syntax_on

Vim avec la coloration syntaxique

Pour finir cet article, nous allons voir comment dire à Vim de numéroter les lignes, il peut être pratique par moment de savoir à quelle ligne nous nous trouvons. Pour cela nous allons à nouveau saisir une commande dans l’invite de commande de Vim: « :set nu ».
Sous le mot clé « set » se cache nombre de paramètres possible, dans notre cas nous allons utiliser « nu » qui est le diminutif de « number » et aura pour action de numéroter les lignes comme ci-dessous :

vim_set_number

Vim avec la numérotation des lignes

 

Voilà, nous allons nous arrêter ici pour le moment.
J’espère que l’article vous aura plus. Si vous voulez en savoir plus, voici un site restant assez superficiel  lui aussi, mais qui présente tout de même plus de fonctionnalité. Et puis, si vous souhaitez que je vous présente plus de fonctionnalité, n’hésitez pas à le demander dans les commentaires, ce sera avec plaisir.

http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/

À bientôt,
Cordialement,
Arck