URL: https://linuxfr.org/news/gnu-emacs-v25-1-regarder-youtube-dans-emacs Title: GNU Emacs v25.1 : regarder YouTube dans Emacs Authors: dzecniv Davy Defaud, Jiehong, ptitjano, Benoît Sibaud, ZeroHeure, M5oul et palm123 Date: 2016年09月19日T22:46:30+02:00 License: CC By-SA Tags: emacs, éditeur_de_texte et sortie_version Score: 42 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. ---- [Revue sur MasteringEmacs](https://www.masteringemacs.org/article/whats-new-in-emacs-25-1) [Notes de version](https://www.gnu.org/software/emacs/news/NEWS.25.1) [Site officiel](https://www.gnu.org/software/emacs/) [Wikemacs](http://wikemacs.org) [Discussion Reddit](https://www.reddit.com/r/programming/comments/538bft/emacs_251_released/?sort=top) [Série d’articles sur Emacs 25 par Endlessparenthesis](http://endlessparentheses.com/new-in-emacs-25-1-map-el-library.html) ---- # Nouveau site Web, nouvelle icône Suivant la mise à jour du [site officiel](https://www.gnu.org/software/emacs/), l’icône d’Emacs change : Avant | Après | ------------|-----------| ![Ancienne icône](http://git.savannah.gnu.org/gitweb/?p=emacs.git;a=blob_plain;f=etc/images/icons/hicolor/scalable/apps/emacs23.svg;hb=f0eb70d8935be90f7c03e187c12d9b60e7214cc6) | ![Nouvelle icône](http://git.savannah.gnu.org/gitweb/?p=emacs.git;a=blob_plain;f=etc/images/icons/hicolor/scalable/apps/emacs.svg;hb=f0eb70d8935be90f7c03e187c12d9b60e7214cc6) | 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](https://i.imgur.com/T5efpL0.gifv). [](https://i.imgur.com/T5efpL0.gifv) ![](https://i.imgur.com/T5efpL0.gifv) ![](https://i.imgur.com/T5efpL0.gifv) Combiné à _helm-dash_, pour chercher le symbole sous le curseur : ![](https://i.imgur.com/IcIo6af.gif) 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. ![](https://i.imgur.com/T5efpL0.gifv) # 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](https://www.masteringemacs.org/article/whats-new-in-emacs-25-1#eww). # 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_](https://www.reddit.com/r/programming/comments/538bft/emacs_251_released/d7rixkb). Notez que les motivés peuvent écrire des extensions pour [Emacs en Haskell](https://github.com/knupfer/haskell-emacs). 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_](https://github.com/NicolasPetton/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](https://www.masteringemacs.org/article/whats-new-in-emacs-25-1#package.el). 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](https://github.com/bbatsov/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](http://nicolas-petton.fr/), par ailleurs l’auteur du nouveau site et la personne en charge des sorties d’Emacs. [_seq.el_](https://github.com/NicolasPetton/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_](https://github.com/NicolasPetton/stream)). Cela vient combler un gros vide dans l’écosystème Emacs. Jusqu’à maintenant de nombreux développeurs, utilisaient [_dash.el_](https://github.com/magnars/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_](http://endlessparentheses.com/new-in-emacs-25-1-map-el-library.html) 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_](http://videos.rennes.inria.fr/Workshop-GNUHackersMeetings2016/expose-GNUNicolasPetton19aout2016.mp4) et [_source html/org_](http://nicolas-petton.fr/ressources/emacsconf2015/index.html)). 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 : ) : ![query-replace](http://endlessparentheses.com/images/query-replace-prompt.png) # Autorevert dans le navigateur Dired La liste de fichiers affichée par le navigateur [Dired](http://wikemacs.org/wiki/Dired) peut être automatiquement rafraichie en utilisant les notifications du système de fichiers ([_annonce_](https://www.masteringemacs.org/article/whats-new-in-emacs-25-1#autorevert)). Dired a également reçu des [améliorations](https://www.masteringemacs.org/article/whats-new-in-emacs-25-1#dired). # 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_](https://www.masteringemacs.org/article/whats-new-in-emacs-25-1#tramp)]. # 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](https://emacs.stackexchange.com/questions/12772/prebuilt-ubuntu-emacs-25-1), et Emacs 25 ne semble pas être arrivé dans [Debian _Sid_](https://packages.debian.org/sid/emacs). On peut télécharger Emacs sur un [mirroir GNU](https://www.gnu.org/software/emacs/download.html). 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](http://spacemacs.org/) 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) ; ![Spacemacs](http://spacemacs.org/img/screenshots/ss1.png) - [Emacs-Prelude](https://github.com/bbatsov/prelude) est un kit de démarrage populaire, avec une configuration modulaire ; - il existe aussi des kits [pour les scientifiques](http://wikemacs.org/wiki/Starter_Kits). # Annexe - si vous ne connaissez pas [Magit](http://magit.vc/), 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](http://wikemacs.org/wiki/Git) dans Emacs, l’intégration de [GitHub](http://wikemacs.org/wiki/Github#Integration_into_Magit) et de [GitLab](http://wikemacs.org/wiki/Gitlab) ; - [_org-mode_](http://orgmode.org/) est aussi un attrait spécifique à Emacs.

AltStyle によって変換されたページ (->オリジナル) /