Voici une classification par niveau des degrés de connaissance de son éditeur. Nous développons les deux premiers niveaux, en indiquant juste le nom de la commande pour les niveaux suivants : nous estimons en effet qu'à partir du niveau 3 vous êtes capables de trouver par vous-mêmes la façon de faire les choses, et de chercher tout seuls dans les documentations...
Trois éditeurs sont ici abordés : emacs, nano et vim. L'ordre de préséance entre éditeurs répond à un critère alphabétique neutre. Nous nous sommes aussi efforcés de ne mettre en avant que des fonctionnalités communes à au moins deux éditeurs : les avantages spécifiques de chaque éditeur n'ont donc pas leur place ici.
Enfin, quand nous disons «emacs», cela concerne bien entendu aussi «xemacs».
Pour noter les raccourcis claviers, on utilise des notations différentes suivant les éditeurs, pour suivre la façon dont les touches sont indiquées dans l'aide. On a donc:
C-x
pour control-x, c'est à dire
la touche x avec le modificateur control en même temps. De même
M-x
représente la touche x avec le modificateur méta.^X
pour control-x. CTRL-X
pour control-x. Pour lancer son éditeur favori, la procédure est partout la même. Il faut taper dans un terminal* le nom de l'éditeur suivi du nom du fichier à éditer; par exemple :
prao ~ $ emacs rapport.tex prao ~ $ nano index.html prao ~ $ vim monbofichier
Pour emacs
, si vous êtes dans un xterm*, vous pouvez taper :
prao ~ $ emacs -nw rapport.tex
pour lancer emacs dans le terminal où vous vous trouvez (sans ouvrir de nouvelle fenêtre graphique), ce qui est plus rapide mais vous n'avez pas la souris.
C-x C-s
(save).
Vous pouvez aussi cliquer sur le bouton Save
, ou
sélectionner Save fichier
dans le menu
File
. Pour sauver votre fichier sous un nom différent, tapez
C-x C-w
ou sélectionner Save as...
dans le menu
File
. Emacs vous demande alors un nom de fichier.^O
. Nano vous demande
alors sous quel nom enregistrer le fichier. Appuyez sur la touche Entrée
si vous voulez garder le même nom.:w
(write). Pour
enregistrer sous un autre nom, faire :sav nouveaunom
.Quelle que soit l'application, vous devez la quitter correctement, avec sa commande. Vous ne devez jamais fermer une fenêtre en sélectionnant «Fermer» dans le cadre de la fenêtre; dans le cas d'un éditeur mal configuré vous risquez de perdre votre travail. Des copies de sauvegarde existent et permettent d'en récupérer la majeure partie, mais ce n'est pas un pli à prendre... Quittez donc correctement votre éditeur.
C-x C-c
ou cliquer sur Exit
Emacs
dans le menu File
. Emacs vous demande si vous voulez
sauvegarder votre texte.^X
. Cette commande
quitte nano en vous demandant si vous voulez enregistrer en
quittant.:wq
(write quit)
pour quitter en sauvant. Si vous essayez de quitter vim sans avoir sauvé
votre texte (avec :q
), il refuse; il faut taper
:q!
pour forcer la sortie sans sauver le document.Ce sont ces deux touches qui servent à alterner entre les deux modes. Vous découvrirez plus tard les autres touches qui servent à insérer au début ou à la fin de la ligne, avant ou après la ligne courante, etc.
Pour effacer du texte en mode insertion, utilisez la touche Backspace. La souris ne sert à placer le curseur qu'avec gvim. L'effacement de texte en mode commande, beaucoup plus précis, relève du Deuxième Cercle...
C-f
pour avancer (forward), C-b
pour
reculer (backward), C-n
pour descendre (next) et
C-p
pour monter (previous).Help
et
choisissez ce qui vous plaît... Je vous conseille de commencer par le tutorial
et la FAQ*. Vous pouvez aussi utiliser les
commandes en C-h
suivi d'une lettre pour avoir de l'aide sur
différent aspects d'emacs. Par exemple, C-h t
lance le
tutorial, et C-h C-h
vous donne l'aide sur l'aide.^G
ou F1
.:h
(help). La fenêtre se divise en deux, et un fichier d'aide
apparaît. Son fonctionnement est décrit dans les premières lignes.
Des thèmes sont indiqués entre barres verticales
(par exemple, |quickref|
. Pour y accéder, placez le curseur sur le
mot-clé entre barres et tapez CRTL-] (Controle-crochet fermant). Pour revenir
au début de l'aide, taper CRTL-T (top). Je vous conseille de
commencer par |howto.txt|
, qui classe par thèmes les commandes.
Pour refermer l'écran d'aide, taper :q
(quit).
Undo
, ou
sélectionner Undo
dans le menu Edit
. Vous pouvez aussi
utiliser le raccourci clavier C-x u
(qui n'est pas C-x C-u
...) ou C-_
ou C-/
.
Il n'y a pas de commande spécifique pour refaire. Un moyen de s'en sortir est de taper un caractère et de faire des Undo : il défera alors les Undo précédents, i.e. refera ce qui a été défait.
^K
, vous pouvez les
insérer en faisant ^U
.u
(undo)
défait la dernière commande. CTRL-R
(redo) refait la dernière
commande. On peut ainsi faire et refaire l'ensemble des actions
faites depuis que le fichier a commencé à être édité. C-f
, C-b
,
C-n
et C-p
agissent différemment si on change de
modificateur:
M-f
et M-b
se déplacent par mot.M-n
et M-p
se déplacent par paragraphes.Home
ou C-a
placent le curseur en début de
ligne.End
ou C-e
place le curseur en fin de ligne.
M-a
placent le curseur en début de phrase.M-e
place le curseur en fin de phrase.C-v
/ M-v
fait
respectivement avancer/reculer le texte d'un écran. M-<
/ M->
placent respectivement tout
au début/tout à la fin du fichier.less
.
$
place le curseur en fin de ligne.^
et 0
(zéro) placent le curseur en début de ligne
(vous saurez plus tard la différence entre les deux commandes...).w
(word) / b
(back)
avance/recule d'un mot, curseur au début du mot.e
(end) avance d'un mot, curseur en fin de
mot.{
et }
(accolades) : respectivement,
recule et avance d'un paragraphe.(
et )
(parenthèses) : respectivement, recule et avance
d'une phrase.CTRL-D
(down) / CTRL-U
(up) fait
respectivement avancer/reculer le texte d'un demi-écran. CTRL-F
(forward) / CTRL-B
(back fait
avancer/reculer le texte d'un écran.CTRL-E
/CTRL-Y
fait avancer/reculer le texte d'une
ligne.gg
ou [[
placent tout au début du
fichier.G
ou ]]
placent tout à la fin du
fichier.15w
fait avancer le curseur de 15 mots. M-g
(méta) et indiquer
le numéro de ligne.^_
(line) et
indiquer le numéro de la ligne.G
à un
numéro de ligne. Par exemple, 38G
place sur la ligne
38.C-k
efface la fin de la ligne courante.Cut
, ou sélectionner Cut
dans le menu
Edit
.C-w
à l'autre extrémité.^H
) efface le caractère à gauche du curseur.^D
) efface le caractère placé sous le curseur.^K
efface la fin de la ligne courante.x
détruit le caractère sous le curseur.X
détruit le caractère à gauche le curseur.dd
détruit la ligne courante.D
détruit la fin de la ligne courante.d
à une commande de déplacement : par
exemple, dG
pour détruire toute la fin du fichier, d}
pour
détruire la fin du paragraphe, d3w
pour détruire trois
mots.v
et utiliser les
touches de déplacement pour sélectionner un fragment de texte : le texte
sélectionné est mis en valeur. Taper d
pour détruire le texte
sélectionné.Edit
et cliquer sur Search
ou Search
Backwards
, et taper le mot recherché. Il est quand même plus
simple de taper C-s
(search) ou C-r
(rear) pour chercher en arrière; indiquez le mot et tapez à
nouveau C-s
(C-r
) pour aller à la prochaine
occurrence du mot. Une fois arrivé en bas (ou en haut), emacs bippe et
revient à l'autre bout du texte.^W
; indiquez
le mot recherché./
) et indiquer le mot recherché (comme avec less
). La casse des caractères
peut avoir de l'importance suivant votre configuration (tapez donc les
mots clefs en minuscules), et vim sait revenir au début du texte quand il
a atteint la fin du fichier. Pour aller à la prochaine occurrence du mot,
taper n
(next). Pour aller à la précédente
occurrence du mot, taper N
.?
puis le mot.
On se sert de n
et de N
de la même façon.*
.
M-%
et compléter, en validant
chaque terme par un retour à la ligne. Vous pouvez aussi utiliser le bouton
Replace
ou sélectionner Replace
dans le menu
Edit
.y
pour accepter, n
pour refuser, !
pour tout remplacer d'un coup et q
pour arrêter les
remplacements.^\
. Entrez la chaîne à
chercher puis la chaîne de remplacement. Nano demande confirmation pour chaque remplacement : taper y
pour
accepter le remplacement, n
pour le refuser, a
pour
remplacer toutes les occurrences restantes.:%s/mot1/mot2/g
. Le pour-cent signifie que le remplacement
se fera dans tout le fichier, s/mot1/mot2/
signifie qu'il
faut remplacer (substitute
) le mot1 par le mot2. La dernière
lettre, g
, signifie que l'on veut remplacer toutes les
occurrences présentes sur chaque ligne. En effet, sans le «g», seule la
première occurrence serait traitée.:%s/mot1/mot2/gc
. Vim vous propose alors plusieurs
réponses possibles : y
pour accepter le remplacement,
n
pour le refuser, a
(all) pour tout
remplacer d'un coup, q
pour quitter. Vous retrouvez aussi
les commandes CTRL-Y
et CTRL-E
, pour faire reculer ou
avancer le texte d'une ligne.
Copy
. Cliquer avec le bouton du milieu de
la souris à l'endroit où on veut coller le texte. Vous aurez reconnu ici
la méthode standard pour copier/coller du texte d'une fenêtre à
l'autre.C-w
ou
C-k
peut
être collé ailleurs en tapant C-y
(yank). Si on veut
copier un bout de texte sans l'effacer, il suffit de l'effacer et de le
recopier juste après là où il était (ce qui n'empêche pas de le recopier
ailleurs en autant d'exemplaires qu'on veut). On peut récupérer un texte
copié il y a longtemps avec C-y
suivis d'un ou plusieurs
M-y
. On peut aussi copier la région sélectionnée sans la
couper avec M-w
v
et utiliser les touches de déplacement pour sélectionner
un fragment de texte. Appuyer sur y
(yank) pour
copier le texte en mémoire. Placer le curseur à l'endroit où on veut
coller le texte, et appuyer sur p
(put) si vous
voulez coller après le curseur ou sur P
si vous voulez
coller avant le curseur.
yy
fait une copie de la ligne courante. On peut aussi utiliser
y commande-de-déplacement
pour copier un fragment de texte, sans
passer par une sélection visuelle.
M-q
.^J
. Q
(si ça ne marche pas : gqap
).Inser
pour balancer entre les modes
insertion et écrasement.r
et R
(replace).
s
et S
(substitute).M-l
et M-u
.~
(tilde).C-x ESC ESC
..
(point).J
(join).C-M-f
/ C-M-b
.%
(pour-cent).
M-x local-set-key
ou M-x
global-set-key
.:map touche fonction
.C-x i
ou Insert file
dans le menu
File
.^R fichier
.:r fichier
.M-x write-region
:w
nouveau-fichier
).C-x 2
ou Split
Window
dans le menu File
. Options du menu
File
. C-x o
pour changer de fenêtre.-CTRL-W N
(window
new). CTRL-W k
et
CTRL-W j
pour monter/descendre d'une fenêtre interne.M-!
:!commande
C-u M-!
:r!commande