Vous êtes sur la page 1sur 22

Systèmes Répartis UNIX Editeurs de Texte

Sommaire
INTRODUCTION...........................................................................................................................2
1.FONCTIONNEMENT..................................................................................................................3
1.1 Lancement...............................................................................................................................3
1.2 Modes de Travail....................................................................................................................5
1.3 Cas pratique............................................................................................................................6
2.COMMANDES............................................................................................................................7
2.1 Conventions d'écriture..........................................................................................................7
2.2 Commandes............................................................................................................................7
3.VARIABLES..............................................................................................................................14
4.AUTRES EDITEURS................................................................................................................17
4.1 VIM........................................................................................................................................17
4.2 KEDIT DE KDE...................................................................................................................17
4.3 EMACS DE GNU.................................................................................................................18
4.4 Editeur de l'interface graphique CDE...............................................................................21
CONCLUSION.............................................................................................................................22

Index des tableaux


Tableau 1 : Déplacement du curseur............................................................................................7
Tableau 2 : Insertion......................................................................................................................8
Tableau 3 : Recherche..................................................................................................................9
Tableau 4 : Remplacement de Texte..........................................................................................10
Tableau 5 : Effacement de Texte................................................................................................10
Tableau 6 : Transfert de Texte....................................................................................................11
Tableau 7 : Registres nommés....................................................................................................11
Tableau 8 : Commandes "ex" (ou de bas de page).....................................................................12
Tableau 9 : Fin de session VI......................................................................................................13
Tableau 10 : Commandes diverses.............................................................................................14
Tableau 11 : Commutateurs........................................................................................................15

Edition octobre 2009 23243481.doc Page 1 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Chapitre 3 : Editeurs de texte

INTRODUCTION
Le but essentiel de ce chapitre est de présenter l'éditeur de texte le plus connu et le plus utilisé du
monde Unix : l'éditeur VI (pour visual). Cet éditeur est un héritage de la version BSD d'UNIX.
C'est un programme rescapé des terminaux non graphiques (mode caractère ) qui ne nécessite
pas l'utilisation d'une souris pour éditer du texte. Les seules touches du clavier permettent de
mettre en œuvre les nombreuses fonctionnalités de l'éditeur.

Cependant beaucoup d'utilisateurs rebutent à utiliser cet éditeur même s’il offre des
fonctionnalités puissantes pour aider les programmeurs.
L'administrateur, en cas de nécessité, va pouvoir à l'aide de cet éditeur, soit modifier des fichiers
de configuration des services du système d'exploitation, soit écrire des scripts d'administration.
L'administrateur peut être aussi obligé de s'en servir dans les plus mauvais moments, c'est à dire
lorsque plus rien d'autre ne fonctionne (interface graphique par exemple).
Dans le cas où l'utilisateur travaille directement sur la station UNIX, il peut disposer d'un interface
graphique et donc d'un éditeur graphique associé à l'interface fournie.
Dans le cas fréquent où l'utilisateur (voire l'administrateur) se connecte sur la station UNIX
depuis sa station bureautique, par exemple en émulant un terminal sous Windows, il n'aura pas
accès à l'interface graphique. Alors l'éditeur VI reste le seul moyen d'opérer sur la station.
Le manque de standard en matière d'interface graphique entraîne celui de l'éditeur graphique.
Mais l'éditeur VI, quant à lui, est présent sur toute version d'UNIX.
Toutes ces raisons non exhaustives tendent à prouver l'utilité d'un tel éditeur.

S'il s'avère utile, quelles sont les limites d'un tel éditeur aussi rustique ? L'auteur du document a
testé avant d'en avoir la confirmation écrite qu'il est limité aux fichiers de 64Mo ou de 1.100.000
lignes. Il existe d'autres limites mentionnées dans l'aide en ligne.

Ce document est écrit pour aider les utilisateurs débutant dans la mise en œuvre de l'éditeur VI, il
se limite à une énumération partielle de ses fonctionnalités les plus communes ou les plus utiles.
Dans la quatrième section, quelques éditeurs de texte graphiques d'UNIX sont sommairement
abordés.

Edition octobre 2009 23243481.doc Page 2 sur 22


Systèmes Répartis UNIX Editeurs de Texte

1. FONCTIONNEMENT
Le mot VI se prononce conventionnellement "vi aï".

L'éditeur fait partie de la famille ancienne des éditeurs dits de pleine page. Cela signifie qu'une
fois lancé, il occupe l'intégralité de l'écran du terminal. Seule la fermeture de l'éditeur permet à
l'utilisateur de retrouver l'invite de commandes.
Si le fichier édité ne remplit pas l’écran , il effectue du bourrage à l’aide du signe « ~ » en début
de ligne.
L'éditeur VI utilise principalement deux modes de travail, le mode "commande" et le mode
"insertion".
Son fonctionnement est lié à la définition du terminal sur lequel il est exécuté.
Il est possible de changer le comportement de VI, lors d'une session ou de manière durable, en
modifiant ses variables d'environnement (ou "commutateurs").
Il utilise pendant une session un fichier temporaire (sous /tmp) et un tampon d'édition.

1.1 Lancement

