Comment utiliser Emacs comme lecteur USENET avec Gnus

Lecteur Usenet Emacs Gnus

USENET est un système de messagerie mondial décentralisé. Il est considéré comme le premier réseau social mondial avec plus de 100 000 groupes discutant de divers sujets et spécialisations. Cela fait de USENET un répertoire de connaissances et de discussions particulièrement bon pour le lecteur intéressé.

Table des matières

  • Qu’est-ce que gnus ?
  • Pourquoi utiliser un lecteur de nouvelles dans Emacs ?
  • Installation de gnus
  • Configuration de gnus pour lire les groupes USENET
  • Utilisation de base
  • Questions fréquentes

À lire aussi : Comment utiliser Emacs pour jouer de la musique avec EMMS

Qu’est-ce que gnus ?

Malgré le déclin de USENET ces dernières années, il y a encore des gens qui l’utilisent pour abriter des discussions et partager des nouvelles. La plupart des utilisateurs de USENET de nos jours interagissent avec le réseau via le site Web de Google Groups. Si vous utilisez Emacs, cependant, il existe un moyen de consulter les groupes de discussion USENET à travers celui-ci.

Lecteur Gnus 01 Liste des groupes de discussion

Gnus est un package Emacs conçu pour lire les groupes de discussion. C’est un programme riche qui possède de nombreuses fonctionnalités puissantes qui rendent la lecture des nouvelles facile et pratique. De plus, étant à l’intérieur d’Emacs, l’utilisateur peut facilement manipuler le texte dans les messages et l’utiliser avec le reste du système Emacs.

Pourquoi utiliser un lecteur de nouvelles dans Emacs ?

Emacs a toujours été vanté comme l’évier de la cuisine de l’extensibilité. Non seulement parce qu’il a de nombreux packages et fonctionnalités supplémentaires, mais il est également très facile d’étendre les fonctions de base d’Emacs en dehors de l’édition de texte.

Emacs fonctionne sur l’idée d’interopérabilité. Cette idée permet à Emacs d’utiliser ses packages pour former un environnement complet où vous pouvez créer du texte et le modifier de différentes manières.

Lecteur Gnus 02 Interopérabilité Emacs

Par exemple, Emacs est livré avec son propre gestionnaire de fichiers : dired, un simple package Emacs qui vous permet de parcourir une structure de répertoire et d’ouvrir des fichiers. Cependant, contrairement à d’autres gestionnaires de fichiers, dired affiche ses résultats sous forme de texte.

Si vous utilisez également Org Mode pour le journal, vous pouvez copier ce texte et créer des liens élaborés depuis dired dans vos fichiers Org.

Lecteur Gnus 03 Dired

Avec la capacité d’Emacs à utiliser la sortie texte d’un package comme entrée dans un autre package, cela rend un lecteur de nouvelles comme gnus inestimable pour l’écosystème Emacs.

Cela vous permet, par exemple, de copier un passage de texte d’un message d’actualité, puis de mettre ce texte dans Org Mode et de l’ajouter comme entrée de journal, post d’agenda ou capture d’idée.

À lire aussi : 5 packages Emacs utiles pour une meilleure productivité

Installation de gnus

Gnus est inclus dans chaque installation par défaut d’Emacs depuis la version 19.32. Si vous utilisez une version récente d’Emacs, il y a de fortes chances qu’il soit déjà livré avec gnus.

Lecteur Gnus 04 Gnus intégré

Vous pouvez vérifier si gnus est installé sur le système en appuyant sur Alt + X et en tapant gnus. Cela chargera une version nue et non configurée de gnus.

Configuration de gnus pour lire les groupes USENET

La configuration initiale de gnus est relativement simple. Vous devez seulement définir quelques options dans votre fichier init.el pour créer un fichier .newsrc.

Le fichier .newsrc est un fichier standard pour les lecteurs de groupes de discussion situé dans votre répertoire personnel. Son objectif principal est de consigner tous les groupes disponibles et abonnés sur un serveur USENET.

De plus, le fichier .newsrc agit également comme un fichier d’état qui suit tous les messages que vous avez déjà lus.

