Emacs est une famille déditeurs de texte disposant dun ensemble extensible de fonctionnalités. Il est très populaire parmi les programmeurs et plus généralement les personnes ayant des compétences techniques sur les ordinateurs.
LEMACS originel signifiant Editing MACroS running on TECO cestàdire "macros dédition pour TECO" a été écrit en 1975 par Richard Stallman initialement avec Guy Steele. Il a été inspiré par les idées développées dans TECMAC et TMACS deux jeux de macros dédition pour TECO notamment écrits par Guy Steele Dave Moon Richard Greenblatt et Charles Frankston.
Il utilise un langage dextension puissant Emacs Lisp qui permet la prise en charge de tâches évoluées telles que lécriture et la compilation de programmes la navigation sur le WEB la lecture des forums de discussion ou du courrier électronique.
Il convient toutefois de rappeler quil sagit avant tout dun éditeur de texte et non pas dun traitement de texte. Ses très nombreuses fonctionnalités sont destinées à aider lutilisateur à manipuler des morceaux de texte plutôt que de manipuler des polices de caractères ou dimprimer des documents (Bien quEmacs en soit capable). Emacs propose une multitude de fonctionnalités pour accomplir la faussement simple tâche déditer du texte depuis la manipulation des mots et des paragraphes (Les effacer les déplacer sy déplacer ...) jusquà la coloration syntaxique pour faciliter la lecture du code source en passant par les macros au clavier pour exécuter nimporte quelle séquence interactive ou non de commandes définies par lutilisateur.
La richesse de fonctionnalités offerte par Emacs est le résultat dune conception inhabituelle. Pratiquement toutes les fonctionnalités de léditeur depuis les opérations dédition de base comme linsertion dun caractère dans un fichier jusquà la configuration de linterface utilisateur sont contrôlées par le biais dun dialecte du langage de programmation Lisp appelé Emacs Lisp. Dans cet environnement Lisp les variables et même les fonctions peuvent être modifiées à la volée sans quil soit nécessaire de recompiler ou même de redémarrer léditeur. De ce fait le comportement dEmacs peut être changé presque sans limite par lutilisateur ou (Plus généralement) en chargeant dimportantes portions de code appelées libraries ("Bibliothèques") packages ("Paquetages") ou extensions.
Emacs inclut un grand nombre de bibliothèques Emacs Lisp mais de nombreuses autres bibliothèques indépendantes peuvent être trouvées sur Internet. Beaucoup de bibliothèques proposent des facilités pour les programmeurs reflétant la popularité dEmacs parmi les informaticiens. Emacs peut être utilisé comme un environnement de développement intégré (EDI) permettant aux programmeurs de modifier compiler et débuguer leur code depuis une unique interface. Dautres bibliothèques ont des fonctions moins habituelles par exemple :
* Calc une calculatrice numérique performante.
* Calendarmode pour gérer son emploi du temps.
* Doctor une version de ELIZA qui propose une psychothérapie Rogerienne basique.
* Dunnet un jeu daventure en mode texte.
* Ediff pour travailler de manière interactive avec les fichiers de différences.
* Emerge pour comparer des fichiers et les fusionner.
* Emacs/W3 un navigateur web.
* ERC (Emacs) un client IRC.
* Gnus un client mail et news complet.
* MULE (MUltiLingual extensions to Emacs) permettant lédition de texte écrit dans plusieurs alphabets et plusieurs
langues semblable à Unicode.
* Info un navigateur hypertexte pour laide en ligne.
* Tetris.
Emacs permet lédition de textes écrits dans différentes langues. Il supporte plusieurs alphabets écritures systèmes décritures et conventions culturelles. Emacs est capable deffectuer la vérification orthographique pour de nombreuses langues en faisant appel à des programmes externes tel que ispell. De nombreux encodages de texte sont reconnus et utilisables y compris UTF8. XEmacs 21.5 sait gérer intégralement Unicode et cette fonctionnalité est en cours de développement dans GNU Emacs. Toutefois linterface dEmacs est en anglais et na pas été traduite dans dautres langues. Pour les utilisateurs mal ou nonvoyants il existe un soussystème appelé Emacspeak qui permet dutiliser léditeur exclusivement au travers dinteractions sonores.
Emacs est lun des programmes informatiques nontrivaux les plus portés. Il fonctionne sur un grand nombre de systèmes dexploitation notamment la plupart des systèmes UNIX (GNU/Linux les différents systèmes BSD Solaris AIX Mac OS X ...) MSDOS Microsoft Windows et OpenVMS.
Emacs fonctionne à lidentique dans une console ou dans un environnement graphique. Sur les systèmes de type UNIX Emacs utilise X Window System pour son interface graphique soit directement soit en faisant appel à une bibliothèque de widgets comme Motif LessTif ou GTK+. Emacs est aussi capable dutiliser les systèmes graphiques natifs de Mac OS X (Grâce à lAPI Carbon) et de Microsoft Windows. Linterface graphique propose des barres de menus et doutils des barres de défilement et des menus contextuels.