L'éditeur VI se lance soit directement sur un terminal en mode caractère, soit dans une fenêtre
xterm sous un terminal graphique, ou depuis une session telnet.
Pour lancer l'éditeur, saisir la commande :
vi [-option] NomDuFichier
Comme pour toute commande, il faut faire précéder le nom du fichier par le chemin de recherche.

Remarque :
L'éditeur VI, utilisant la fenêtre entière, a besoin de savoir quel type de terminal est configuré.
Pour les utilisateurs qui travaillent en local sur la station, il n'existe pas de problème de
fonctionnement.
Pour ceux qui se connectent à distance via des émulateurs, il peut subvenir quelques
dysfonctionnements si le terminal défini dans l'émulateur n'est pas le même que celui défini sur la
station (vt100 en général). Pour régler le problème, il convient d'effectuer les opérations suivantes
:
• se renseigner sur le type de terminal utilisé sur la station (echo $TERM)et sur l'émulateur,
• changer le type de terminal côté émulateur, sinon côté station en contact avec l'administrateur.

Si le fichier existe à l'endroit mentionné par le chemin, celui-ci est lu par VI et le curseur se place
au début de la première ligne.
Si le fichier n'existe pas, une page vide est affichée à l'écran, chaque début de ligne étant signalée
par le caractère "~" (tilde). L'exemple de la figure 1 est relatif à un fichier "bienvenue" qui
n'existe pas.
Lorsqu’on ouvre un fichier, VI le charge dans un tampon (buffer) et l’affiche à l’écran. Lorsque le
fichier est sauvegardé, VI enregistre le tampon sur le disque en écrasant l’ancien fichier si celui-ci
existait.

Edition octobre 2009 23243481.doc Page 3 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Figure 1
Remarques :
• Il est possible de lancer l'éditeur sans options ni arguments. Les versions d'UNIX standard
affichent une page vide. Seul LINUX affiche un écran d'accueil déconcertant (à éviter, « :q »
pour sortir).
• Comme toute commande UNIX, il est possible d'indiquer plusieurs noms de fichiers en
arguments. La partie "commandes de bas de page" expliquera comment circuler entre les
fichiers édités.

La syntaxe indique que l'éditeur dispose d'options. Voici quelques unes des plus usitées :
-r Liste les fichiers sauvegardés en zone de swap après un arrêt brutal de l'éditeur
(coupure de courant par exemple)
-R En lecture seulement
+numéro Amène le curseur sur la ligne indiquée par le numéro (sert au débogage)
+/chaîne Amène le curseur au début de la ligne contenant la première occurrence de la
chaîne

Avertissements :
Il y a deux choses à éviter lors de l'utilisation des stations :
1. éditer simultanément le même fichier sur deux terminaux
Sous LINUX, le deuxième fichier ouvert est un fichier caché (premier caractère égal à ".")
avec extension ".swp". Il est conseillé de fermer l'éditeur, en le forçant s'il le faut. Puis il
faut supprimer la copie du fichier à extension ".swp" pour retrouver un fonctionnement
normal.
2. changer la taille de l'écran dans son émulateur de terminal ou pseudo-terminal.

On peut changer la taille de l'écran en tirant sur les côtés de la fenêtre. Si le


redimensionnement ne fonctionne pas correctement, la commande à taper est :
eval `resize` (ou eval `/usr/bin/X11R6/resize`)

Edition octobre 2009 23243481.doc Page 4 sur 22


Systèmes Répartis UNIX Editeurs de Texte

1.2 Modes de Travail

Il existe deux modes principaux de travail dans VI :


• mode commande
• mode insertion (ou édition)

La philosophie de VI est d'alterner entre ces deux modes de fonctionnement.


Un certain nombre d'ouvrages sur UNIX évoque un troisième mode : commandes de bas de page
ou commandes ex précédées du caractère " : ". Elles font référence à un ancien éditeur ex. Dans
ce document, on ne considère que les deux modes principaux.

Au lancement de VI, on est en mode commande.


Pour insérer du texte, il faut utiliser une commande pour passer en mode d'édition, puis ajouter le
texte voulu. Une fois l'édition terminée, l'utilisateur doit acquérir l'automatisme de revenir en
mode commande en appuyant sur la touche Echap, quelque soit le mode en cours. Si nous étions
déjà en mode commande, une sonnerie d'avertissement se fait entendre.

Les commandes utilisées dans VI sont des combinaisons de touches du clavier. En mode
commande, chaque touche a une signification autre que la valeur de la lettre. Par exemple, « i »
devient une commande de passage en mode édition (insertion à partir de la position du curseur).

Figure 2
Attention : l'éditeur VI différencie les minuscules des majuscules ! Ceci peut créer des incidents
de manipulation, mais surtout augmente le nombre de commandes disponibles.

Remarques :
• Toutes les commandes issues de ex commencent par un caractère « : ». Elles apparaissent en
bas de l’écran à gauche et doivent être validées pour être exécutées (touche Entrée).

• Par défaut, pour renseigner l'utilisateur sur le mode courant, l'éditeur affiche celui-ci en bas à
gauche de l'écran (figure 2). S’il n’est pas affiché, cela veut dire que l'utilisateur est mode
commande.
L’affichage du mode courant correspond à une préférence de fonctionnement de l'éditeur.
Celles-ci seront vues dans la section "VARIABLES" (paramètre showmode).

