Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Expressions régulières
  3. vi, le premier éditeur plein écran
Extrait - Expressions régulières Syntaxe et mise en œuvre (avec exercices et corrigés) (2e édition)
Extraits du livre
Expressions régulières Syntaxe et mise en œuvre (avec exercices et corrigés) (2e édition) Revenir à la page d'achat du livre

vi, le premier éditeur plein écran

Description 

vi est l’éditeur plein écran de ex, l’éditeur ligne dérivé de l’éditeur ed que nous avons vu dans le chapitre précédent. Il a été écrit par Bill Joy à une époque où les progrès techniques ont permis l’apparition de terminaux à écran cathodique, en remplacement des terminaux papier (les télétypes ou TTY), et l’augmentation de la vitesse des lignes série, avec un passage de 300 bauds à 600, 1200, 2400, 4800, puis 9600, etc. Le transfert d’une page d’écran pouvait alors se faire dans un temps comparable, puis inférieur à celui de l’écriture d’une ligne sur un TTY.

Dans les débuts, l’éditeur plein écran affichait une fenêtre d’environ 25 lignes sur le fichier à éditer. Ses commandes, plus simples que celles de ed et ex pour manipuler le texte, ont apporté un plus grand confort aux utilisateurs d’éditeurs de texte. Ces derniers ont alors délaissé les éditeurs lignes au profit de vi, mais pouvaient toujours bénéficier de leur puissance pour les traitements automatiques, grâce à la présence de ex, accessible depuis vi.

Principe de fonctionnement 

1. Généralités 

vi, comme ed et ex, dispose d’un mode commandes et d’un mode de saisie de texte. Le mode commandes permet les déplacements du curseur, ainsi que l’utilisation d’un grand nombre de fonctions. Le mode saisie ne permet que la saisie de texte.

Les commandes de base de vi sont des commandes à une lettre, éventuellement combinables. Leur nom n’étant pas toujours très explicite, leur mémorisation n’est pas toujours aisée, mais elle est grandement facilitée par une utilisation quotidienne.

Certaines commandes, comme les commandes de remplacement ou suppression de caractères, utilisent un argument pour délimiter leur portée. Cet argument peut être une commande ou un déplacement de curseur. La position du curseur est appelée position courante, et détermine le caractère courant et la ligne courante.

Nous ne verrons dans la suite de ce chapitre que quelques commandes de base de vi, permettant de créer et modifier un fichier, et bien sûr d’utiliser les expressions régulières. Pour plus d’informations sur les nombreuses commandes disponibles, il faudra consulter la documentation disponible, notamment la page de manuel de vi.

2. Rappel de quelques commandes 

a. Édition d’un fichier 

L’éditeur vi permet d’éditer un ou plusieurs fichiers. Lors de son lancement, on doit lui passer la liste des fichiers à éditer...

Les expressions régulières 

1. Généralités 

Les expressions régulières de vi sont des expressions régulières basiques, comme celles de ed ou grep. Elles sont utilisées lors des recherches de chaînes de caractères. Nous ne traiterons pas dans ce chapitre de l’utilisation des expressions régulières dans les substitutions de chaînes (s/.../.../) car il ne s’agit alors pas de vi mais de son mode ligne : c’est donc ex qui fait le travail, et non pas vi. Le traitement des expressions régulières sous vi proprement dit est donc très limité. 

Certains paramètres de vi / ex influent sur l’interprétation des expressions régulières. Ce sont les suivants :

  • ignorecase (ou ic, en mode abrégé),

  • fullre, qui a existé dans certaines versions de vi, mais qui a maintenant disparu et semble n’être documenté nulle part.

Le paramètre ignorecase permet d’ignorer la casse des caractères, et de traiter indifféremment les lettres majuscules et minuscules. Ce mode est activé de la façon suivante :

Syntaxe

:set ignorecase 

ou

:se ic 

Dans ce mode, la recherche de la chaîne abc permettra de localiser par exemple abc, aBc, Abc, ou encore ABC.

Pour revenir au mode distinguant les minuscules des majuscules, on utilisera la commande permettant de spécifier que vi ne doit pas ignorer la casse des caractères. 

Syntaxe

:set noignorecase 

ou

:se noic 

Le paramètre fullre permettait de passer en mode de reconnaissance des expressions régulières étendues. Il a été présent dans quelques...