Emacs

Fiche logiciel validé
  • Création ou MAJ importante : 26/10/13
  • Correction mineure : 26/10/13
Mots-clés
Pour aller plus loin

Emacs : éditeur de texte

Description
Fonctionnalités générales

Emacs est un éditeur de texte multiplateforme qui permet de créer, d'éditer et de traiter presque tous types de documents texte au travers de très nombreux modes d'édition : développement dans plusieurs langages (coloration syntaxique, édition dirigée par la syntaxe en C, Perl, Python, HTML, SGML, XML, TeX/LaTeX et des dizaines d'autres), mais aussi le shell (et ses commandes), la lecture/écriture de mail/news, agenda, voire navigation web. Il a une très longue histoire (premières versions vers 1985). Il en existe même plusieurs déclinaisons, les principales étant gnuemacs et XEmacs.

Il est conçu à partir d'un interpréteur Lisp (elisp pour Emacs LISP) qui lui permet d'être très facilement programmable donc :

  • d'être facilement paramétrable et donc personnalisable (le fichier de configuration étant un simple fichier texte) ;
  • de pouvoir réaliser des tâches complexes en mode non interactif ;
  • d'enregistrer puis d'automatiser des traitements répétitifs (macros).

Comme son concurrent direct Vim, il possède les fonctions habituelles d'un éditeur de texte comme :

  • multi-fenêtrage, multi-fichiers ;
  • auto-complétion et auto-indentation ;
  • comparaison visuelle de 2 fichiers ;
  • coloration syntaxique ;
  • replis de portion de texte ;
  • recherche et substitution de texte par expressions régulières ;
  • possibilité de définir des abréviations ;
  • système de plugins ;
  • fonction défaire/refaire multi-niveau ;
  • correction orthographique.

Bien qu'ayant des objectifs multiples, il ne peut être utilisé comme traitement de texte WYSIWYG, mais il contient de nombreux outils permettant de réaliser de l'édition de texte sophistiquée (qui ont été ensuite inclus dans d'autres outils) comme par exemple :

  • Le "chercher/remplacer" par expressions rationnelles (query-replace-regexp ) ;
  • Le "chercher/remplacer" dans une multitude de fichiers (tags-query-replace) ;
  • La "sélection rectangulaire" (kill-rectangle) ;
  • La lecture de courrier électronique (gnus ou rmail) ;
  • L'édition de fichiers à distance via un protocole réseau (ftp, ssh, etc via le mode tramp ou ange-ftp) ;
  • Il permet de faire le lien entre un débogueur (gdb) et le code source (C ou C++) en cours d'édition.
Autres fonctionnalités

Il contient plusieurs milliers de fonctions qu'il n'est pas possible d'énumérer.

Il est néanmoins auto-documenté (info-mode) ce qui permet de consulter la documentation en même temps qu'on l'utilise.

De nombreuses fonctions (appelé un mode) peuvent lui être ajoutées comme par exemple :

  • Org-mode est un mode emacs plutôt récent qui permet la prise de note, la gestion de TODO list, la planification de projets, le suivi de son agenda et pouvant servir comme outil pour la méthode GTD (http://orgmode.org/) ;
  • Anything rajoute une fonction de recherche globale (http://www.emacswiki.org/emacs/Anything).

Beaucoup d'extensions peuvent être installées de façon semi-automatique avec ELPA (http://tromey.com/elpa/).

Interopérabilité

Emacs permet de manipuler des fichiers texte donc sans format particulier. Il faut noter qu'il sait correctement traiter tous les codages de caractères (ASCII, latin-1, Unicode, etc) et possède des fonctions complexes de transformation d'un codage vers un autre.

Contexte d'utilisation dans mon laboratoire/service

Édition de sources Fortran/C/C++/Python et LaTeX.

Limitations, difficultés, fonctionnalités importantes non couvertes

À cause de sa longue histoire, qui remonte avant l'invention des interfaces graphiques, Emacs propose des modes de fonctionnements qu'un utilisateur débutant peut trouver rebutant :

  • l'interaction avec l'utilisateur passe essentiellement par le clavier (avec des combinaisons de touches qui peuvent sembler complexes mais qui sont très cohérentes en interne) ;
  • des notions de base comme le copier-coller ont des fonctionnement plus complexes que sous d'autres environnements ;
  • son apprentissage est assez lent, car il contient un grand nombre de fonctions (20 ans après mes débuts, il m'arrive de découvrir de nouvelles fonctionnalités).

À noter qu'il fonctionne aussi bien en mode graphique qu'en mode console, ce qui permet de l'utiliser à distance sur des machines sans écran.

Pour ces raisons, il déclenche chez les utilisateurs un amour ou une haine violente : http://fr.wikipedia.org/wiki/Guerre_d%27%C3%A9diteurs

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Emacs est disponible dans de nombreuses distributions de type Unix, mais il est également utilisable sous Windows ou Mac OS

Plates-formes

GNU/Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Mac OS X, MS Windows, MS DOS, AIX 4.3.3 (et supérieur), SunOS, Ultrix

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Ce logiciel a été essentiellement développé par Richard Stallmann.

De par son âge et son auteur, on peut le considérer comme un des premiers des logiciels libres, un grand ancêtre.

Eléments de pérennité

Emacs est un logiciel libre sous licence GPL qui fait partie du patrimoine.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
  • Comment commencer avec Emacs : http://guidespratiques.traduc.org/vf/Emacs-Beginne...
  • Le tutoriel inclus dans Emacs (taper Control-h puis la lettre t, que l'on note C-h t en emacs).
  • Chaque distribution contient un fichier refcard qui contient un mémento sur une page recto/verso (il existe en français).
  • Le site http://www.emacswiki.org/ donne beaucoup d'informations supplémentaires, notamment sur un grand nombre d'extensions.