Edition octobre 2009 23243481.doc Page 5 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Si le commutateur showmode est activé, l'éditeur affiche en bas à gauche le mode d'insertion :
INSERT, APPEND ou REPLACE (remplacement), ou encore VISUAL (inverse vidéo) pour
la version VIM.

1.3 Cas pratique

Si les explications qui viennent d’être données paraissent obscures, nous allons éclaircir tout cela
avec quelques exemples.
Commençons donc par éditer un nouveau fichier : $ vi bienvenue
Nous voici donc dans VI et en mode commande. On voit apparaître en bas de l’écran un message
« bienvenue » [New File], indiquant qu’il s’agit d’un nouveau fichier. A présent, on passe en
mode insertion avec la commande « i » puis on tape un texte quelconque. Enfin on repasse en
mode commande avec la touche Echap.
Il est possible de sauvegarder la saisie effectuée à l'aide d'une commande ex : :w (figure 3).

Figure 3

L'enregistrement réalisé, l'éditeur nous renseigne en bas de l'écran : 1 ligne, 44 caractères (figure
4).

Figure 4

Edition octobre 2009 23243481.doc Page 6 sur 22


Systèmes Répartis UNIX Editeurs de Texte

On peut, à présent, continuer à insérer du texte. En mode insertion, on peut ajouter une ligne en
validant la touche Entrée, supprimer du texte avec la touche "retour arrière", se déplacer avec le
pavé de flèches du clavier.
Une fois l'édition terminée, on enregistre les changements et quitte l'éditeur en une seule
commande ZZ. Notons qu’il s’agit de majuscules et que les caractères n’apparaissent
effectivement pas. Nous voici revenus à l’invite de commandes du shell.

2. COMMANDES
Cette section présente une liste conséquente des commandes à utiliser uniquement en mode
commande.

2.1 Conventions d'écriture

[option] désigne les parties facultatives d'une commande.


[n] signifie qu'un nombre peut précéder la commande.
{expression variable} désigne la valeur de l'argument qui suit la commande.

Voici quelques abréviations de caractères les plus couramment utilisées :


<Echap> caractère d'échappement
<Espace> caractère "espace" ou barre d'espacement
↵ touche "Entrée"
^ touche "Ctrl"

D'une manière générale, les arguments des commandes sont en style gras et les valeurs prises par
ces arguments en style italique.

2.2 Commandes

Ces commandes sont regroupés par groupes de fonctionnalités au sein de tableaux : déplacement
du curseur, recherche, passage en mode d'édition, effacement, remplacement, transfert de texte,
tampons d'édition, commandes ex, fin de session, etc…

Tableau 1 : Déplacement du curseur

Edition octobre 2009 23243481.doc Page 7 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Le déplacement à l’aide des touches hjkl fonctionne sur tous les terminaux, mais le déplacement à
l’aide des flèches lui est préférée.

Commande Signification
← ou h Déplacement du curseur d'un caractère vers la gauche.
↓ ou j Déplacement d'une ligne vers le bas.
↑ ou k Déplacement d'une ligne vers le haut.
→ ou l Déplacement du curseur d'un caractère vers la droite.
- Déplacement du curseur au début de la ligne précédente.
+ Déplacement du curseur au début de la ligne suivante.
$ Déplacement du curseur en fin de la ligne.
0 ou ^ Déplacement du curseur en début de ligne.
Z↵ Déplace le texte de façon à ce que la ligne courante se trouve en haut de
l'écran.
f{car} Déplacement du curseur jusqu'au premier caractère "car" de la ligne
courante.
b Déplacement du curseur d'un mot vers la gauche.
w Déplacement du curseur d'un mot vers la droite (en début de mot).
e Déplacement du curseur sur le dernier caractère du mot courant.
B, W, E Mêmes fonctions que b, w, e en ignorant la ponctuation.
M Déplacement du curseur jusqu’au milieu de l’écran.
L Déplacement du curseur jusqu’à la dernière ligne de texte.
H Déplacement du curseur jusqu’à la première ligne de texte.
^D Déplacement d'une demi-page vers le bas.
^U Déplacement d'une demi-page vers le haut.
Page down ou ^F Page suivante (Forward a page).
Page up ou ^B Page précédente (Backup a page).
% Si le curseur était placé sur une parenthèse ou une accolade, qu'elle soit
ouvrante ou fermante, cette commande place le curseur sur le signe
correspondant (commande utilisée par les programmeurs pour déboguer).
[n]>> Indentation de n lignes à partir de la ligne courante.
[n]<< Désindentation de n lignes.
[n]| Déplacement du curseur jusqu’à la colonne <n>
[n]G Déplacement du curseur jusqu'à la ligne indiquée : <1G> Début de fichier,
<G> Fin de fichier.
:0 ↵ Déplacement vers la 1ère ligne du fichier, ou la dernière ligne (:$ ↵).
:[n] ↵ Déplacement vers la <n>ème ligne (utile pour les programmeurs en phase de
débogage).

Tableau 2 : Insertion

