\chapter{GNU Emacs} \label{chap:emacs} Emacs est l'Éditeur de texte des éditeurs de texte. À l'origine un éditeur pour les programmeurs (avec des modes spéciaux pour une multitude de langages différents), Emacs est devenu au fil du temps un environnement logiciel en soi dans lequel on peut réaliser une foule de tâches différentes: rédiger des documents {\LaTeX}, interagir avec R, SAS ou un logiciel de base de données, consulter son courrier électronique, gérer son calendrier ou même jouer à Tetris! Cette annexe passe en revue les quelques commandes essentielles à connaître pour commencer à travailler avec GNU Emacs et le mode ESS. \section{Mise en contexte} \label{sec:emacs:contexte} Emacs est le logiciel étendard du projet GNU («\emph{GNU is not Unix}»), dont le principal commanditaire est la \emph{Free Software Foundation} (FSF) à l'origine de tout le mouvement du logiciel libre. \begin{itemize} \item Richard M.\ Stallman, président de la FSF et grand apôtre du libre, a écrit la première version de Emacs et il continue à ce jour à contribuer au projet. \item Les origines de Emacs remontent au début des années 1980, une époque où les interfaces graphiques n'existaient pas, le parc informatique était beaucoup plus hétérogène qu'aujourd'hui (les claviers n'étaient pas les mêmes d'une marque d'ordinateur à une autre) et les modes de communication entre les ordinateurs demeuraient rudimentaires. \item L'âge vénérable de Emacs transparaît à plusieurs endroits, notamment dans la terminologie inhabituelle, les raccourcis clavier non conformes aux standards d'aujourd'hui ou la manipulation des fenêtres qui ne se fait pas avec une souris. \end{itemize} Emacs s'adapte à différentes tâches par l'entremise de \emph{modes} qui modifient son comportement ou lui ajoutent des fonctionnalités. L'un de ces modes est ESS (\emph{Emacs Speaks Statistics}). \begin{itemize} \item ESS permet d'interagir avec des logiciels statistiques (en particulier R, S+ et SAS) directement depuis Emacs. \item Quelques-uns des développeurs de ESS sont aussi des développeurs de R, d'où la grande compatibilité entre les deux logiciels. \item Lorsque ESS est installé, le mode est activé automatiquement en ouvrant dans Emacs un fichier dont le nom se termine par l'extension \texttt{.R}. \end{itemize}