Page suivante Page précédente Table des matières

8. Emacs QRG

Guide rapide de référence d'emacs. Ceci est un "Quick Reference Guide", c'est à dire un "vade mecum" d'Emacs. De ce fait, il n'y a pas ici toutes les commandes, seulement les plus importantes, au moins pour moi en ce moment.

8.1 Généralités

C-

Signifie de presser et de maintenir la touche Ctrl,

M-

Signifie de presser et de maintenir la touche Méta (Alt sur PC - on peut aussi presser brièvement Echap).

Dans le texte en anglais, presque partout dans la doc, la touche nommée DEL est en fait la touche BACKSPACE (retour arrière) et non pas la touche Suppr comme on pourrait le penser.

Une "frappe complète" s'exécute immédiatement, une "frappe" attends une suite. Presque toutes les commandes admettent un multiplicateur.

8.2 Commandes essentielles :

Pour lancer emacs, taper simplement 'emacs'.

C-g ('keyboard-quit')

permet d'annuler les commandes en cours.

C-h

donne de l'aide

C-x C-c

sort d'emacs.

M-x

suivi d'un nom de commande exécute la dite commande,

M-x standard-display-european

donne les caractères accentués. Si ca ne marche pas, essayez :

(set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) (ou voir doc C- h i),

M-x iso-accents-mode

donne les caractères diacritiques

8.3 Complétion

Dans le mini-buffer,

TAB

essaie de compléter la frappe,

SPC

essai de compléter le mot,

?

affiche les complétions possibles,

M-x TAB

affiche la liste de toutes les commandes disponibles par M-x,