Commande Signification
a append : ajouter à la suite.
Edition octobre 2009 23243481.doc Page 8 sur 22
Systèmes Répartis UNIX Editeurs de Texte

Le texte est inséré immédiatement après la position du curseur.


A Le texte est inséré à la fin de la ligne courante.
i insert : insérer.
Le texte est inséré immédiatement avant la position du curseur.
I Le texte est inséré au début de la ligne courante.
o open new line : ouvrir nouvelle ligne.
Une nouvelle ligne est insérée après la ligne courante.
O Une nouvelle ligne est insérée avant la ligne courante.
Echap Sort du mode insertion.

Tableau 3 : Recherche

D'une manière générale, les chaînes de caractère indiquées en argument derrière des commandes
sont désignées sous le terme général d'expressions régulières.
Ces expressions régulières sont des modèles de chaîne qui, plutôt que de définir complètement un
texte, n'en donnent qu'une forme générique pour signifier des expressions.
Ils contiennent donc des caractères génériques de substitution dûment interprétés par le système :
ce sont les caractères spéciaux ou méta-caractères tels les caractères "*" ou ".".
En dehors de ces caractères, le système met à note disposition d'autres caractères comme les
crochets pour fixer avec précision les critères de recherche.
Pour définir le critère de recherche, l'utilisateur utilise un ou plusieurs modèles ou motifs
(pattern en anglais).

Commande Signification
/{chaîne} ↵ Recherche vers la fin du fichier de l'occurrence "chaîne".
?{chaîne} ↵ Recherche vers le début du fichier de l'occurrence "chaîne".
// et ?? Idem, mais délivre toutes les occurrences de la chaîne.
n Répétition de la dernière recherche.
N Répétition de la dernière recherche, mais dans l'autre sens.
/^{str} ↵ Cherche la prochaine ligne qui commence par la chaîne str.
. Remplace n'importe quel caractère simple dans une expression régulière.
* Répète plusieurs fois le caractère précédent dans une expression
régulière.

Voici quelques exemples concernant la recherche de :


• l'article "de" ou "De" : /[dD]e
• tous les mots de 2 lettres commençant par une majuscule et finissant par "e" en définissant une
plage de caractères "A-Z" : /[A-Z]e
• tous les caractères exceptés les minuscules : /[^a-z]
• tous les mots de 4 lettres finissant par "oto", le point représentant un caractère quelconque :
/.oto
• tous les mots finissant par "to" précédés de N fois la lettre "o" : /o*to

Edition octobre 2009 23243481.doc Page 9 sur 22


Systèmes Répartis UNIX Editeurs de Texte

• tous les mots dont la ligne commence (ou finit) par "to" : /^to (ou /to$)
Dans certaines situations, ce sont ces caractères spéciaux qu'il faut rechercher dans le texte. Il faut
au préalable verrouiller (ou désactiver) leur fonction spéciale. Pour cela, il suffit de placer le
caractère spécial "\" devant celui qui est à rechercher.
Voici un exemple où l'on cherche une étoile derrière une lettre "a" : /a\*.

Tableau 4 : Remplacement de Texte

Commande Signification
[n]r{caractère} Remplace n caractères situés depuis la position courante du curseur.
R Remplace le reste de la ligne courante à partir du curseur.

Le temps du remplacement, la fin de la zone à remplacer est marquée du signe "$" ou le mot
REPLACE apparaître en bas à gauche.

cw{texte}<Echap> Change word : changer un mot.


Remplace le mot en commençant à la position courante du curseur. Il est
nécessaire de taper <Echap> pour revenir en mode commande.
c0 ou c$ Remplace depuis la position du curseur vers le début (ou fin) de la ligne.
cf{car} Remplace depuis la position du curseur jusqu'au 1er caractère "car" trouvé
sur la ligne.
c/{mot} Remplace jusqu'à la 1ère chaîne "mot" trouvée (signe "$" apparent).
cc Remplace la ligne entière.
:s/{chaîne1}/{chaîne2}/ substitute : substituer.
[option] ↵
Remplace la 1ère occurrence « chaîne1 » par « chaîne2 » dans la ligne
courante.
L'option g (=global) remplace toutes les occurrences "chaîne1" d'une
ligne.
L'option c (= confirm) demande confirmation avant remplacement.
:x,ys/… Remplace la 1ère occurrence trouvée de chaque ligne comprise entre les
lignes numéro x et numéro y.
Le "." indique la ligne courante.

Tableau 5 : Effacement de Texte

Les touches Del ou Suppr ne fonctionnent généralement pas sous l'éditeur VI (excepté sous Vim
de LINUX). En revanche, la touche "Retour arrière" ou "Backspace" (bs) fonctionne. Dans ce cas,
le mot REPLACE peut apparaître en bas de l'écran le temps du remplacement.

Commande Signification
[n]x Effacement de n caractères à partir de la position le curseur.
Edition octobre 2009 23243481.doc Page 10 sur 22
Systèmes Répartis UNIX Editeurs de Texte

[n]X Effacement de n caractères précédent la position du curseur.


