La nouvelle version de l'éditeur multi-fonctions Emacs est sortie le 17 septembre 2016. La nouveauté la plus voyante est l'intégration de Xwidget, qui permet d'intégrer des widgets X directement, et ainsi ouvrir un navigateur web basé sur webkit dans Emacs et, pourquoi pas, de regarder des vidéos YouTube.
Sommaire
- Nouveau site Web, nouvelle icône
- Intégration de Xwidgets
- Amélioration de Eww, le navigateur Web en mode texte
- Prise en charge expérimentale de Cairo
- Emacs peut charger des bibliothèques externes dynamiquement
- Navigation dans le code : Xref veut remplacer etags
- Nouvelle méthode pour insérer des caractères Unicode
- Améliorations du gestionnaire d’extensions
- Nouvelle fonctionnalité : Project
- Seq.el et map.el
- Amélioration de l’historique de query-replace
- Autorevert dans le navigateur Dired
- Autres
- Comment tester
- Annexe
Nouveau site Web, nouvelle icône
Suivant la mise à jour du site officiel, l’icône d’Emacs change :
Avant | Après |
---|---|
On peut toujours reconnaître un E et des cornes de GNU !
Intégration de Xwidgets
Si vous avez GTK 3 et webkitgtk3 d’installés, vous pouvez ouvrir un navigateur Webkit dans Emacs avec la commande M-x xwidget-webkit-browse-url
. C’est le seul widget qu’on puisse utiliser pour le moment.
Exemple : aller sur YouTube.
Combiné à helm-dash, pour chercher le symbole sous le curseur :
Mais cela ne rend pas Eww, le navigateur en mode texte, caduc pour autant. Il a d’ailleurs subi quelques améliorations.
Enfin, il est a noter que l’intégration de Xwidget est encore expérimentale.
Amélioration de Eww, le navigateur Web en mode texte
Le HTML peut être rendu avec des fontes de largeur variable. La commande F
permet de les utiliser ou pas.
La nouvelle commande R
(eww-readable
) va essayer d’afficher uniquement les parties de texte intéressantes, donc de cacher les menus et autres. Il paraît que ça marche très bien et qu’on s’y habitue vite.
Le nouveau raccourci M-s M-w
permet de rechercher le texte sélectionné avec le moteur de recherche de la variable eww-search-prefix
.
On peut maintenant avoir plusieurs tampons eww en parallèle (en renommant le tampon).
La nouvelle commande S
permet de lister les tampons eww et de s’en occuper.
Il y a encore d’autres apports sympas.
Prise en charge expérimentale de Cairo
Si vous compilez Emacs avec --with-cairo
, vous aurez droit à un support expérimental de Cairo, la bibliothèque de gestion de l’affichage 2D. Si, de plus, vous compilez pour GTK+, vous gagnez la prise en charge de l’impression.
Même s’il est encore trop tôt pour le dire, ceci pourrait permettre d’améliorer l’affichage d’images matricielles et vectorielles, ou alors faire en sorte que l’affichage se fasse sur la carte graphique directement. N’hésitez‐pas à tester, et à remonter les bogues !
Emacs peut charger des bibliothèques externes dynamiquement
… donc, sans recompilation. On peut maintenant écrire des greffons compliqués dans un language natif. Je réfère à cette discussion.
Notez que les motivés peuvent écrire des extensions pour Emacs en Haskell.
Pour cela, le module doit fournir une fonction appelable depuis le C, nommée emacs_module_init
, chargée durant un load
ou require
d’Emacs. En outre, le symbole plugin_is_GPL_compatible
doit également être exporté, car GNU/Emacs refuse tout module n’exportant pas ce symbole.
Bien entendu, ce que représente plugin_is_GPL_compatible
et la réalité va probablement diverger rapidement.
À noter que les modules externes peuvent également appeler des fonctions d’Emacs via une API idoine (emacs-module.h
).
Navigation dans le code : Xref veut remplacer etags
Emacs permet de naviguer dans le code, comme aller à la définition d’une fonction, grâce à un mécanisme de gestion d’une base de données d’étiquettes : etags. etags était d’abord dédié à emacs lisp, puis est apparu ctags pour le C, puis gtags pour GNU, puis ctags s’est vu gérer les Universal tags, etc.
Bref, c’est devenu le chaos avec pleins de paquets permettant de faire plus ou moins la même chose, mais pas forcément bien.
C’est ainsi qu’est né Xref (à lire cross ref, pour référence croisée) en tant que cadriciel générique de gestion d’étiquettes. Xref déprécie etags et fournit des commandes génériques pour que plusieurs back‐ends les implémentent.
etags a été converti en back‐end de Xref et est donc le premier.
Plusieurs back‐ends verront le jour, tel que xref-js2 pour le JavaScript.
Nouvelle méthode pour insérer des caractères Unicode
On peut le faire avec C-x 8
, on a la complétion par défaut. Il paraît que helm-ucs
fait aussi bien le taf.
Améliorations du gestionnaire d’extensions
Depuis sa version 24, Emacs a package.el
pour installer des extensions (sans compter les moyens précédents, comme el-get
). Ce système reçoit de nombreux apports.
Si un paquet est présent dans plusieurs dépôts, par défaut, seule sera montrée la version de notre dépôt marquée comme prioritaire.
On peut filtrer la liste des paquets (M-x package-list-packages
) avec deux nouveaux mots‐clefs : arc:
, pour l’archive et status:
, pour le statut.
Le téléchargement et l’installation de tout ça peut se faire de manière asynchrone.
Les paquets qui sont toujours les dépendances d’autres paquets ne peuvent pas être supprimés par défaut.
Nouvelle fonctionnalité : Project
Project est un paquet officiel qui, comme des extensions très populaires telles que Projectile, fournit quelques commandes pour travailler à l’intérieur d’un projet (par exemple, défini comme un projet Git) ; notamment la commande project-find-file
ou project-find-regexp
. Encore une fois, Projectile fait cela très bien.
GNU/Emacs a toujours été en retard sur ce point‐là, mais peut‐être que cet effort‐ci gagnera en popularité et en fonctionnalité dans le temps.
Seq.el et map.el
Ces deux bibliothèques font leur apparition grâce aux efforts de Nicolas Petton, par ailleurs l’auteur du nouveau site et la personne en charge des sorties d’Emacs.
seq.el introduit une interface unifiée pour opérer sur les séquences (listes, vecteurs, chaînes de caractères). Il est possible de l’étendre pour gérer d’autres types de séquences (exemple : stream.el). Cela vient combler un gros vide dans l’écosystème Emacs. Jusqu’à maintenant de nombreux développeurs, utilisaient dash.el (disponible sur GNU ELPA) pour manipuler les listes ; eq.el va donc plus loin en permettant de manipuler plus de structures de données, mais dash a pour elle quelques fonctionnalités propres (les macros threading ou anaphoric, par exemple).
De manière similaire map.el opère sur les dictionnaires (conteneurs de type clef‐valeur). Les tables de hachages, tableaux et listes associatives sont gérés. De la même manière que seq.el, map.el est pensée pour être extensible.
Nicolas Petton a présenté ces deux bibliothèques lors du GNU Hackers Meeting de 2016 (lien vers la vidéo et source html/org). De nombreux exemples et cas d’utilisation y sont exposés.
Amélioration de l’historique de query-replace
Depuis la commande query-replace
, l’appui sur les touches M-p
, fait défiler l’historique de remplacement sous la forme « FROM SEP TO ». « FROM » et « TO » correspondant respectivement au texte original et à son remplacement. « SEP » est un séparateur sous la forme d’une flèche. Il est possible de le modifier en personnalisant la variable query-replace-from-to-separator
.
Un exemple en image (source : http://endlessparentheses.com) :
Autorevert dans le navigateur Dired
La liste de fichiers affichée par le navigateur Dired peut être automatiquement rafraichie en utilisant les notifications du système de fichiers (annonce). Dired a également reçu des améliorations.
Autres
Json
Les commandes json-pretty-print[-buffer]
maintiennent l’ordre des clefs.
Tramp
Tramp, pour accéder à des fichiers sur une machine distante, connaît maintenant la méthode de connexion « afp », pour Mac OS X [doc].
Comment tester
Les builds sont plus ou moins arrivés selon la plate‐forme. Les utilisateurs d’Arch Linux sont servis, ceux d’Ubuntu ont un PPA, et Emacs 25 ne semble pas être arrivé dans Debian Sid. On peut télécharger Emacs sur un mirroir GNU.
Mais comment tester Emacs ? C’est une bête un peu sauvage au démarrage. Par conséquent, quelques « kits de démarrage » (starter kits), qui proposent une configuration de base plus poussée, plus sympa et modulaire, ont un certain succès :
-
Spacemacs allie Emacs avec l’édition modale, style Vim. On peut également essayer
evil-mode
sans Spacemacs. À noter que Spacemacs propose deux configurations, une simple et une complète (bien que lourde) ; - Emacs-Prelude est un kit de démarrage populaire, avec une configuration modulaire ;
- il existe aussi des kits pour les scientifiques.
Annexe
- si vous ne connaissez pas Magit, la meilleur interface utilisateur à Git, alors vous avez loupé un truc. Faites un rebase interactif en trois touches de frappe. Voyez aussi les outils Git dans Emacs, l’intégration de GitHub et de GitLab ;
- org-mode est aussi un attrait spécifique à Emacs.
Aller plus loin
- Revue sur MasteringEmacs (252 clics)
- Notes de version (41 clics)
- Site officiel (202 clics)
- Wikemacs (55 clics)
- Discussion Reddit (62 clics)
- Série d’articles sur Emacs 25 par Endlessparenthesis (89 clics)
# Commentaire supprimé
Posté par Anonyme . Évalué à 10. Dernière modification le 22 septembre 2016 à 22:26.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Mauvais titre
Posté par rzr (site web personnel) . Évalué à 3.
typo
M-x replace-regex htlm html
gpg:0x467094BC
[^] # Re: Mauvais titre
Posté par Benoît Sibaud (site web personnel) . Évalué à 3.
Corrigé, merci.
[^] # Re: Mauvais titre
Posté par dzecniv . Évalué à 4.
On te remercie !
# kit de démarrage léger
Posté par chimay . Évalué à 1.
Comme kit de démarrage minimal, on peu conseiller :
ça simplifie énormément la suite du processus ;)
[^] # Re: kit de démarrage léger
Posté par 41px . Évalué à 1.
Il y a aussi swiper pour la complétion.
[^] # Re: kit de démarrage léger
Posté par RyDroid . Évalué à 1.
Il y a aussi AutoComplete (mais il ne gère pas à ma connaissance les noms de fichiers). http://auto-complete.org/ https://packages.debian.org/stable/auto-complete-el
# gif 404
Posté par 41px . Évalué à 0.
Il y a 2 gif en 404
[^] # Re: gif 404
Posté par ʭ ☯ . Évalué à 6. Dernière modification le 23 septembre 2016 à 08:20.
Il n'y avait plus de 405 disponibles, désolé.
⚓ À g'Auch TOUTE! http://afdgauch.online.fr
# Mise à jour
Posté par hocwp (site web personnel) . Évalué à 8.
Cool : c'est le moment de mettre à jour son OS.
Merci pour la dépêche.
[^] # Re: Mise à jour
Posté par jyes . Évalué à 10.
On notera d’ailleurs c’est officiel, le stylo a disparu du nouveau logo pour refléter qu’Emacs n’est pas un éditeur de texte. Peut-être que sa nouvelle capacité à charger des bibliothèques dynamiques permettra d’en ajouter un rapidement. Il faudra quand-même patienter un peu, il n’y a pas encore de libvim autonome.
# EmacsOS
Posté par Guillaume Maillard (site web personnel) . Évalué à 1.
Y a t'il une roadmap pour les prochaines versions? Il semble que ce système d'exploitation est sur le point d'être complet… il ne manque que la gestion audio et un parefeu.
[^] # Re: EmacsOS
Posté par hocwp (site web personnel) . Évalué à 2.
Pour le parefeu, je sais pas mais pour l'audio bongo est vachement bien !
# Logo
Posté par saltimbanque (site web personnel) . Évalué à 4.
Arf c'était mieux avant. Vim peut chopper l'ancien et enfin decoller
# spacemacs
Posté par saltimbanque (site web personnel) . Évalué à 2.
/me veut tester. Je teste brièvement si je trouve un package : pas au premier abord, la page ne dit pas si c'est hebergé quelque part… bon.
Alors c'est une install en parralèle? bon lisons ce qu'ils disent (j'ai finis par trouver sur github…)
- il faut la version 24.3 ou + ok
- faire un backup puis git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
bon donc comment s'attirer les foudres de 99% des utilisateurs. Vraiment, dégager sa config? bon je me doute qu'on peux se débrouiller pour ensuit reprendre mais c'est pas sérieux.
Ensuite ça dit de lancer emacs. Désolé chez moi je n'ai que le "vanilla" emacs. ça dit aussi de relancer emacs (sympa le départ, même doze c'est mieux!!) mais idem chez moi. oh, ça dit aussi d'essayer avec un argument --insecure ; au point où on en est allez tentons : "unknown option --insecure". J'ai pourtant la bonne version d'emacs, peut être ma distrib aura t'elle choisi de ne pas inclure cet argument, mais je crois que de ttes façons pour un "starter kit" censé faciliter on aura difficilement vu pire.
Quitte à connaître une install pénible je resterai sans doute sur mon propre package. Mais je testerai plus tard, qui sait.
[^] # Re: spacemacs
Posté par saltimbanque (site web personnel) . Évalué à 3.
<-- install résolue, je me répondrai plus tard… merci de vos retours sur expérience (surtout s'ils sont plus positifs)
[^] # Re: spacemacs
Posté par saltimbanque (site web personnel) . Évalué à 4.
hmm spacemacs n'est qu'une surcouche
on peut visiblement facilement ajouter des variantes, les mixer, etc mais il y a déjà cent mille manière de le faire.
J'en resterai à mes vieux credo, le meilleur raccourcis pour "chercher" c'est control+f , le meilleur pour sauver control+s. la mémoire ça a de meilleures utilités que de mémoriser des raccourcis des années folles ;)
[^] # Re: spacemacs
Posté par zurvan . Évalué à 2. Dernière modification le 27 septembre 2016 à 16:09.
J'ai suivi les instructions d'installation, mais ça me donne (sur emacs 25.2.50 ou 24.3):
et ensuite c'est tout cassé. C'est dommage, ça semblait pas mal.
« Le pouvoir des Tripodes dépendait de la résignation des hommes à l'esclavage. » -- John Christopher
[^] # Re: spacemacs
Posté par saltimbanque (site web personnel) . Évalué à 2.
peut être https://github.com/syl20bnr/spacemacs/issues/5020
y'en a un qu'y a scratché son répertoire elpa pour contourner le bogue
moi je tenterai le debug init pour identifier quel package est vérolé et essayer de mettre une version différente de ce package, voire le virer s'il semble un en-plus
# Ah Emacs...
Posté par Dylann . Évalué à 1.
Trollolo… Est-ce qu'il y aura bientôt un plugin pour lancer un éditeur de texte dans cet OS qu'est Emacs ? ;-)
[^] # Re: Ah Emacs...
Posté par saltimbanque (site web personnel) . Évalué à 7.
y'a un hack pour ça : lance tétris, fait un high score, puis quand il demande ton nom utilise ce champs comme éditeur de texte
# dev emacs
Posté par knarf2 . Évalué à 7.
J'arrive un peu tard mais sait-on jamais (je lis rarement linuxfr ces dernière années).
Je contribue de temps à autre à Emacs, j'ai notamment travaillé sur l'implémentation des modules dynamique (une des nouvelles fonctionnalités) pendant à peu près 1 an: convaincre que c'était important, définir l'interface, l'implémenter en plusieurs itérations, bike-shedder sur la mailing-list, …
Si vous avez des questions sur le développement d'emacs ou sur les modules je peux probablement y répondre :)
[^] # Re: dev emacs
Posté par Tonton Th (Mastodon) . Évalué à 2.
Je ne sais pas ce que tu as implémenté dans ton site perso, mais ça n'est probablement pas ce à quoi tu pense…
[^] # Re: dev emacs
Posté par Benoît Sibaud (site web personnel) . Évalué à 3.
Lien « Site perso » supprimé pour éviter de potentiels contenus malveillants. Il n'aura qu'à le remettre une fois le souci traité.
# Prise en charge expérimentale de Cairo
Posté par gato . Évalué à 1.
Emacs arrive bientôt au niveau de gedit :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.