Lecteur Gnus 05 Liste des groupes Usenet

Pour créer un fichier .newsrc, exécutez la commande suivante :

touch/home/$USER/.newsrc

À lire aussi : Comment configurer Leafnode comme serveur USENET hors ligne

Configuration initiale

Une fois cela fait, vous pouvez commencer à configurer le fichier init.el, le fichier de configuration pour Emacs. Par défaut, vous pouvez trouver ce fichier soit dans “/home/$USER/.emacs.d/” soit dans “/home/$USER/.config/emacs.”

Pour initialiser correctement gnus, vous devez ajouter les lignes suivantes au fichier init.el :

(setq user-full-name '"yourusername")  
(setq user-mail-address '"[email protected]")  
(setq gnus-select-method '(nntp "news.eternal-september.org"))
  • Le user-full-name est une option générale qui définit votre nom d’utilisateur dans Emacs. Ce sera le nom que gnus affichera dans votre en-tête “De” lorsque vous enverrez des messages d’actualité.
  • L’user-mail-address est également une option générale. Semblable à user-full-name, cela indique à gnus d’afficher cet e-mail dans votre en-tête “De”. Dans mon cas, j’ai utilisé une adresse e-mail invalide.
  • La dernière option, gnus-select-method, est une option spécifique à gnus qui indique au lecteur de nouvelles quel service et serveur connecter. Dans mon cas, j’ai sélectionné le service nntp avec “news.eternal-september.org” comme serveur.

Lecteur Gnus 06 Emacs Init El

À lire aussi : 8 invites Bash utiles et intéressantes

Authentification USENET à distance

Une chose importante à noter est que si vous utilisez un fournisseur USENET qui nécessite une authentification, vous devez fournir vos informations de compte dans un fichier authinfo. C’est le fichier où gnus lira les détails du serveur USENET ainsi que votre nom d’utilisateur et votre mot de passe.

Lecteur Gnus 07 Emacs Authinfo

Pour en créer un, vous pouvez appuyer sur Ctrl + X, Ctrl + F et taper /home/$USER/.authinfo dans Emacs. Cette commande créera un fichier .authinfo dans votre répertoire personnel et l’ouvrira dans un tampon.

La syntaxe générale du fichier .authinfo ressemble à ceci :

machine news.domain.name login yourusername force yes password yourpasswordgoeshere
  • La variable machine indique que vous vous connectez à une machine ou un serveur différent.
  • Le champ domain indique à gnus qu’il s’agit de l’adresse de la machine à laquelle vous souhaitez vous connecter.
  • Le champ login est l’endroit où vous mettrez le nom d’utilisateur de votre compte USENET.
  • L’option “force yes” indique à gnus de vous authentifier même si le serveur ne l’exige pas.
  • Enfin, la variable password contient le mot de passe de votre compte USENET.

Utilisation de serveurs USENET locaux

De plus, gnus peut également prendre ses sources à partir d’un fichier spool local. Cela est utile si vous avez un service qui télécharge automatiquement vos groupes de discussion sur votre machine locale.

Pour ce faire, vous devrez modifier le paramètre nntp dans la fonction “gnus-select-method” :

(setq gnus-select-method '(nnspool ""))

Cependant, si vous utilisez Leafnode comme votre serveur USENET local, vous devrez le configurer comme un serveur NNTP. Cela est dû au fait que Leafnode se comporte davantage comme un serveur USENET plutôt que comme un répertoire normal “/var/spool/”.

Pour utiliser un serveur Leafnode qui fonctionne sur la même machine, vous pouvez taper ce qui suit :

(setq gnus-select-method '(nntp "localhost"))

Une fois cela fait, exécutez gnus en appuyant sur Alt + x et en tapant gnus dans le tampon de commande. Cela chargera gnus et récupérera tous les groupes disponibles sur votre serveur USENET distant.

À lire aussi : Comment réinitialiser le mot de passe root sous Linux

Utilisation de base

Une fois que gnus est chargé, vous serez accueilli par un écran vide. Cela est dû au fait que, par défaut, gnus cache tous les groupes de discussion qui ne sont pas abonnés et lus.

Vous pouvez voir une liste de tous les groupes de discussion disponibles sur le serveur USENET en appuyant sur Shift + 6. Cela fera apparaître l’écran du serveur pour gnus. Dans mon cas, cela a affiché tous les groupes de discussion disponibles d’Eternal September.

Lecteur Gnus 08 Groupes de discussion Usenet

Abonnement aux groupes USENET

À partir de là, vous pouvez appuyer sur U pour vous abonner ou vous désabonner d’un groupe de discussion particulier. Cela mettra ce groupe sur l’écran d’accueil lorsque vous démarrez gnus pour la première fois.

Par exemple, je me suis abonné à “alt.religion.emacs” et “alt.folklore.computers” dans l’écran du serveur. Une fois que j’ai rechargé gnus, il a mis ces deux groupes sur l’écran principal pour que je puisse les parcourir.

Lecteur Gnus 09 Écran principal de Gnus

À lire aussi : Comment configurer un serveur SFTP sous Linux

Mouvement dans le tampon

À partir de là, appuyez sur Entrée pour entrer dans le groupe de discussion, et utilisez les touches de mouvement standard d’Emacs, telles que Ctrl + N et Ctrl + P, pour faire défiler les différents messages dans le groupe.

Lecteur Gnus 10 Folklore des ordinateurs Alt

Vous pouvez également appuyer sur la touche Entrée ou Tab pour ouvrir un message et utiliser les touches Retour arrière et Espace pour faire défiler vers le haut et vers le bas dans le message.

Utilisez la fonction de recherche d’Emacs (Ctrl + S et Ctrl + R) pour parcourir rapidement les messages afin de trouver ce que vous voulez.

Publier et répondre aux messages USENET

Pour créer un nouveau message dans un groupe de discussion, appuyez sur A pour faire apparaître un éditeur de message où vous pouvez écrire les détails de votre message.

Lecteur Gnus 11 Nouveau message

Appuyez sur Ctrl + C deux fois lorsque vous avez terminé pour envoyer le message à ce groupe de discussion particulier.

Mais si vous souhaitez répondre à un message dans un groupe, vous pouvez appuyer sur Shift + S, Shift + F. Cela ouvrira un tampon “Followup” où gnus vous amènera à un éditeur de message avec le message original déjà cité pour vous.

Lecteur Gnus 12 Nouveau suivi

Semblable à la publication d’un nouveau message, vous pouvez appuyer sur Ctrl + C deux fois pour envoyer le suivi à ce message.

Astuce : Découvrez comment vous pouvez utiliser le courrier électronique dans Emacs.

Filtrage à travers les fichiers de score

Gnus dispose également d’un système de filtrage puissant mais simple à utiliser qui utilise des fichiers de score. C’est différent d’un fichier killfile régulier où les messages sont automatiquement “tués” lorsqu’un certain motif ou critère est atteint.

Les fichiers de score permettent à l’utilisateur de réduire ou d’augmenter progressivement le score interne d’un message particulier, ce qui indique à gnus quels messages prioriser et lesquels cacher ou ne pas extraire du serveur distant.

Types de filtrage

De plus, gnus dispose également d’un système de filtrage riche en fonctionnalités. Il permet à l’utilisateur de contrôler et d’affiner les différentes parties d’un filtre particulier.

Lecteur Gnus 13 Propriété de filtre 1

Par exemple, si je veux abaisser le score d’un message particulier, je peux simplement le mettre en surbrillance et appuyer sur L. Cela fera apparaître un petit menu dans le tampon de commande qui me demandera quelle propriété du message je souhaite utiliser pour le score.

La liste des propriétés est vaste, mais les plus importantes sont :

  • A pour scorer par rapport au nom de l’auteur.
  • S pour scorer par rapport au texte du sujet.
  • L pour scorer par rapport au nombre de lignes.
  • B pour scorer par rapport au corps du texte.

Dans mon cas, je veux scorer ce message en fonction de l’auteur du message, donc j’ai appuyé sur A.

Méthodes pour faire correspondre le filtre

À partir de là, gnus vous demandera le type de correspondance de chaîne que vous souhaitez mettre en œuvre dans ce score. Vous pouvez choisir parmi exact, sous-chaîne, flou et expressions régulières :

  • Exact utilise la chaîne entière pour faire correspondre le texte.
  • Sous-chaîne utilise des morceaux de la chaîne pour faire correspondre le texte. Cela signifie que le message n’a pas besoin d’avoir tout le texte correspondant pour être touché.
  • Flou utilise un modèle prédictif basé sur les messages précédents disponibles pour le groupe de discussion. Cela est particulièrement utile pour les affichages créatifs qui essaient de contourner la correspondance de sous-chaîne en utilisant des symboles, des chiffres et toute forme d’obscurcissement de leur texte.
  • Regexp utilise les expressions régulières plus traditionnelles pour filtrer le texte.

Lecteur Gnus 14 Type de filtre

Dans mon cas, j’ai sélectionné sous-chaîne donc j’ai appuyé sur S.

À lire aussi : 5 excellents helpers AUR pour Arch Linux

Durée du filtre

Enfin, gnus vous demandera si vous souhaitez que ce score soit temporaire, permanent ou immédiat.

  • Temporaire signifie que le score expirera à une date définie. C’est utile lorsque vous souhaitez simplement abaisser ou augmenter le score d’un message ou d’un affichage particulier pour une période limitée.
  • Permanent signifie que le score n’expirera pas. C’est utile pour filtrer les spammeurs qui pourraient venir perturber le groupe.
  • Immédiat signifie que gnus appliquera le score au tampon actuel sans l’ajouter au fichier de score. C’est utile si vous souhaitez simplement filtrer les messages maintenant mais ne souhaitez pas les scorer de manière persistante.

Lecteur Gnus 15 Temps de filtre

Dans mon cas, je voulais que ce filtre soit permanent donc j’ai appuyé sur P.

Félicitations ! Vous avez maintenant une compréhension de base de la façon d’utiliser gnus comme lecteur de nouvelles dans Emacs. De plus, vous avez également une idée de base de la façon de vous connecter à un serveur USENET authentifié ainsi que d’utiliser correctement les fichiers de score et le filtrage.

Cependant, si toute cette discussion vous a donné envie d’en savoir plus sur Emacs, alors vous devriez apprendre comment installer Doom Emacs.

À lire aussi : Qu’est-ce que Doom Emacs et comment l’installer

Questions fréquentes

J’ai écrit un message et je ne veux plus l’envoyer. Comment puis-je annuler mon message ou mon suivi ?

Il est inconnu, mais il peut être possible d’annuler le message actuel que vous êtes en train d’écrire. Pour ce faire, vous pouvez appuyer sur Ctrl + C, Ctrl + D.

Est-il possible d’ajouter plusieurs serveurs USENET dans gnus ?

Oui ! Vous devez simplement ajouter une autre variable “gnus-select-method” dans votre fichier init.el.

Par exemple, votre fichier init.el pourrait ressembler à ceci :

(setq user-full-name '"ramcesred") (setq user-mail-address '"[email protected]") (setq gnus-select-method '(nntp "news.eternal-september.org")) (setq gnus-select-method '(nntp "nntp.aioe.org")) (setq gnus-select-method '(nntp "localhost"))

Une fois cela fait, rechargez simplement Emacs pour recharger votre configuration gnus.

J’ai lu un article, et maintenant il a disparu de ma liste d’écran principal. Est-il possible pour moi de fixer un message particulier lorsque je le suis activement ?

Oui ! Vous pouvez le faire en utilisant la fonction gnus-summary-tick-article-forward. Vous pouvez accéder à cette fonction en appuyant sur la touche U pendant que ce message est sélectionné.

Il est important de noter, cependant, que cela ne “fixera” que cet article. Toutes les autres réponses dans ce fil ne s’afficheront pas par défaut. Pour ce faire, appuyez sur Shift + A, Shift + T pour reconstruire l’ensemble du fil pour ce sujet.