[n]dd Effacement de n lignes (correspond à l'opération couper, le contenu n'est
pas perdu).
[n]dw (ou [n]dW) Supprime n mots (en ignorant la ponctuation).
d/{str} ↵ Efface tout depuis le curseur jusqu'à la première occurence de str.
db Effacement jusqu’au mot précédent.
d^ ou d0 Efface de la position actuelle du curseur jusqu'au début de la ligne.
d$ ou dG Efface de la position actuelle du curseur jusqu'au à la fin de la ligne.
D Efface la ligne à partir de la position courante du curseur.
[n]s Supprime n caractères et passe en mode insertion.

Tableau 6 : Transfert de Texte

L'éditeur VI dispose pour toutes les commandes de suppression ou de transfert de texte d'un
tampon principal ou registre temporaire.

Commande Signification
[n]yy yank : capturer
Copie la ligne courante dans un tampon sans l'effacer
y /{str} ↵ Copie depuis le caractère courant, jusqu'à la chaîne "str" dans le tampon.
y$ Met la fin de la ligne dans le tampon.
p put buffer : récupérer tampon
Insertion du contenu du tampon après le curseur (opération "coller")
S'il s'agit d'une ligne capturée par yy ou dd, celle-ci est insérée à partir de
la ligne suivant celle du curseur.
Si le tampon contient un mot, celui-ci est inséré immédiatement après le
curseur.
P Put buffer : récupérer tampon
Idem que la commande précédente mais le contenu du tampon est inséré
avant.
:15,17m23 ↵ Déplacer les lignes 15 à 17 en ligne 23 (cette dernière doit exister).
:10,18co25 ↵ Copie les lignes 10 à 18 en ligne 25 (ou :10,18t25).

Tableau 7 : Registres nommés

L'éditeur VI, outre le tampon principal, dispose de 36 tampons ou registres nommés pour
conserver des morceaux de texte (26 pour les lettres, 10 pour les chiffres).
Peu d'utilisateurs utilisent les autres tampons. Le bloc de texte peut être placé dans un autre
tampon demandé en utilisant la commande « " ». Après avoir tapé « " », une lettre ou un chiffre
identifiant le tampon doit être entré. Voici quelques exemples.

Commande Signification
Edition octobre 2009 23243481.doc Page 11 sur 22
Systèmes Répartis UNIX Editeurs de Texte

“ayy Met la ligne courante dans le registre "a".


“bdd Détruit la ligne courante et la range dans le registre "b".
“ap Insère le contenu du registre "a" après la ligne courante.
“bP Insère le contenu du registre "b" avant la ligne courante.

Remarque : si l'utilisation des tampons "lettre est aisée, celui des tampons "chiffre l'est moins.
Voici un exemple d'utilisation de ces derniers à l'aide d'un fichier de 4 lignes.

1. toto tata
2. titi tutu
3. tata
4. tutu toto
titi

La première opération consiste à supprimer les deux 1ères lignes (2dd), leur contenu va dans le
1er tampon "1 ou tampon principal.
La deuxième vise à supprimer les 2 autres lignes. Leur contenu va se ranger à la place des 2
lignes précédentes dans le premier tampon, et le contenu du 1er tampon dans un 2ème tampon "2.
Cette opération peut se répéter jusqu’au 9ème tampon.
Le contenu du tampon "x est rappelable par la commande "xp (guillemet, puis chiffre, puis
« p »).

Tableau 8 : Commandes "ex" (ou de bas de page)

On passe du mode commande au mode bas de page en tapant sur ":", ce qui a pour effet de placer
le curseur au bas de l'écran. Toutes les commandes ex doivent être validées par ↵.

Commande Signification
:f Affiche le nom du fichier actif et le nombre de lignes.
:w%[n] Le caractère % possède une signification particulière. En effet, %
représente le nom courant du tampon, c’est à dire le nom du fichier ouvert
au lancement de l'éditeur. Ainsi, en utilisant la commande :w%2, les
modifications sont enregistrées sous le nom fichier2 dans le répertoire
courant.
:w[!]<espace>[fic] Le fichier courant est écrit sur le disque.
Un nom de fichier en option permet d'enregistrer sous…(ou :file nom).
:x,yw<espace>{fic} Ecriture des lignes x à y dans le fichier « fic ».
:x,yw>>{fichier} Ajoute les lignes x à y à la fin du fichier fichier.
:r{fichier} Insère le contenu du fichier indiqué en argument à partir de la ligne qui suit
le curseur (ou commande :read).
:r<espace>!cmd Insère le résultat de la commande (ou !! cmd).
:e[!]<espace>{fic2} Ouvre le fichier fic2 en écrasant le fichier courant après confirmation.

L'option "!" employée derrière la commande force l'éditeur à exécuter la commande, malgré un
avertissement.
Edition octobre 2009 23243481.doc Page 12 sur 22
Systèmes Répartis UNIX Editeurs de Texte

Il est possible d'éditer plusieurs fichiers. Il existe des commandes ex de gestion des différents
fichiers ouverts. Les commandes "copier" (yy), "couper" (dd) et "coller" (p) sont disponibles d'un
fichier à l'autre.

:n :n
Fic1 Fic2 Fic3

:N :N
:rew

:n<espace>{fichier} Ouvre le 2ème fichier fichier.