Quand une liste de complétion est affichée (et que la souris n'est pas disponible) page up ou M-v y place le curseur, on peut s'y déplacer et RET choisit.

8.4 Ecran :

Les messages divers sont sauvegardés dans le buffer *Messages* dont le nombre de lignes est socké 'dans message-log-max'.

Dans la ligne d'état, en bas de l'écran,

**

buffer modifié,

%%

buffer en lecture seule,

%*

buffer en lecture seule modifié (?)

Le pourcentage indiqué en fin de ligne donne la position par rapport au début du texte.

[[ ]]

indique un appel récursif à emacs,

C-l ('recenter')

recentre l'écran autour du curseur,

C-v

page bas,

M-v

page haut

ARG C-l

recentre sur la ligne ARG (compté à partir du début si ARG est positif, de la fin si ARG est négatif,

C-x <

C-x >

déplace le texte dans le sens de la flèche

C-M-l

essaie de déplacer le texte intelligemment (affiche toute une fonction, par exemple),

M-x follow-mode

fait déplacer ensemble deux fenêtres juxtaposées avec C-x 3

8.5 Sortie d'emacs :

C-x C-c ('save-buffers-kill-emacs')

sort d'emacs en sauvegardant les buffers à la demande,

C-z ('suspend-emacs')

sort d'emacs en le laissant en arrière plan. Reprise par '%emacs' (sous bash, inutile sous X).

8.6 Insertion de caractères :

Il suffit de taper pour les caractères ordinaires.

C-q ('quoted-insert')

suivi de tout caractère de controle insère celui-ci. Ca ne marche pas dans le mini buffer. Dans ce cas, écrire le texte dans le buffer normal, le sélectionner avec C-SPC et le curseur, le couper avec C-w et le coller ensuite dans le minibuffer avec C-y

C-q

suivi de trois chiffre (octal) insère le caractère en question.

DEL (donc BACKSPACE) ('delete-backward-char')

sans commentaire,

C-o ('open-line')

insére une ligne,

8.7 Déplacement du curseur :

C-a ('beginning-of-line')

C-e ('end-of-line')

C-f (forward-char')

C-b ('backward-char')

M-f ('forward-word')

M-b ('backward-word')

C-n ('next-line')

C-p ('previous-line')

M-r ('move-to-window-line')

met le pointeur à gauche à mi hauteur,

M-< ('beginning-of-buffer')

M-> ('end-of-buffer')

M-x goto-char ('goto-char')

il faut tout taper, même goto-char, emacs vous demande un chiffre et place le pointeur après le caractère de ce numéro, compté depuis le début du buffer.

M-x goto-line ('goto-line')

il faut tout taper, même goto-char, emacs vous demande un chiffre et place le pointeur après la ligne de ce numéro, comptée depuis le début du buffer.

8.8 Recherche et remplacement :

C-s ('isearch-forward')

en avant. recherche incrémentale. arrétée par C-g ou RET un deuxième C-g renvoie le pointeur d'où il venait. Retaper C-s cherche l'occurrence suivante,

C-r ('isearch-backward')

en arrière,

C-s C-s

cherche à nouveau la même chaîne,

C-s

suivi de M-p ou M-n passe en revue les arguments de recherche déjà utilisés. Pour chercher LF (line feed, marque de paragraphe), tapez LFD,

C-w

copie le mot au pointeur dans la chaine de recherche,

C-y

fait de même pour le reste de la ligne.

La recherche déplace le pointeur et marque l'emplacement précédent de ce pointeur.

C-s RET CHAINE RET

cherche pour CHAINE (C-r idem)

C-s RET C-w MOTS RET

recherche les mots quelle que soient les ponctuations qui les séparent

C-M-s

lance une recherche sur une expression régulière

M-x replace-string RET CHAINE RET NOUVCHAINE RET

remplacement systèmatique après le curseur

M-% CHAINE RET NOUVCHAINE RET

remplace avec question. Un argument numérique ne trouve que les mots entiers. Réponses à la question :

SPC

remplacer

DEL (backspace)

suivant

, (virgule)

donne une chance de changer d'avis après remplacement

RET

termine la recherche

. (point)

remplacer et terminer

!

tout remplacer sans plus poser de question

revoir le dernier changement

8.9 Effacer du texte :

DEL ('delete-backward-char')

C-d ('delete-char')

C-k ('kill-line')

coupe du pointeur à la fin de la ligne

C-x DEL

coupe le début de la ligne

M-d ('kill-word')

M-DEL ('backward-kill-word')

M-\

efface les espaces et TAB autour du pointeur

M-SPC

efface les espaces et TAB autour du pointeur et laisse un espace

C-x C-o ('delete-blank-line')

toutes sauf une

C-w

coupe région

M-k

coupe jusqu'au prochain point

C-M-k

coupe une expression lisp (sexp)

M-z CHAR

coupe jusqu'au caractère

8.10 Registres :

Un registre a un nom d'un seul caractère

C-x r SPC R

sauve la position du pointeur dans le registre R

C-x r j R

envoie le pointeur à la position sauvée dans R (ou restaure fenêtre, cadre ou fichier)

C-x r s R

copie région dans le registre R

C-x r r R

copie le rectangle dans le registre R (avec un argument numérique, le coupe)

C-x r i R

insére le texte ou le rectangle de R au pointeur

C-x r w R

sauve la configuration des fenêtres dans R

C-x r f R

sauve la configuration des cadres dans R

(set-register ?R '(file . NOM)) est la fonction lisp pour stocker le nom de fichier NOM (nom absolu, complet)

8.11 Signets :

C-x r m RET

positionne un signet portant le nom du fichier

C-x r m SIGNET RET

positionne un signet de nom SIGNET

C-x r b SIGNET RET

saute au signet SIGNET

C-x r l

liste les signets

M-x bookmark-save

sauvegarde les signets dans un fichier spécial (pour d'autres commandes, voir doc)

8.12 Coller :

C-y ('yank')

colle le dernier texte coupé ou copié - avec un argument numérique, colle un texte précédemment copié

M-y ('yank-pop')

remplace un texte que l'on vient de coller par un texte précédemment coupé (il faut donc faire C-y avant)

M-w ('kill-ring-save')

copie la région

C-M-w ('append-next-kill')

ajoute la prochaine coupure à la précédente

M-x append-to-buffer

envoie une région dans un buffer spécifié

M-x prepend-to-buffer

ajoute le texte devant le contenu actuel du buffer

M-x copy-to-buffer

remplace le buffer par le texte

M-x insert-buffer

insère le buffer en question au pointeur

M-x append-to-file

ajoute la région au fichier indiqué

8.13 Défaire (undo) :

C-x u ('undo'). Egalement C-_

8.14 Aide :

C-h ou F1

C-h k

suivi d'une séquence de touche donne la signification de cette séquence

C-h b

liste des affectations de touches

C-h a REGEXP RET

('apropos-command') liste des commandes

C-h c TOUCHE

indique l'affectation de TOUCHE

C-h k TOUCHE

indique l'affectation de TOUCHE, plus en détail

C-h f FONCTION RET

donne des informations sur la FONCTION

C-h i

affiche le fichier info dont j'ai tiré ce résumé

C-h l

affiche une description des 100 derniers caractères tapés ou actions faites

C-h m

décrit le mode majeur courant

C-h n

décrit les nouveautés de cette version d'emacs

C-h p

trouve les packages (d'emacs?) par mot clé

C-h s

affiche la table de syntaxe (j'ai pas très bien compris)

C-h t

tutorial - pas mal, si vous ne l'avez pas déjà fait, faites le!

C-v VAR RET

doc sur la variable VAR

C-h w COMMANDE RET

indique quelle touche exécute la commande donnée

C-h C-f FONCTION RET

lance l'aide "info" à l'emplacement de la fonction indiquée

C-h C-k KEY

lance info à l'emplacement de la séquence de touches indiquée

C-h C-c

affiche le copyright d'emacs

C-h C-d

indique comment se procurer une nouvelle version d'emacs

C-h C-p

affiche des infos sur le projet GNU

8.15 Transposer du texte :

Ici cela veut dire échanger deux parties de texte.

C-t ('transpose-chars')

deux caractères de part et d'autre du pointeur ou juste tapés

M-t ('transpose-words')

C-M-t (transpose-sexps')

deux expressions (?)

C-x C-t ('transpose-lines')

8.16 Conversion de casse (majuscules <-> minuscules) :

M-- M-l

(M-- est M-le moins en dessous du 6, M-l est M-initiale de lima) mettre en minuscule le dernier mot

M-- M-u

mettre en majuscule le dernier mot

M-- M-c

mettre le dernier mot en minuscule avec l'initiale en majuscule

8.17 Orthographe :

M-$ ('ispell-word')

M-TAB ('ispell-complete-word')

complète le mot en cours d'après ispell

M-x ispell-buffer

('ispell-buffer') (tout taper) corrige le buffer entier

M-x ispell-region

('ispell-region') (?)

M-x ispell-message

('ispell-message') vérifie un courrier en négligeant les citations

M-x ispell-change-dictionary ('ispell-change-dictionary')

permet de changer de dictionnaire

M-x ispell-kill-ispell ('ispell-kill-ispell')

arrète la tâche ispell.

Réponses valides au correcteur ispell :

SPC

passer

r NEW RET

remplacer par NEW

R NEW RET

toujours remplacer par NEW

CHIFFRE

si ispell vous propose plusieurs choix numérotés, taper le chiffre voulu

a

accepter le mot comme correct pour la session en cours

A

accepter le mot comme correct pour ce buffer

i

insérer ce mot dans votre dictionnaire personnel

u

insérer ce mot en minuscules dans votre dictionnaire personnel

m

comme i mais avec des infos supplémentaires

l MOT RET (lettre lima)

chercher dans ispell des analogues à MOT. * est utilisable comme joker

C-g (ou X)

arréter provisoirement ispell. reprendre par C-u M-$

x

quitter ispell et retourner le pointeur à sa position initiale

C-l (lima)

rafraichir l'écran

8.18 Gestion de fichiers :

M-x pwd

donne le répertoire courant

M-x cd RET

permet de changer de répertoire courant emacs peut lire les fichiers à distance par ftp (voir doc)

C-x C-f ('find-file')

visiter un fichier (le lire et s'appréter à l'éditer) si vous tapez RET sans donner de nom de fichier, emacs vous affiche le répertoire dans un buffer (fonction dired).

C-x C-r ('find-file-read-only')

visiter en lecture seule

C-x C-q

autorise l'écriture sur un fichier en lecture seule

C-x C-v ('find-alternate-file')

ouvrir un autre fichier. utile si on a pas ouvert le bon fichier

C-x 4 C-f ('find-file-other-windows')

partage en deux la fenètre courante pour afficher le fichier

C-x 5 C-f ('find-file-other-frame')

ouvre une autre fenêtre pour le fichier Le menu "buffer" donne maintenant le choix entre buffers et frames

M-x auto-compression-mode ('auto-compression-mode')

bascule entre décompression manuelle et automatique

C-x C-s ('save-buffer')

écrit le fichier en cours. Crée un backup la première fois que le fichier est écrit (peut écrire plusieurs backups, voir doc)

C-x s ('save-some-buffers')

écrit tous les buffers (invoqué également par C-x C-c, exit emacs). Plusieurs réponse sont possibles :

y

sauve et continue

n

ne sauve pas et continue

!

sauve tout et fous moi la paix

RET

terminé

. (point)

sauve celui ci et termine

C-r

voyons de quoi il s'agit (voir le buffer en question)

M-  (tilde) ('not-modified')

oublie que le fichier a été modifié (et ne propose plus de le sauvegarder)

C-x C-w ('write-file')

enregistrer sous...

M-x set-visited-file-name ('set-visited-file-name')

change le nom sous lequel le fichier doit être enregistré (mais ne l'enregistre pas). Emacs surveile les fichiers pour éviter que plusieurs utilisateurs du même fichier ne fassent des bétises (voir doc)

M-x revert-buffer ('revert-buffer')

abandonne les modifications faites depuis la dernière sauvegarde - met à jour les répertoires (comme F5 sous windows).

Emacs sauve automatiquement votre fichier dans un fichier #nom# tous les 300 caractères ou quand vous arrétez de taper. Pour récupérer cette sauvegarde, lancer emacs, faire M-x recover-file RET nom sans les # RET, puis sauvegarder avec C-x C-s si nécessaire.

M-x recover-session

permet de récupérer d'un crash emacs peut gérer les fichiers sous "contrÔle de versions" - voir doc

8.19 Gérer les buffers :

C-x b BUFFER RET ('switch-to-buffer')

sélectionne ou crée un buffer

C-x 4 b BUFFER RET ('switch-to-buffer-other-window')

sélectionne ou crée un buffer dans une autre fenètre

C-x 5 b BUFFER RET ('switch-to-buffer-other-frame')

sélectionne ou crée un buffer dans un autre cadre

C-x C-b ('list-buffers')

C-x C-q ('vc-toggle-read-only')

change le statut lecture seule

M-x rename-buffer RET NOM RET

change le nom du buffer courant

M-x rename-uniquely

ajoute un nombre à la fin du nom

M-x view-buffer RET BUFFER RET

visualiser un buffer sans le modifier

C-x k NOMBUF RET ('kill-buffer')

couper tampon

M-x kill-some-buffers

liste les buffer en demandant s'il faut les couper

M-x buffer-menu

crée une liste des buffers et permet de les éditer avec les commandes suivantes :

d

marque pour effacement

C-d

marque pour effacement et monte

s

marque pour sauvegarde

x

exécuter les commandes marquées

u

annule les commandes marquées pour la ligne et descend

DEL

va sur la ligne précédente et enlève toutes ses marques

Commandes à action immédiate :

 

rend le buffer non modifié

%

bascule le drapeau lecture seule

q

quitte le menu buffer

RET

f

sélectionne le buffer de cette ligne

o

ouvre le buffer sélectionné

C-o

ouvre le buffer sélectionné dans une autre fenètre

1

ouvre ce buffer en plein écran

2

ouvre deux fenètres avec ce buffer et le précédent

m

marque le buffer pour ouverture en sortie de menu

v

sort du menu

M-x make-indirect-buffer BUFFER-DE-BASE RET NOM-INDIRECT

crée en quelque sorte une fenètre sur le buffer de base

8.20 Gestion des fenêtres :

C-x 2 ('split-window-vertically')

C-x 3 ('split-window-horizontally')

C-mouse-2

je ne sais pas ce que ca veut dire

C-x o ('other-window')

sélectionne une autre fenêtre

C-M-v ('scroll-other-window')

scrolle la fenêtre que C-x o aurait sélectionnée

M-x compare-windows

trouve la première différence entre deux fenêtres

C-x 4

rajouter 4 après C-x effectue l'action dans une autre fenêtre

C-x 0 (zéro) ('delete-window')

efface la fenêtre courante

C-x 1 ('delete-others-windows')

efface les fenêtres sauf celle courante. Ne laisse donc qu'une fenêtre ouverte

C-x ('enlarge-window')

élargir la fenêtre (en hauteur, d'une ligne)

C-x } ('enlarge-window-horizontally')

On peut tirer la ligne d'état d'une fenêtre avec la souris (bouton droit) pour changer la taille de la fenêtre cliquer avec le bouton gauche dans la barre d'état efface toutes les autres fenêtres. Cliquer avec le bouton du milieu dans la barre d'état efface la fenêtre en question. Tout ceci n'efface que la fenêtre, pas son contenu.

8.21 Informations sur la position du curseur

M-x what-page

imprime le numéro de page et le numéro de ligne dans la page

M-x what-line

imprime le numéro de ligne dans le buffer

M-x line-number-mode

bascule le mode numéro de ligne

M-= ('count-lines-region')

donne le nombre de lignes dans la région courante

C-x = ('what-cursor-position')

donne le code du caractère, sa position et sa colonne

C-x l (lima)

compte le nombre de lignes dans la page courante

8.22 Arguments numériques

Beaucoup de commande dans emacs acceptent un "multiplicateur" sous forme d'argument numérique. Les commandes ci-dessous doivent donc être tapées avant la commande que l'on veut multiplier.

M-(chiffre de 1 à 9)

et M-- (deux -) sont des raccourcis

C-u chiffre

donne chiffre comme argument. Il y a d'autres possibilités, voir doc

8.23 Marque et région

Dans emacs, on peut poser une marque. L'espace entre la marque et le pointeur est la région ("sélection"). Les fonctions qui insèrent du texte fixent la marque et le pointeur de chaque coté.

C-SPC

pose la marque

C-@

idem

C-x C-x

échange la marque et le pointeur

tirer le bouton gauche (de la souris) place la marque et le pointeur

souris-3 place la marque à la position du pointeur puis déplace le pointeur à la position du curseur

Actions sur la région :

C-w

coupe la région

C-x r s

sauve la région dans un registre

C-x C-l ou C-x C-u

convertit la région en minuscules ou majuscules

C-x TAB ou C-M-\

indente le texte (programmation)

M-x print-region

M-@

sélectionne le prochain mot

C-M-@

sélectionne la prochaine expression lisp

M-h

sélectionne le paragraphe

C-M-h

sélectionne la fonction lisp

C-x h

sélectionne tout le buffer

C-x C-p

sélectionne la page

C-u C-SPC

déplace le ponteur vers une des 16 précédentes positions de la marque

8.24 Sélection rectangulaire

Le rectangle est défini par la marque et le pointeur

C-x r k ('kill-rectangle')

coupe le rectangle et l'enregistre dans une zone spéciale (une seule place)

C-x r d ('delete-rectangle')

efface le rectangle

C-x r y ('yank-rectangle')

colle un rectangle

C-x r o ('open-rectangle')

insère des espace dans le rectangle, poussant les autres caractères

M-x clear-rectangle

remplace le rectangle par des espaces

M-x string-rectangle RET CHAINE RET

insére la chaine dans chaque ligne du rectangle


Page suivante Page précédente Table des matières