Emacs est une famille d'éditeurs de texte disposant d'un ensemble extensible de fonctionnalités. Il est populaire parmi les programmeurs et plus généralement les personnes ayant des compétences techniques sur les ordinateurs.
L'EMACS originel, signifiant Editing MACroS running on TECO, c'est-à-dire « macros d'édition pour TECO », a été écrit en 1976 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, David Moon, Richard Greenblatt et Charles Frankston.
De nombreuses versions d'Emacs sont apparues dans les années suivantes, mais actuellement deux versions sont vraiment prépondérantes : GNU Emacs, initié en 1984 par Richard Stallman, qui y contribue aujourd'hui encore, et XEmacs, un fork de GNU Emacs débuté en 1991, qui restent en grande partie compatibles.
Ces deux versions utilisent un langage d'extension 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.
Dans la culture UNIX, Emacs est traditionnellement l'un des deux belligérants de la guerre des éditeurs, son opposant étant vi (ou son équivalent amélioré Vim).
Emacs naquit au MIT AI Lab dans les années 1970. Avant sa création, l'éditeur par défaut sur ITS, le système d'exploitation des ordinateurs PDP-6 et PDP-10 du l'AI Lab, était un éditeur ligne par ligne connu sous le nom de TECO. Contrairement aux éditeurs de texte modernes, TECO traitait la saisie, l'édition et l'affichage du document comme des modes séparés, tel que vi le fit plus tard. La saisie de caractères dans TECO n'insérait pas les caractères directement dans le document ; il était nécessaire de donner une séquence d'instructions dans le langage de commande de TECO pour lui demander d'insérer les caractères souhaités. Pendant ce temps, le texte édité n'était pas affiché à l'écran.