Présentation d'Emacs
Emacs est souvent perçu comme un éditeur de texte, mais il est en réalité un environnement de travail complet avec un langage de scriptage intégré, son propre logiciel et une machine virtuelle cross-plateforme. L'éditeur de texte n'est qu'un des nombreux programmes disponibles dans cet environnement, aux côtés d'un terminal, d'un client de messagerie électronique, d'un client IRC, d'un gestionnaire de fichiers et même d'un navigateur web.
Architecture et fonctionnement
Emacs est basé sur un interpréteur Lisp et un framework qui s'exécutent au-dessus d'un système d'exploitation de manière agnostique, réimplémentant une grande partie des programmes qu'il offre. Cela signifie que les utilisateurs peuvent créer leurs propres scripts et workflows en utilisant le langage de scriptage Elisp, sans avoir besoin de quitter l'environnement Emacs ou de toucher au système d'exploitation sous-jacent.
Implications et limites
Emacs n'est pas un système d'exploitation, car il n'a pas de pilotes, de noyau ou d'outils de bas niveau, et il ne peut pas fonctionner sans un système d'exploitation. Il n'est pas non plus un environnement de développement intégré (IDE) classique, car il n'y a pas de jeu d'outils par défaut axé sur la programmation dans un langage spécifique. Cependant, les utilisateurs peuvent installer des packages pour ajouter des fonctionnalités telles que des serveurs de langage, des débogueurs et des lint.
Exemple de workflow
Un exemple de workflow dans Emacs consiste à créer une fonction Elisp pour sauvegarder un dossier spécifique. Au lieu d'écrire un script bash, l'utilisateur peut créer une fonction Elisp qui effectue la même tâche, puis ajouter une interface graphique pour les entrées et les sorties. Cela peut être réalisé en utilisant le code suivant :
(require 'widget)
;; Logique
(defun my/backup-run (folder target zip)
"Sync FOLDER into TARGET with rsync, or compress it to a zip when ZIP."
(let* ((folder (expand-file-name folder))
(target (expand-file-name target)))
...))
Cela montre comment Emacs peut être utilisé comme un environnement de travail complet, avec un langage de scriptage intégré et une interface graphique, pour automatiser des tâches et créer des workflows personnalisés.