Linux-Mandrake: |
Guide de l'utilisateur |
et Manuel de référence |
MandrakeSoft
Janvier 2000 http://www.linux-mandrake.com
Comme annoncé en introduction, l'édition de texte[8] est un point incontournable dans l'utilisation d'un système Unix. Les deux éditeurs dont nous allons étudier (brièvement) l'utilisation sont un peu difficiles à aborder, mais dès que vous avez acquis les bases, ils s'avèrent l'un comme l'autre de formidables outils.
Emacs est sans doute l'éditeur de texte le plus puissant qui soit. Il peut absolument tout faire et il est extensible à l'infini grâce à son langage de programmation inclus, basé sur Lisp. Avec Emacs vous pouvez vous promener sur le web, lire votre courrier, les groupes de discussions, faire le café, etc. Mais ce que vous pourrez faire à la fin de cette section sera limité à: ouvrir Emacs, éditer un ou plusieurs fichiers, les sauvegarder, et quitter Emacs. C'est déjà bien.
Invoquer Emacs est relativement simple:
emacs [fichier] [fichier...]
Emacs ouvrira chaque fichier passé en argument dans un tampon
jusqu'à un maximum de deux tampons visibles en même temps, et vous
présentera le tampon *scratch*
si vous ne spécifiez pas de
fichier. Si vous êtes sous X, vous avez également des menus à
votre disposition, mais nous verrons ici comment manipuler Emacs
au clavier. C-x
représente la séquence Control+x
, M-s
représente la séquence Alt+s
.
Il est temps de pratiquer. Ouvrons par exemple deux fichiers,
fichier1
et fichier2
. Si ces deux fichiers n'existaient
pas, ils seront créés (si vous écrivez quelque chose dedans):
$ emacs fichier1 fichier2
Vous obtenez une fenêtre, présentée dans la figure 55.1.
Vous pouvez voir que deux tampons ont été créés: un par fichier. Un
troisième est également présent, au bas de l'écran (là ou vous voyez
(New file)
): c'est le mini-tampon. Vous ne pouvez pas aller de
vous-même dans ce tampon, il faut qu'Emacs vous y invite lors de
saisies interactives. Pour changer de tampon, tapez C-x o
. Vous
pouvez taper du texte comme dans un éditeur « normal », et en
effacer avec la touche Suppr
ou la touche Backspace
.
Pour vous déplacer, vous pouvez utiliser les touches fléchées, mais
aussi d'autres combinaisons: C-a
pour aller en début de ligne,
C-e
pour aller en fin de ligne, M-<
pour aller au début du
tampon et M->
pour aller à la fin du tampon. Il existe beaucoup
d'autres combinaisons, même pour chacune des touches
fléchées[9].
Dès que vous voulez enregistrer les modifications faites sur un fichier,
tapez C-x C-s
, ou si vous voulez enregistrer le contenu du tampon
dans un autre fichier, tapez C-x C-w
et Emacs vous
demandera le nom du fichier dans lequel écrire le contenu du tampon.
Vous disposez du complètement pour ce faire.
Vous pouvez, si vous le voulez, ne montrer qu'un tampon à l'écran. Vous avez deux solutions:
C-x
0
;
C-x 1
.Vous pouvez ensuite remettre le tampon que vous souhaitez à l'écran de deux manières:
C-x b
et rentrez le nom du tampon que vous souhaitez,
C-x C-b
, un nouveau tampon sera alors ouvert, appelé
*Buffer List*
; vous pouvez vous déplacer dans ce tampon à
l'aide de la séquence C-x o
, puis sélectionner le tampon que vous
souhaitez et appuyer sur la touche Entrée
, ou bien taper le nom
dans le mini-tampon. Le tampon *Buffer List*
se remet en
arrière-plan dès que votre choix est fait.Si vous en avez fini avec un fichier et voulez vous débarrasser du
tampon associé, tapez C-x k
. Emacs vous demandera alors
quel tampon il lui faut fermer. C'est le nom du tampon dans lequel vous
êtes par défaut; si vous voulez vous débarrasser d'un autre tampon que
celui proposé, entrez directement son nom ou bien appuyez sur TAB
:
Emacs ouvrira alors (encore) un autre tampon appelé
*Completions*
indiquant la liste des choix possibles. La
touche Entrée
valide le choix.
Vous pouvez également à tout moment remettre deux tampons visibles à
l'écran; pour cela tapez C-x 2
. Par défaut le nouveau tampon créé
sera une copie du tampon en cours (ce qui vous permet par exemple
d'éditer un gros fichier en plusieurs endroits « en même
temps »), et il vous suffit alors de procéder comme indiqué précédemment
pour passer à un autre tampon.
Vous pouvez à tout moment ouvrir d'autres fichiers, avec C-x C-f
.
Emacs vous demandera alors le nom du fichier et vous disposez là
aussi du complètement.
Supposons que nous sommes dans la situation de la figure 12.2.
Il faut d'abord sélectionner le texte que l'on veut copier. Sous
X, vous pouvez le faire à la souris, et la région sélectionnée
sera même mise en surbrillance. Mais là on est en mode texte :)
En l'occurrence on veut copier toute la phrase. Il faut d'abord poser
une marque pour marquer le début de la région. En supposant que le
curseur soit à l'endroit où il est dans la figure ci-dessus, tapez
d'abord C-ESPACE
(Control
+ barre espace): Emacs
affichera alors le message Mark set
dans le mini-tampon. Puis
déplacez-vous en début de ligne avec C-a
: la région sélectionnée
pour copier ou couper est toute la région se situant entre la marque et
la position actuelle du curseur, donc dans ce cas présent toute la
ligne. Tapez ensuite M-w
(pour copier) ou C-w
(pour couper).
Si vous copiez, Emacs reviendra alors brièvement à la position
de la marque, pour que vous visualisiez la région sélectionnée.
Puis rendez-vous dans le buffer où vous voulez copier le texte, et tapez
C-y
, pour obtenir à l'écran la même chose que dans la
figure 12.3.
En fait, ce que vous venez de faire est de copier du texte dans le
kill ring (« cercle des morts »)
d'Emacs: ce kill ring contient toutes les régions
copiées ou coupées depuis le lancement d'Emacs.
Toute région qui vient d'être copiée ou coupée est mise en tête
du kill ring. La séquence C-y
ne fait que
« coller » la région en tête: si vous voulez avoir accès aux
autres régions, appuyez sur C-y
puis sur M-y
jusqu'à ce que
vous tombiez sur le texte souhaité.
Pour rechercher du texte, placez-vous dans le tampon souhaité et tapez
C-s
: Emacs vous demande alors la chaîne à rechercher.
Pour lancer une nouvelle recherche avec la même chaîne, toujours dans le
tampon courant, tapez C-s
une nouvelle fois. Dès qu'Emacs
arrive à la fin du tampon et ne trouve plus d'occurrence de la chaîne
cherchée, vous pouvez de nouveau taper C-s
pour recommencer la
recherche depuis le début du tampon. Une pression sur la touche
Entrée
termine la recherche.
Pour rechercher et remplacer, tapez M-%
. Emacs vous
demande la chaîne à rechercher, par quoi la remplacer, et vous interroge
pour chaque occurrence qu'il trouve.
Une dernière chose bien utile: C-x u
permet
d'annuler l'opération précédente. Vous pouvez annuler autant
d'opérations que vous le souhaitez.
Pour ce faire le raccourci est C-x C-c
. Emacs vous
demandera alors s'il faut enregistrer les modifications effectuées dans
les tampons si vous ne les avez pas sauvegardées.
VI a été le premier éditeur plein écran existant. C'est l'un des principaux arguments des détracteurs d'Unix, mais aussi l'un des principaux arguments de ses défenseurs: s'il est compliqué à appréhender, c'est aussi un outil extrêmement puissant une fois que l'on a l'habitude de l'utiliser. En quelques frappes de touches, un utilisateur de VI peut déplacer des montagnes, et mis à part Emacs, peu d'éditeurs de texte peuvent se vanter de cela.
La version incluse dans Linux-Mandrake est en fait VIm, pour VI iMproved (« VI aMélioré »), mais nous le nommerons VI tout au long de ce chapitre.
Tout d'abord, l'invocation: exactement comme Emacs. Reprenons donc nos deux fichiers et tapons:
$ vi fichier1 fichier2
À partir de là, vous vous retrouvez devant une fenêtre telle que celle de la figure 12.4.
Vous vous retrouvez alors en mode commande devant le premier
fichier ouvert. Et là, les difficultés commencent :)
En mode
commande, vous ne pouvez pas insérer de texte dans un fichier... Il vous
faut pour cela passer en mode insertion, et entrer l'une des
commandes qui le permettent:
'a'
et 'i'
: pour insérer du texte respectivement derrière
et devant le curseur ('A'
et 'I'
insèrent du texte à la fin et
au début de la ligne courante);
'o'
et 'O'
: pour insérer du texte respectivement
au-dessous et au-dessus de la ligne courante.En mode d'insertion, vous verrez la chaîne --INSERT--
apparaître en bas de l'écran (de cette façon vous savez dans quel mode
vous êtes). C'est dans ce mode et uniquement dans ce mode que vous
pouvez taper du texte. Pour revenir en mode commande, appuyez sur la
touche Échap
.
En mode d'insertion, vous disposez des touches Backspace
et
Suppr
pour effacer du texte à la volée. Pour vous déplacer dans le
texte, aussi bien en mode commande qu'en mode insertion, vous disposez
des touches fléchées. En mode commande, il existe également d'autres
combinaisons de touches, que nous verrons plus tard.
Le mode ex est disponible en tapant le caractère ':'
en mode
commande: ce même ':'
apparaîtra en bas de l'écran, le curseur s'y
positionnera également et tout ce que vous tapez à la suite, suivi d'une
pression sur Entrée
, sera considéré par VI comme une
commande ex. Si vous effacez la commande jusqu'à
« effacer » le ':'
, vous revenez alors en mode commande et le
curseur retrouvera sa place originelle.
Pour enregistrer les modifications faites dans un fichier vous taperez
:w
en mode commande. Si vous voulez enregistrer le contenu du
tampon dans un autre fichier, tapez la séquence :w
<nom_du_fichier>
.
Comme avec Emacs, vous pouvez avoir plusieurs tampons visibles à
l'écran. Pour cela, utilisez la commande :split
.
Pour passer d'un fichier à l'autre, dans un tampon, il vous faut taper
:next
pour passer au fichier suivant et :prev
pour passer au
fichier précédent. Vous pouvez aussi vous servir de :e
<nom_de_fichier>
, qui permet à la fois de changer vers le fichier
désiré si celui-ci est déjà ouvert, ou bien d'ouvrir un autre fichier.
Vous disposez là aussi du complètement.
Pour changer de tampon, tapez C-w j
pour passer au tampon
en-dessous ou C-w k
pour passer au tampon au-dessus. Vous pouvez
utiliser également les touches fléchées vers le haut ou vers le bas en
lieu et place de 'j'
ou 'k'
. La commande :close
cachera un
tampon, la commande :q
le fermera.
Attention, VI est tatillon: si vous tentez de cacher ou fermer un tampon dont les changements n'ont pas été sauvegardés, la commande ne sera pas effectuée et vous aurez ce message:
No write since last change (use! to override)
(« pas de sauvegarde depuis le dernier changement
--- utilisez '!'
pour forcer la commande ») Dans ce cas,
faites comme il dit :)
Tapez :q!
ou :close!
.
Outre les touches Backspace
et Suppr
dans le mode d'édition,
VI dispose de beaucoup de commandes pour effacer, copier,
coller, remplacer du texte --- en mode commande. Nous en verrons
ici quelques unes. Toutes les commandes présentées ici sont en fait
séparées en deux parties: l'action à effectuer et sa portée. L'action
peut être:
'c'
: pour remplacer (Change); l'éditeur efface le
texte demandé et repasse en mode d'insertion après cette commande;
'd'
: pour effacer (Delete);
'y'
: pour copier (Yank), nous verrons cela
dans la section suivante.
'.'
: reproduit la dernière action effectuée.La portée désigne le groupe de caractères sur lequel la commande doit agir. Ces mêmes commandes de portée entrées telles quelles en mode commande correspondent à des déplacements:
'h'
, 'j'
, 'k'
, 'l'
: un caractère à gauche, en bas,
en haut, à droite[10];
'e'
, 'b'
, 'w'
: jusqu'à la fin (resp. au début) du mot
courant, jusqu'au début du mot suivant;
'^ '
, 0
, '$'
: jusqu'au premier caractère non blanc de
la ligne courante, jusqu'au début de la ligne courante, jusqu'à la fin
de la ligne courante;
f<x>
: jusqu'à la prochaine occurrence du caractère
<x>
; par exemple fe
déplace le curseur jusqu'à la prochaine
occurrence du caractère 'e'
;
/<chaîne>
, ?<chaîne>
: jusqu'à la prochaine occurrence
de la chaîne ou expression rationnelle <chaîne>
, et de même en
remontant dans le fichier; par exemple, /toto
déplace le curseur
jusqu'à la prochaine occurrence du mot toto
;
'{'
, '}'
: jusqu'au début, jusqu'à
la fin, du paragraphe;
'G'
, 'H'
: jusqu'à la fin du fichier, jusqu'au début de
l'écran.Chacun de ces caractères de portée ou commandes de déplacement peut être
précédé d'un nombre de répétition quand cela a un sens. 'G'
,
référence le numéro de ligne dans le fichier. À partir de là, vous
pouvez faire toutes sortes de combinaisons. Quelques exemples:
6b
: se déplace 6 mots en arrière;
c8fk
: efface tout le texte jusqu'à la huitième occurrence du
caractère 'k'
puis passe en mode insertion;
91G
: va à la ligne 91 du fichier;
d3$
: efface jusqu'à la fin de la ligne courante plus les
deux lignes suivantes.Ce ne sont certes pas des commandes très intuitives, mais comme toujours
le meilleur moyen est de pratiquer. En tout cas, vous pouvez voir que
l'expression « déplacer des montagnes en quelques touches » n'est
pas tellement exagérée :)
VI dispose d'une commande que nous avons déjà vue pour copier du
texte: la commande 'y'
. Pour couper du texte, utilisez tout
simplement la commande 'd'
. Vous disposez de 27 mémoires pour y
stocker du texte: une mémoire anonyme et 26 mémoires portant le nom des
26 lettres minuscules de l'alphabet.
Pour utiliser la mémoire anonyme on entre la commande telle quelle.
Ainsi, la commande y12w
copie dans la mémoire anonyme les 12 mots
depuis le curseur[11]. Utilisez d12w
si vous voulez couper cette zone.
Pour utiliser l'une des 26 mémoires nommées, on utilise la séquence
"<x>
avant la commande, où <x>
désigne le nom de la
mémoire. Ainsi pour copier les mêmes 12 mots dans la mémoire 'k'
, on
écrirait "ky12w
, et "kd12w
si on veut les couper.
Pour coller le contenu de la mémoire anonyme, vous disposez des
commandes 'p'
ou 'P'
(pour Paste,
« coller »), pour insérer le texte respectivement après le
curseur ou devant le curseur. Pour coller le contenu d'une mémoire
nommée, utilisez de la même façon "<x>p
ou "<x>P
(par
exemple "dp
collera le contenu de la mémoire 'd'
après le
curseur).
Prenons l'exemple de la figure 12.5.
Pour effectuer cette action, on va donc:
'r'
(par exemple): "ry6w
[12];
fichier2
, qui se situe dessous:
C-w j
;
'r'
devant le curseur:
"rp
.Le résultat, présenté dans la figure 12.6, est bien celui qui est attendu.
La recherche de texte est très simple: en mode commande, il suffit de
taper '/'
suivi de la chaîne à rechercher, suivi d'une pression sur
la touche Entrée
. Par exemple, /partie
recherchera la chaîne
partie
à partir de la position courante. Un appui sur 'n'
conduit à la prochaine occurrence, et si vous arrivez à la fin du
fichier, la recherche recommencera depuis le début. Pour rechercher en
remontant dans le fichier, il faut remplacer '/'
par '?'
.
Pour quitter, la commande est :q
(en fait, cette commande ferme le
tampon actif, comme nous l'avons déjà vu, mais si c'est le seul tampon
présent, vous quittez VI). Il existe un raccourci: la plupart du
temps on n'édite qu'un seul fichier. Pour quitter on utilisera alors:
:wq
pour sauvegarder les modifications et quitter (solution
plus rapide: ZZ
), ou
:q!
pour quitter sans enregistrer.Par extension, vous aurez deviné que si vous avez plusieurs tampons,
:wq
écrira le tampon actif puis le fermera.
Bien sûr, nous en avons dit ici beaucoup plus que ce qu'il était nécessaire (après tout le but premier était d'éditer un fichier texte), mais c'est aussi pour vous montrer quelques-unes des possibilités de chacun de ces éditeurs. Il y aurait beaucoup plus à dire sur eux, comme en témoigne le nombre de livres consacrés à l'un ou à l'autre.
Prenez le temps de digérer toutes ces informations, jetez votre dévolu
sur l'un ou l'autre, ou n'apprenez que ce que vous jugez nécessaire.
Mais au moins vous savez que le jour où vous voudrez aller plus loin,
vous le pourrez :)