Sans arguments, permet de basculer d'un fichier édité au suivant (voir
schéma).
:N Permet de basculer d'un fichier édité au précédent (voir schéma).
:arg Montre la liste des fichiers édités, et met entre crochets celui qui est actif à
l’écran.
:rew Retourne au 1er fichier édité.

Sans quitter l'éditeur, il est possible aussi de lancer une commande, d'écrire un script shell (:sh),
d'exécuter une commande sur une expression régulière donnée (:x,y/str/cmd), de trier le fichier en
cours d'édition (:%!sort), etc…

:!{cmd} Exécute une commande sans sortir de VI


:set<espace>[option] Préférences de fonctionnement de l'éditeur. Voir section VARIABLES.

Tableau 9 : Fin de session VI

L'ajout du "!" derrière les commandes suivantes permet de forcer l'éditeur en cas d'incident, ou
d'édition d'un fichier non accessible en écriture.

Commande Signification
:x[!] Sortie avec sauvegarde.
:w[!] Sauvegarde sans sortie.
:q[!] Sortie sans sauvegarde.
ZZ Sortie avec sauvegarde.

Edition octobre 2009 23243481.doc Page 13 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Tableau 10 : Commandes diverses

Commande Signification
. Rappel de la dernière commande.
& Répète la dernière commande de substitution après avoir positionné le
curseur au début de la chaîne à remplacer.
~<espace> Change les minuscules en majuscules (ou vice versa).
u undo : défaire
Annule la dernière commande qui a modifié le contenu du tampon.
U Annulation de toutes les commandes de modification de texte affectant la
ligne.
J Join lines : Joindre lignes.
Jonction de la ligne courante et de la ligne suivante. J supprime le
caractère de fin de ligne <nl>, les deux lignes sont jointes.
^V En mode d'insertion , il est possible d'insérer des caractères de contrôle.
^l Rafraîchissement de l'écran.
^G Affiche le nom du fichier, le N° de ligne courante, le nombre de lignes
totales, le pourcentage d'affichage.
:ab<espace>{abrev} La seule frappe de abrev suivi d'un espace d'une tabulation ou d'un retour
<espace> chariot remplace abrev par texteàinsérer.
{texteàinsérer} Pour retirer une abréviation, la commande est ":unab abrev".
Pour obtenir la liste des abréviations : ":ab".
:map Des commandes d'association sont possibles en mode commande.
Le "mappage" fonctionne de façon similaire à une abréviation, il faut
indiquer la séquence de touches à remplacer suivie par celle de
remplacement.

3. VARIABLES
L'éditeur VI possède un certain nombre de variables d'environnement paramétrables ou options
que l'on peut positionner pour produire des effet spéciaux.
Ces options se présentent sous deux formes :
• les variables à 2 états : actifs ou non (ou bascules internes, ou commutateurs, ou
switchs),
• les variables numériques ou alphanumériques.

Les options à deux états sont :


• activées par : :set [option] ↵
• désactivées par :set no[option] ↵

Le premier exemple que l'on peut fournir concerne la numérotation des lignes avec l'option nu :
• Pour installer la numérotation : :set nu
Edition octobre 2009 23243481.doc Page 14 sur 22
Systèmes Répartis UNIX Editeurs de Texte

• Pour la retirer : :set nonu

Les options à valeurs numériques ou alphanumériques sont activées par une commande du style :
:set option=valeur ↵

Le premier exemple fourni concerne la valeur du taquet de tabulation (ici 4 colonnes) :


:set tabstop=4.

Pour afficher la table de tous les paramètres, il faut taper :


:set all (Voir la liste de tous les paramètres du tableau 11)

Ces valeurs sont écrites dans un fichier de configuration associé à l'éditeur. Sous LINUX, ce
fichier se nomme : .vimrc (éditeur Vim). Le fichier .vimrc définit aussi les associations de
touches.

Les commandes passées au cours d'une session (:set) ne restent valides que le temps de la
session. Il est possible de modifier les valeurs par défaut pour le prochain lancement de VI.
Pour cela, plusieurs méthodes sont proposées :
• utiliser une variable d'environnement du système d'exploitation, modifier le fichier de
configuration actuel (.vimrc sous LINUX)
• ou lui substituer un autre fichier de configuration de remplacement (.exrc).

La première méthode consiste à placer la commande set appropriée dans la variable EXINIT et
l'exporter dans votre environnement (cas des shells sh ou ksh).

Exemple:
EXINIT='set ai aw terse sh=/bin/ksh'
export EXINIT
Ces instructions sont généralement placées dans le fichier .profile ou .login propre à l'utilisateur
connecté.
Dans le cas d'un shell csh, la commande "setenv EXINIT" place les paramètres dans le fichier
.cshrc.

Une autre possibilité de modifier ces valeurs consiste à placer ces instructions dans un fichier
.exrc (commandes ex) qui doit se trouver dans le répertoire de connexion de l'utilisateur.

Exemple de configuration d'un fichier .exrc


set nu ai ts=3 showmode # numérotation des lignes, indentation et tabulation et
affichage du mode d'insertion
:map #1 :wq! ^M # configuration de la touche F1 pour sauvegarder et
quitter
:ab esat "Ecole Supérieure et d'Application des Transmissions"
# remplacement du sigle "esat" par "Ecole Supérieure…"

