Et voici une nouvelle version majeure pour notre éditeur de texte préféré. La fonctionnalité la plus attendue est certainement le prise en charge d’une forme native de concurrence pour le langage Emacs Lisp, qui devrait permettre la disparition d’actions bloquantes pour l’utilisateur.
Pour celles et ceux ne vivant pas dans Emacs, on rappellera que ce n’est pas un simple éditeur de texte. D’abord, cette version d’Emacs est le bébé de Richard Stallman, ensuite, c’est surtout une machine virtuelle qui tourne en Emacs Lisp. On peut écrire des extensions avec un vrai langage de programmation, pour à peu près tout faire, y compris un éditeur de texte ou le café.
Emacs comptant une longue histoire, ses raccourcis clavier peuvent dérouter le débutant, qui devra passer par une phase d’apprentissage (alt-x help-with-tutorial
) et appréciera certainement des Kits de démarrage comportant une configuration complète par défaut (les populaires étant Prelude et Spacemacs, orienté édition modale, avec une excellente émulation de vim, evil-mode, et une bonne aide interactive avec which-key-mode).
Emacs et son écosystème (voir les extensions sur elpa (officiel) ou melpa) comporte quelques « killer‐apps », telles que Org-mode ou Magit, dont on profite pour parler un petit peu plus bas.
Sommaire
-
Améliorations
- Org-mode 9.1
- Améliorations à Dired, le navigateur de fichiers
- Ajout d’une forme de concurrence avec les fils d’exécution
- Plein de couleurs pour le terminal
- Générateurs pour Emacs Lisp
- Rafraîchissement graphique par double tampon vidéo…
- Nouvelle option mouse-drag-and-drop-region
- Tramp peut se connecter à Google Drive
- Flymake, le vérificateur de syntaxe à la volée, a été complètement réécrit
- Nouveau mode pour les numéros de ligne
- Fichier unité systemd
- Initialisation des variables locales
- La fonction « occur » fonctionne sur une région
- Détection de fichier modifié améliorée
- Mode compilation amélioré pour CMake
- EWW, Emacs Web browser
- Ispell comprend d’autres moteurs de correction orthographique
- Conclusion
Améliorations
Org-mode 9.1
Emacs est livré avec Org-mode v9.1 par défaut. On peut bien sûr mettre à jour Org-mode indépendamment.
Org-mode est un outil inégalé d’Emacs, à l’instar de Magit (vidéo sur C’est la Z). Org-mode vous permet de noter « votre vie en texte brut ». C’est non seulement un langage de modèles (à la Markdown), mais un outil de gestion de tâches, de planning, de temps, de rédaction (exportations en LaTex, PDF, HTML, ODS…) et bien plus encore.
Cf. une vidéo d’introduction et la série de tutoriels en trois parties présentée ici‐même.
Améliorations à Dired, le navigateur de fichiers
Dired est le gestionnaire de fichiers en mode texte d’Emacs, que l’on obtient lorsque l’on ouvre un répertoire (C-x C-f répertoire/
RET). On peut effectuer tout un tas d’opérations, avec les commandes d’édition de texte habituelles de notre configuration Emacs.
N’oubliez pas de regarder les menus pour vous repérer au début.
Dired a reçu plusieurs améliorations, par exemple dans le mode wdired
(writable-dired), si l’on met une ou des plusieurs obliques (slashes) dans un nom de fichier, les répertoires correspondants seront créés.
Une nouvelle commande sur le W (browse-url-of-dired-file
) permet d’ouvrir le fichier dans son navigateur Web (utile pour les HTML).
Dans image-dired, entre autres améliorations, la génération de vignettes (thumbnails) est maintenant asynchrone.
Ajout d’une forme de concurrence avec les fils d’exécution
Arrivée d’une couche plutôt bas niveau pour donner de la concurrence native au code Emacs Lisp. L’objectif est de rendre certaines opérations non bloquantes du point de vue utilisateur, et de manière plus intégrée pour le développeur que les extensions actuelles. Sous le capot, on se rapproche assez de Python, avec un verrou (GIL) et les fils d’exécution (threads) qui s’exécutent chacun leur tour de manière coopérative. L’avenir nous dira ce qui émerge de ces fondations.
Plein de couleurs pour le terminal
Les couleurs codées sur 24 bits sont maintenant pleinement utilisées dans les terminaux adéquats. Pour les n00bs, sachez qu’Emacs est d’abord un logiciel avec des fenêtres graphiques. ;)
Générateurs pour Emacs Lisp
Emacs Lisp acquiert des générateurs [bon article].
Rafraîchissement graphique par double tampon vidéo…
… et sous le gestionnaire X.Org, afin de supprimer les effets de clignotement (flickering) lorsque l’on redimensionnait des fenêtres.
Nouvelle option mouse-drag-and-drop-region
Cette nouvelle option permet de glisser‐déposer des régions de texte à la souris. Pour manipuler des régions de texte on aime bien move-text.
Tramp peut se connecter à Google Drive
Cette fonctionnalité est basée sur le système de fichiers virtuel GVFS de GNOME.
Tramp permet de se connecter à des systèmes de fichiers distants (par exemple, se connecter à son serveur distant en SSH) et d’éditer les fichiers distants sous son Emacs habituel.
Par ailleurs, Tramp peut maintenant envoyer un signal d’interruption SIGINT
à un processus distant.
Flymake, le vérificateur de syntaxe à la volée, a été complètement réécrit
Flymake est le mode par défaut qui effectue les vérifications de syntaxe à la volée, pour tout langage de programmation. Il est en concurrence avec Flycheck, actuellement très bien pris en charge.
Il gère maintenant plusieurs back‐ends simultanés, il peut annoter des régions de texte et pas uniquement des lignes, il permet de définir des types de notification autres que « erreur » et « alerte » (warning), et son interface utilisateur a été revue.
Il a été réécrit par João Tavora, auteur notamment du système de modèles Yasnippet et de l’EDI Common Lisp Sly.
Nouveau mode pour les numéros de ligne
L’extension linum-mode faisait le boulot, mais on a maintenant un mode réécrit en C et donc plus efficace. Pour l’activer globalement : M-x global-display-line-numbers-mode
.
Fichier unité systemd
systemctl --user enable emacs
Certainement utile pour emacs-server ou pour ceux qui utilisent emacs comme gestionnaire de fenêtres (ewnctl).
Initialisation des variables locales
On peut définir des variables spécifiques à un fichier ou à un répertoire (dans un fichier .dir-locals
).
Elles sont maintenant initialisées à chaque fois que leur mode majeur est activé, pas uniquement à la lecture du fichier ou répertoire. De plus, un second fichier est accepté : .dir-locals-2.el
[doc].
La fonction « occur » fonctionne sur une région
On aime également helm-swoop :
Détection de fichier modifié améliorée
Emacs ne demande plus de sauvegarder un fichier quand il n’a en fait pas été modifié. Au lieu de se baser uniquement sur la date de modification, Emacs regarde maintenant le contenu du fichier.
Mode compilation amélioré pour CMake
Les messages de CMake sont maintenant reconnus et le nombre d’erreurs, d’alertes et d’infos est affiché sur la mode‐line en temps réel suivant la compilation.
EWW, Emacs Web browser
EWW reçoit son lot d’améliorations :
-
M-RET
, pour ouvrir le lien dans un nouveau tampon ; -
s
, pour choisir un tampon eww avec le mini-tampon ; -
C
, pour basculer l’usage des couleurs ; - les images sont chargées de manière asynchrone.
Tutoriel : http://ergoemacs.org/emacs/emacs_eww_web_browser.html.
Ispell comprend d’autres moteurs de correction orthographique
Ispell, le vérificateur d’orthographe, peut utiliser pour base d’autres logiciels comme Voikko, Hspell ou AppleSpell.
Conclusion
Si vous n’avez jamais essayé, sachez que compiler Emacs n’est pas bien long. C’est avec cette nouvelle version que l’on pourra profiter de nouveaux paquets bien cools tels que, par exemple, eglot, une interface généraliste au Language Server Protocol ou elbank, un gestionnaire de finances personnelles.
Aller plus loin
- Notes de version (209 clics)
- Dépêche pour Emacs 25.1 (184 clics)
- Liens de téléchargement (202 clics)
- Spacemacs, Emacs + modal editing + préconfigurations (676 clics)
- Site officiel (211 clics)
- Awesome-emacs, liste d’extensions incroyables et utiles (302 clics)
- C’est la Z — Using Emacs series (vidéos) (199 clics)
# Compiler
Posté par dzecniv . Évalué à 6.
En fait, pour compiler Emacs (5min pas plus):
L'exécutable est dans
src/emacs
.[^] # Re: Compiler
Posté par HL . Évalué à 1. Dernière modification le 08 juin 2018 à 09:36.
La valeur de j ne dépend pas du nombre de cœurs dans le processeur ? La page qui illustre la compilation de Krita recommande la valeur nombre de cœurs + 1.
[^] # Re: Compiler
Posté par Aris Adamantiadis (site web personnel) . Évalué à 4.
Je recommande à tout le monde de tester au moins une fois la compilation d'un gros projet C++ avec
make -j
sans préciser le nombre de jobs maximum.[^] # Re: Compiler
Posté par Jehan (site web personnel, Mastodon) . Évalué à 10.
Configurer avec le préfixe par défaut (
/usr/local
), et surtout installer en root est le meilleur moyen de pêter un jour son système. C'est fortement déconseillé.De manière générale, il n'y a absolument aucune raison de faire quoi que ce soit avec les droits d'administrateur quand on compile un programme (bien sûr, hormis les quelques cas spéciaux de logiciels qui ont besoin de droits d'admin pour par exemple ajouter un setuid, ou logiciels très bas niveau, ou autre; je doute qu'emacs soit un de ces cas particuliers, sauf erreur), malgré les nombreux tutos qui pullulent sur le sujet et qui se recopient les uns les autres sans réfléchir.
En fait sous Linux, on peut (et on a toujours pu) installer des logiciels sans le moindre droit admin (encore une fois, sauf exceptions)!
Donc, déjà s'il y a une option générique des autotools à connaître, c'est
--prefix
qui permet de choisir un préfixe d'installation perso. Dans mon cas, je prends souvent$HOME/.local
. Ainsi l'appel devient:Puis au moment de l'installation, un simple:
Pas de
sudo
nécessaire! Vous avez tous les droits d'accès dans votre $HOME.Bien sûr, il est fort probable que votre système ne met pas les variables d'environnements appropriés pour trouver un logiciel dans
$HOME/.local
(quoique j'ai déjà vu cela, ce préfixe est assez classique car il est parent de$XDG_DATA_HOME
). Je conseille de rajouter cela dans votre~./.bashrc
:Et voilà!
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Compiler
Posté par jeberger (site web personnel) . Évalué à 4.
Plutôt dans le
~/.profile
qui a l'avantage de fonctionner même pour ceux qui n'utilisent pas bash, voire dans le~/.xprofile
qui vaut aussi pour l'environnement graphique (mais qui peut dépendre des distrib)…[^] # Re: Compiler
Posté par dzecniv . Évalué à 1.
Merci; dans ce cas
make install
avec ou sans sudo est optionnel, sans ça on obtient quand même l'exécutableemacs
danssrc/
.[^] # Re: Compiler
Posté par Guillaume Denry (site web personnel) . Évalué à 2.
Certes, c'est optionnel, mais je vois pas bien quel serait l'intérêt de se passer de
make install
. Une fois que tu as compilé ton binaire, je vois pas bien comment tu veux l'exécuter facilement plus tard.[^] # Re: Compiler
Posté par dzecniv . Évalué à 2.
re (en retard),
le binaire compilé se trouve dans le dossier
src
, il suffit de l'appeler par son chemin:.src/emacs
, tout simplement.# Bébé de RMS ?
Posté par Xavier Maillard . Évalué à 3.
Salut,
je n'ai pas trop compris cette histoire de version qui serait "le bébé de RMS". Certes je ne regarde plus trop la liste emacs-dev depuis des mois mais je suis un peu le développement et je n'ai rien vu de spécial. Alors en quoi cette version plus qu'une autre ?
[^] # Re: Bébé de RMS ?
Posté par gouttegd . Évalué à 9.
Je pense que « cette version d’Emacs » fait référence non pas à cette release 26.1 (par opposition aux versions précédentes), mais au fait qu’il s’agit spécifiquement de GNU Emacs, par opposition à tous les autres Emacs (comme Gosling Emacs, XEmacs… cf la timeline Emacs de Jamie Zawinski).
[^] # Re: Bébé de RMS ?
Posté par lepieru . Évalué à 1.
Sans doute.
Je rajouterai même que RMS ne fait plus parti des mainteneurs de GNU Emacs depuis un bon moment (source : https://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02140.html).
[^] # Re: Bébé de RMS ?
Posté par dzecniv . Évalué à 2.
je pensais à cela tout à fait ! merci
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.