GNU Emacs v25.1 : regarder YouTube dans Emacs

Posté par  . Édité par Davy Defaud, Jiehong, ptitjano, Benoît Sibaud, ZeroHeure, M5oul et palm123. Modéré par bubar🦥. Licence CC By‑SA.
42
22
sept.
2016
GNU

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

Suivant la mise à jour du site officiel, l’icône d’Emacs change :

Avant Après
Ancienne icône Nouvelle icône

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).

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) :
query-replace

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) ; Spacemacs
  • 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

  • # Commentaire supprimé

    Posté par  . Évalué à 10. Dernière modification le 22 septembre 2016 à 22:26.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # kit de démarrage léger

    Posté par  . Évalué à 1.

    Comme kit de démarrage minimal, on peu conseiller :

    • el-get, le gestionnaire de package
    • helm, pour la complétion

    ça simplifie énormément la suite du processus ;)

  • # gif 404

    Posté par  . É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  (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  . É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  (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.

  • # Logo

    Posté par  (site web personnel) . Évalué à 4.

    Arf c'était mieux avant. Vim peut chopper l'ancien et enfin decoller

  • # spacemacs

    Posté par  (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  (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  (site web personnel) . Évalué à 4.

        hmm spacemacs n'est qu'une surcouche

        8.1 Editing Styles
        8.1.1 Vim. Spacemacs behaves like in Vim using Evil mode package to emulate Vim key bindings. […]
        8.1.2 Emacs Spacemacs behaves like in raw Emacs using the Holy mode which configures Evil to make the emacs > state the default state everywhere.

        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  . É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):

              Warning (initialization): An error occurred while loading ‘/home/login/.emacs.d/init.el’:
          
              Wrong type argument: (or eieio-object class), nil, obj
          
              To ensure normal operation, you should investigate and remove the
              cause of the error in your initialization file.  Start Emacs with
              the ‘--debug-init’ option to view a complete error backtrace.
          

          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

  • # Ah Emacs...

    Posté par  . É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  (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  . É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  (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  (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  . É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.