Tableau 11 : Commutateurs
La commande set peut s'utiliser aussi bien avec la valeur littérale que la valeur abrégée.

Edition octobre 2009 23243481.doc Page 15 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Valeur littérale Abréviation Signification


autoindent ai Pour aligner sur la ligne précédente, ^D pour
annuler.
autowrite aw Mise à jour avant changement de fichier.
beautify bf Ignore certains caractères de contrôle.
directory=/tmp dir Répertoire des fichiers temporaires.
edcompatible Compatibilité avec l'ancien éditeur 'ed'.
errorbells eb Signal sonore sur erreur.
flash Flash d'écran en cas d'erreur
hardtabs=8 ht Longueur de taquet matériel
ignorecase ic Confond majuscules/minuscules dans une
recherche.
list Affiche les caractères invisibles (tabulation Î,
fin de ligne $).
magic Neutralisation automatique.
mesg Affichage des messages de l'utilitaire write.
number nu Numérotation des lignes.
noreadonly Lecture seulement.
redraw Simule un terminal intelligent.
ruler ru Affiche les coordonnées du curseur ( pas sur
HP-UX).
scroll=11 Taille de la demi-fenêtre.
shell=/bin/sh sh Interpréteur par défaut interne à l'éditeur.
shiftwidth=8 sw Largeur des retraits de ligne.
noshowmatch sm Montre la parenthèse ou l'accolade
correspondante à l'une d'entre elles
(fermeture ou ouverture).
noshowmode smd Affichage du mode de travail (INSERT ou
COMMAND), ou du mode d'insertion
(INSERT, APPEND, REPLACE). Ne
fonctionne pas avec tous les types de
terminaux.
tabstop=8 ts Valeur du taquet de tabulation en colonnes.
taglength=0 tl Longueur des marquants.
tags=tags /usr/lib/tags Localisation des marquants.
term=vt220 Type de terminal utilisé.
noterse Messages d'erreur courts.
ttytype=vt220 Type de terminal utilisé.
visualbell vb Inverse le BEEP par un effet visual.
warn Avertissement si sortie sans sauvegarde, ou
sortie forcée (!).
window=23 Taille de la fenêtre en nombre de lignes.
wrapscan Autorise les recherches circulaires.
wrapmargin=0 wm Distance du bord droit de la fenêtre à partir
Edition octobre 2009 23243481.doc Page 16 sur 22
Systèmes Répartis UNIX Editeurs de Texte

Valeur littérale Abréviation Signification


duquel le retour à la ligne se fait.

4. AUTRES EDITEURS
Malgré son apparence, l'éditeur VI n'était pas le premier conçu pour le monde UNIX. Il reprenait
les conceptions d'autres éditeurs tels que ed (commandes de recherche d'expressions régulières) et
ex (commandes de bas de page).
Les éditeur ed et ex sont des éditeurs ligne par ligne qui ne réagissent qu'aux commandes entrées
du clavier sans présenter le fichier de façon visuelle comme le fait VI.
Il existe un autre éditeur sed (Stream editor) qui lit un fichier d'entrée (stdin) et produit un fichier
de sortie (stdout). Les éditeurs ed, ex et sed sont généralement utilisés dans des scripts, alors que
l'éditeur VI sert plutôt de manière interactive.
Les éditeurs ed et VI sont intimement liés. Il est possible d'éditer un fichier sous ed puis de
basculer sous VI en cours de session ed (:vi).

Chaque version d'UNIX peut présenter son propre éditeur.

4.1 VIM

L'éditeur VI d'origine n'est plus présent sur les distributions LINUX. La version VIM (Vi
IMproved) l'a depuis longtemps remplacé (www.vim.org). Elle a apporté entre autres l'annulation
multi-niveaux (undo), la multi-édition et les 36 tampons, l'utilisation des touches de flèches du
clavier, l'alignement du texte et la coloration syntaxique.

Sans quitter l'éditeur, la commande :help permet de consulter l'aide en ligne.

Ces distributions proposent bien sûr des versions graphiques tels que gvim dont voici une copie
d'écran de la barre de menus et d'icônes (figure 5).

Figure 5
Les différentes icônes correspondent aux fonctionnalités les plus usitées.

4.2 KEDIT DE KDE

L'interface graphique le plus utilisé des distributions LINUX, KDE, offre lui aussi son propre
éditeur : kEdit.
Si l'on clique sur un fichier depuis l'explorateur ou le gestionnaire de fichiers de l'interface KDE,
le système lance par défaut cet éditeur.

Edition octobre 2009 23243481.doc Page 17 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Voici un aperçu de sa barre de menus et d'icônes.

Figure 6

4.3 EMACS DE GNU

En dehors des éditeurs précédemment cités, le plus référencé dans le monde LINUX reste l'éditeur
EMACS dont voici une copie d'écran (figure 7) en mode graphique.

Cet éditeur reste un éditeur plein écran. Il peut se lancer aussi bien sur un terminal non graphique
que sur un terminal graphique. Dans ce cas, le système LINUX ouvre un deuxième terminal
spécifique à l'emploi de cet éditeur.

