Emacs est un éditeur de texte qui permet multi-fenêtrage, recherche incrémentale, recherche d'expression régulière, annulation récursive, et, à l'aide de programmes externes : contrôle de version, vérification orthographique au vol, comparaison et recherche sur plusieurs fichiers.

Emacs est adapté à la plupart des écritures, notamment la chinoise.

Les fonctions d'Emacs sont accessibles rapidement à l'aide de combinaisons de touches ou raccourcis, demandant un effort de mémoire.

Emacs peut fonctionner en mode graphique (GUI) ou en mode texte (dans un terminal, sans souris), à distance, par ssh, en consommant peu de données.

Emacs fonctionne aussi en mode serveur, c'est-à-dire, au service d'une autre application, par exemple Skim.

Emacs en mode graphique supporte les inclusions graphiques.

Emacs a des modes spécialisés (par exemple pour HTML, Python, LaTeX, C), plus ou moins équivalents à des environnements de développement intégrés.

Emacs est extensible à l'aide d'un gestionnaire de paquets.

Emacs peut être configuré interactivement. La configuration peut être enregistrée globalement, pour un seul mode ou pour un seul fichier.

Emacs a un explorateur de système de fichier, un système de documentation hypertexte : Info, un langage d'automatisation des tâches : Emacs Lisp. (Aussi un navigateur web, une messagerie électronique, difficiles à configurer ou désuets.)

Emacs est un logiciel libre, gratuit et public, disponible ou livré avec presque tous les systèmes d'exploitation, sauf iOS et Android.

Pour commencer

Les raccourcis commencent par : Control (C) ou Meta (M). Control et Meta doivent être maintenues enfoncées, ce qu'on note avec un tiret (C-) ou (M-). Au lieu de Meta, on peut utiliser Escape (ESC), qui ne doit pas être maintenue enfoncée donc M-x équivaut à ESC x. L'emplacement des touches Control, Meta et Escape dépend du clavier et du système depuis lequel est lancé Emacs. Sur un Mac avec Mac OS, Control est ctrl (ou control), Meta est cmd (ou command), Escape est esc. Sur un Mac avec Linux, Control est ctrl, Meta est option ou alt.

Ouvrir le tutoriel français : M-x set-language-environment RTN French ou C-x RTN l French puis M-x help-with-tutorial ou C-h t. Interrompre : C-g ou ESC ESC ESC. Quitter : C-x C-c. Version : M-x emacs-version.

Autres sources :

Astuces

À l'ouverture d'un fichier de texte, Emacs trouve le premier décodage possible dans une liste dépendant de la localisation et modifiable. Information sur le décodage : M-x describe-coding-system ou C-h C. Obtenir la liste des décodages possibles : M-x list-coding-systems ou M-x l-cod RTN.

Changer le décodage : M-x revert-buffer-with-coding-system ou C-x RET r.

Changer le codage : M-x set-buffer-file-coding-system RTN ou C-x RTN f.

Représenter un caractère non ASCII en macro TeX : M-x iso-iso2tex et inversement M-x iso-tex2iso.

Information sur le caractère sous le curseur : C-u C-x =.

Basculer le drapeau de protection d'un fichier (variable toggle-read-only) : C-x C-q. Si on lance cette commande sans la connaître (involontairement), on se trouve avec un tampon modifié qu'on ne peut pas sauver !

Modifier un fichier « sur place », en conservant la version précédente sous un nom différent et (son inode donc) ses liens durs : C-h v backup-by-copying et donner à cette variable un valeur non nulle. Par exemple, cela peut servir à modifier un fichier crontab d'Unix.

Emacs et Unix

Des raccourcis d'Emacs sont utilisables dans la ligne de commande des shells Unix comme bash, zsh.

Emacs sert d'interface à des programmes externes : shells, aspell, bibtex, ccrypt, etags, gpg, info, latex, man

Emacs fourni avec le système est /usr/bin/emacs. Sur Mac, on aura avantage à utiliser une version plus récente et graphique : Emacs for Mac OS X. Emacs peut dépendre des conditions de compilation.

Pour qu'Emacs hérite des variables d'environnement d'un shell, il suffit de le lancer depuis ce même shell (et non en cliquant une icone sur le bureau), par exemple, sur Mac  :

% /Applications/Emacs-25.2.app/Contents/MacOS/Emacs


Dernière modification : (2023-06-12 14:04:49 WEST)