Contrairement à l'éditeur VI, l'éditeur EMACS est un éditeur non modal, il est toujours en mode
insertion. On utilise les touches CTRL ou ALT pour passer des commandes.

Figure 7

Voici quelques premières commandes utiles à un premier emploi.

Commandes de manipulation de fichiers

Commande Signification
emacs fichier(s) Edite le ou les fichiers spécifiés
^xi Insère le contenu d'un fichier
^x ^s Sauvegarde le fichier courant
Edition octobre 2009 23243481.doc Page 18 sur 22
Systèmes Répartis UNIX Editeurs de Texte

^x ^c Quitte emacs sans sauvegarder


Commandes de déplacement

Commande Signification
Alt+> Déplacement à la fin du fichier
Alt+< Déplacement au début du fichier
^v Affichage de l'écran suivant
Alt+v Affichage de l'écran précédent
^x ] Affichage de la page suivante
^x [ Affichage de la page précédente
^n Passage à la ligne suivante
^p Passage à la ligne précédente
^a Déplacement au début de la ligne
^e Déplacement à la fin de la ligne
Alt+e Déplacement à la fin de la phrase (de ligne d'abord)
Alt+a Déplacement au début de la phrase
^f Avance d'un caractère
^b Recule d'un caractère
Alt+f Avance d'un mot (caractère précédent)
Alt+b Recule d'un mot

Commandes d'effacement

Commande Signification
Suppr Efface le caractère suivant
^d Efface le caractère courant
Alt+Suppr Efface le mot précédent
Alt+d Efface le mot suivant
^x Suppr Efface la phrase précédente
Alt+k Efface le reste de la phrase courante
^k Efface le reste de la ligne courante
^x u Annule la (toute) dernière modification

Rechercher/Remplacer-Commandes accessibles grâce à Alt+x query-replace

Commande Signification
y Faire le remplacement
n Ne pas faire le remplacement et chercher l'occurrence suivante
q Ne pas faire le remplacement et quitter la recherche (la touche Echap a
le même effet)
! Modifier cette occurrence et toutes celles qui restent

Commandes du système d'aide d'emacs accessible grâce à ^h

Commande Signification
A Liste toutes les commandes correspondant à un mot donné
B Liste toutes les définitions de touches
C Décrit toutes les séquences de touches que vous tapez, sans les exécuter
F Décrit la fonction indiquée
I Lance le système info
Edition octobre 2009 23243481.doc Page 19 sur 22
Systèmes Répartis UNIX Editeurs de Texte

K Description complète d'une séquence de touches


L Affiche les derniers 100 caractères tapés
M Décrit le mode dans lequel vous vous trouvez
N Afficher les nouvelles informations sur emacs
S Dresse la liste des syntaxes des commandes
T Démarre le système d'autoformation
V Définit et décrit une variable
W Indique la séquence de touches associée à une fonction
^c Affiche le copyright d'emacs et les informations sur sa distribution
^d Affiche les informations pour commander emacs
^n Affiche les dernières modifications d'emacs
^w Affiche la garantie d'emacs

Il existe une version plus graphique XEMACS, mais plus lourde en volume occupé sur disque
(figure 8). Chaque éditeur dispose de ses propres raccourcis de commande. Il offre des
fonctionnalités spécifiques à chaque langage de programmation utilisé.

Edition octobre 2009 23243481.doc Page 20 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Figure 8

4.4 Editeur de l'interface graphique CDE

Il permet de créer et éditer un document dans la fenêtre de l'éditeur de texte (figure 9). La barre de
titre affiche le nom du document courant. Un nouveau document est toujours appelé SANS
TITRE.

Edition octobre 2009 23243481.doc Page 21 sur 22


Systèmes Répartis UNIX Editeurs de Texte

Figure 9

La ligne d'état, affichable selon les besoins (options), indique le nombre de lignes du document et
permet d'atteindre un numéro de ligne donné. Elle affiche également les messages de l'éditeur de
texte et indique si le mode écrasement est activé.

CONCLUSION
Le document présent reste axé principalement sur l'éditeur VI, un éditeur demeuré rudimentaire
malgré les années. Aussi se doit-on d'expliquer, dans un premier temps, au jeune informaticien,
les raisons cachées qui poussent les utilisateurs d’UNIX avertis (administrateurs et programmeurs)
à l'apprécier.
Le document présente par ailleurs l'éditeur Emacs de GNU qui se révèle à l'usage être le
successeur potentiel le plus sérieurx de l'éditeur VI.
Enfin et surtout, le document ouvre la porte aux éditeurs graphiques. Ils ont toujours existé, mais
le manque de standard dans ce domaine fait qu'il existe autant d'éditeurs que d'interfaces
graphiques.
Malgré tout, il est conseillé au jeune utilisateur d’UNIX de se faire une raison, et de s'acclimater
peu à peu à l'usage de l'éditeur VI en pratiquant des exercices fréquents. Il reste le seul éditeur que
l'on est sûr de trouver sur toutes les versions d'UNIX.

Edition octobre 2009 23243481.doc Page 22 sur 22

Vous aimerez peut-être aussi