Wie man Emacs für RSS mit Elfeed verwendet

Emacs Rss 00 Featured Image

Emacs ist ein sehr erweiterbares Softwarestück. Es kann Ihr Texteditor, Ihr E-Mail-Client und sogar Ihr USENET-Reader sein. Mit Elfeed können Sie Emacs auch als Ihren RSS-Feed-Reader verwenden.

Inhaltsverzeichnis

  • Was ist Elfeed?
  • Warum einen Feedreader in Emacs verwenden?
  • Elfeed in Emacs installieren
  • Ihren ersten RSS-Feed in Emacs einrichten
  • Wie man Feeds in Emacs automatisch taggt und filtert
  • Wie man Feeds basierend auf der URL automatisch taggt
  • Wie man benutzerdefinierte Farben und Schriftarten für Tags erstellt
  • Häufig gestellte Fragen

Auch lesen: 5 der besten RSS-Reader-Apps für macOS

Was ist Elfeed?

Elfeed ist ein leichter, aber leistungsstarker RSS-Feed-Reader, der für Emacs geschrieben wurde. Es verwendet ein einfaches tagbasiertes System, um Ihre RSS-Feeds zu sortieren. Darüber hinaus verfügt es auch über ein leistungsstarkes “hook-basiertes” Tagging-System, das es Ihnen ermöglicht, Feeds basierend auf ihrem Inhalt automatisch zu taggen.

Emacs Rss 02 Elfeed Summary

Das macht Elfeed nützlich für Menschen, die viele RSS-Feeds verfolgen und nach einer Möglichkeit suchen, ihre Feeds automatisch zu sortieren.

Auch lesen: Wie man Emacs verwendet, um Musik mit EMMS abzuspielen

Warum einen Feedreader in Emacs verwenden?

Emacs arbeitet im Sinne der Interoperabilität, da Emacs Daten nimmt und es ermöglicht, sie auf verschiedene Arten zu interpretieren.

Emacs Rss 03 Emacs Interoperability

Während Sie Emacs ausschließlich zum Bearbeiten von Text verwenden können, kann es Ihnen ermöglichen, auf Ihre E-Mails zuzugreifen, während Sie Text bearbeiten. Dies kann es Ihnen ermöglichen, den Text, den Sie schreiben, nahtlos in der E-Mail zu verwenden, die Sie verfassen.

Emacs Rss 04 Emacs Email Rss

Deshalb kann es verlockend sein, Ihren RSS-Feed-Reader in Emacs zu integrieren. Es würde Ihnen ermöglichen, die leistungsstarken Bearbeitungsfunktionen von Emacs zu nutzen, um Ihre Feeds und andere Funktionen in Emacs zu manipulieren.

Elfeed in Emacs installieren

Die Installation von Elfeed ist wirklich einfach. Es ist im GNU ELPA-Repository verfügbar, sodass Sie darauf zugreifen können, ohne Änderungen in Ihrer init.el-Datei vorzunehmen.

Emacs Rss 05 Elfeed Installed

Um Elfeed zu installieren, drücken Sie Alt + X, um das Befehlsfeld zu öffnen, geben Sie dann package-install ein. Sie müssen elfeed als Paketnamen angeben und die Eingabetaste drücken. Emacs wird den Quellcode von Elfeed herunterladen und ihn sofort danach kompilieren.

Ihren ersten RSS-Feed in Emacs einrichten

Nachdem es installiert ist, greifen Sie auf Elfeed zu, indem Sie Alt + X drücken und elfeed im Befehlsfeld eingeben. Dadurch wird ein leeres Elfeed-Fenster geladen.

Emacs Rss 06 Elfeed Clean

Es gibt zwei Möglichkeiten, einen RSS-Feed zu Elfeed hinzuzufügen:

  • Manuelles Bearbeiten Ihrer init.el-Datei
  • Ohne Emacs

Einen RSS-Feed manuell in Elfeed hinzufügen

Sie können Elfeed ganz einfach befüllen, indem Sie die Feed-URLs manuell in Ihrer init.el-Datei hinzufügen, da Elfeed eine Variable “elfeed-feeds” hat, die es verfolgt. Dies sagt Elfeed, welche Feeds abgerufen und auf dem Übersichtsbildschirm angezeigt werden sollen.

Zum Beispiel ist dies ein Ausschnitt aus meiner init.el-Datei.

(setq elfeed-feeds  
       '("https://feeds.maketecheasier.com/MakeTechEasier"  
"https://solar.lowtechmagazine.com/feeds/all-en.atom.xml"  
"https://old.reddit.com/r/f1technical.rss"))

Setq ist eine Emacs-Funktion, die den Wert einer bestimmten Variablen festlegt. In diesem Fall wird die Variable elfeed-feeds mit drei Feed-Links als Werten festgelegt.

Von dort aus wird Elfeed diese Links automatisch in seine interne Datenbank einfügen und sie beim nächsten Start des Programms laden.

Emacs Rss 07 Elfeed With Feeds

Einen RSS-Feed innerhalb von Emacs hinzufügen

Eine andere Möglichkeit, Elfeed zu befüllen, besteht darin, ihm Feed-Links zu geben, während es läuft. Dies ermöglicht es Ihnen, Ihre Feed-Liste aktiv mit RSS-Links zu aktualisieren, ohne Emacs neu zu laden.

Um dies zu tun, drücken Sie Alt + X, um das Befehlsfeld zu öffnen. Geben Sie elfeed-add-feed ein und drücken Sie die Eingabetaste. Elfeed wird Sie auffordern, die URL des Feeds anzugeben, den Sie laden möchten.

Emacs Rss 08 Url Zoom

In meinem Fall gebe ich unsere Feed-URL an Elfeed weiter, um tägliche Updates zu den neuesten Technologieartikeln zu erhalten.

Ich kopiere die Feed-URL und drücke Ctrl + Y im URL-Prompt, um den Link in Emacs einzufügen. Sobald er eingefügt ist, muss ich nur die Eingabetaste drücken, um die Feed-URL in Elfeed zu übernehmen.

Emacs Rss 09 Maketecheasier Feeds

Auch lesen: Wie man Dateien in Linux einfach umbenennt

Wie man Feeds in Emacs automatisch taggt und filtert

Neben der Auflistung und Anzeige von RSS-Feeds kann Elfeed auch eine Reihe von Funktionen ausführen, die es Ihnen ermöglichen, Ihre Feed-Liste fein abzustimmen.

Eine dieser praktischen Funktionen ist das automatische Tagging. Diese Funktion ermöglicht es Ihnen, RSS-Einträge, die von einem bestimmten Feed stammen, sofort zu taggen.

Wenn Sie beispielsweise mehrere Feeds zu einem bestimmten Thema haben, können Sie festlegen, dass sie alle dasselbe Tag haben, was es einfach und intuitiv macht, durch mehrere Feeds im Zusammenfassungsbildschirm zu sortieren.

Um dies zu tun, bearbeiten Sie die RSS-Feeds in Ihrer init.el-Datei. Werfen Sie einen Blick auf dieses kurze Beispiel.

(setq elfeed-feeds  
 '(("https://feeds.maketecheasier.com/MakeTechEasier" tech news)  
("https://solar.lowtechmagazine.com/feeds/all-en.atom.xml" tech)  
("https://old.reddit.com/r/f1technical.rss" tech f1)))

Um einen RSS-Feed automatisch zu taggen, müssen Sie zwei Dinge an Ihrem Standardformat elfeed-feeds tun:

  • Schließen Sie den Feed-Link in Klammern ein. Dies sagt elfeed-feeds, dass dieser spezifische Eintrag in der Variablen mehrere Teile hat.
  • Geben Sie ein Wort an, das als Ihr Tag für diesen speziellen Link fungiert. Sie können mehrere Tags angeben, solange Sie jeden von ihnen mit einem Leerzeichen trennen.

Emacs Rss 10 Automatically Tagged Feeds

Ihre RSS-Feeds in Elfeed filtern

Diese Tags arbeiten in Verbindung mit Elfeeds leistungsstarkem Filtersystem. Dies ermöglicht es Ihnen, Ihre RSS-Feeds nur nach Tags zu gruppieren.

Wenn Sie beispielsweise RSS-Feeds haben, die als “news”, “news tech” und “news gaming” getaggt sind, ermöglicht es Elfeed, alle unter dem Tag “news” zu gruppieren.

Um Ihre Feed-Liste zu filtern, drücken Sie S, während Sie sich in Elfeed befinden, um die Filteraufforderung von Elfeed anzuzeigen. Standardmäßig enthält die Aufforderung Folgendes:

@6-months-ago +unread
  • Das @-Symbol zeigt einen Datumsbereich an. Dies könnte ein absolutes Datum wie “2022-02-22” oder ein relatives wie “3-days-ago” sein.
  • Das “ + “-Symbol ist ein Tag-Operator, der Elfeed sagt, dass alle Feeds, die dieses Tag haben, ausdrücklich einbezogen werden sollen.

Emacs Rss 11 Default Filter

Mit dem im Hinterkopf, betrachten Sie den folgenden RSS-Feed.

[0](setq elfeed-feeds  
[1] '(("https://feeds.maketecheasier.com/MakeTechEasier" tech news)  
[2]("https://solar.lowtechmagazine.com/feeds/all-en.atom.xml" tech)  
[3]("https://old.reddit.com/r/f1technical.rss" tech f1)  
[4]("https://www.autosport.com/rss/f1/photos/" f1)  
[5]("https://www.philstar.com/rss/world" news)))

Um das Tag “tech” zu filtern, geben Sie “ +tech “ in die Filteraufforderung von Elfeed ein, um die ersten drei Links im Zusammenfassungsfenster von Elfeed anzuzeigen. Wenn Sie jedoch “ +news “ hinzufügen, zeigt Elfeed den ersten und den fünften Tag an.

Wenn Sie dies wissen, können Sie spezifischer mit Ihrer Filterlogik sein. Wenn Sie beispielsweise alle Tech-Links, aber ohne “f1” einbeziehen möchten, können Sie Folgendes eingeben:

+tech -f1

Wie man Feeds basierend auf der URL automatisch taggt

Eine andere Möglichkeit, RSS-Einträge in Elfeed automatisch zu taggen, besteht darin, sie basierend auf der URL zu sortieren. Dies ist nützlich, wenn Sie Elfeed verwenden, um sich für RSS-Feeds anzumelden, die eine ähnliche URL-Struktur haben.

Emacs Rss 12 Medium Webpage

Um dies zu tun, verwenden Sie Elfeeds elfeed-new-entry-hook. Dies ist eine Hook-Funktion, die einen benutzerdefinierten Befehl basierend auf bestimmten Bedingungen ausführt. Diese Funktion wird jedes Mal ausgeführt, wenn ein Eintrag mit dem Befehl elfeed-add-feed hinzugefügt wird.

Sie können die Funktion elfeed-make-tagger innerhalb dieses Hooks verwenden. Dies ist eine allgemeine Funktion, die Links basierend auf den von Ihnen festgelegten Optionen taggt. Daher könnte die Kombination der beiden Funktionen zur Erstellung eines automatischen Taggings so aussehen:

(add-hook 'elfeed-new-entry-hook  
(elfeed-make-tagger :feed-url"medium\.com"  
:add '(medium)))

Emacs Rss 13 Medium Feed

Diese Funktion wird automatisch jeden Link taggen, der den Slug “medium.com” enthält.

Sie können auch spezifischer mit den Optionen sein, die Sie mit elfeed-make-tagger festlegen. Zum Beispiel können Sie sowohl einen Feed basierend auf der URL taggen als auch Einträge herausfiltern, die älter als drei Monate sind:

(add-hook 'elfeed-new-entry-hook  
(elfeed-make-tagger :feed-url"medium\.com"  
:before"3 months ago"  
:add 'medium))

Wie man benutzerdefinierte Farben und Schriftarten für Tags erstellt

Neben dem automatischen Tagging können Sie auch anpassen, wie Elfeed aussieht, basierend auf dem Tag, mit dem es arbeitet. Dies ist nützlich, wenn Sie möchten, dass Feeds mit einem bestimmten Tag hervorstechen.

Emacs Rss 14 Custom Faces

Um dies zu tun, müssen Sie die Funktion elfeed-search-face-alist neu definieren. Dies ist der Befehl, den Elfeed verwendet, um das Erscheinungsbild des Zusammenfassungsfensters zu ändern. Daher können Sie zur Neudefinition dieser Funktion die Funktionen defface und push verwenden:

  • Die defface-Funktion erstellt ein neues “Gesicht” für Emacs. Das “Gesicht” ist eine Menge von Werten, die sowohl Schriftarten als auch Hintergrundfarben enthalten können.
  • Die push-Funktion hingegen fügt einer bestehenden Funktion in Emacs eine Definition hinzu.

Mit dem im Hinterkopf können Sie diese Funktionen kombinieren, um ein benutzerdefiniertes “Gesicht” für Elfeed zu erstellen. Zum Beispiel ist dies ein benutzerdefiniertes Gesicht, das das f1-Tag in Rot hervorhebt.

(defface elfeed-face-tag-f1  
  '((t :foreground"#f00"))  
"Dies ist eine benutzerdefinierte Schriftart für das F1-Tag in Elfeed.")  
  
(push '(f1 elfeed-face-tag-f1)  
      elfeed-search-face-alist)

Herzlichen Glückwunsch! Sie wissen jetzt, wie man Emacs als RSS-Reader mit Elfeed verwendet. Darüber hinaus haben Sie auch eine grundlegende Vorstellung davon, wie man Elfeed anpassen und automatisieren kann, um den Bedürfnissen Ihrer RSS-Feeds gerecht zu werden.

Wenn all diese Diskussion Sie dazu gebracht hat, darüber nachzudenken, was Sie noch mehr mit Emacs tun können, können Sie unseren Artikel über die besten Produktivitäts-Pakete für Emacs lesen.

Auch lesen: Wie man das Problem “Kann nicht im Terminal tippen” in Linux behebt

Häufig gestellte Fragen

1. Wie kann ich einen Feed in Elfeed löschen?

Sie können einen Feed auf zwei Arten entfernen: Löschen Sie den Eintrag des Feeds in Ihrer init.el-Datei oder verwenden Sie die Anpassungsfunktion von Emacs, um ihn zu entfernen.

Für ersteres besteht das Entfernen eines Feeds nur darin, die Feed-URL in Ihrer elfeed-feeds-Variablen zu löschen. Für letzteres müssen Sie jedoch Alt + X drücken, um das Befehlsfeld zu öffnen. Von hier aus müssen Sie customize eingeben. Dies öffnet das Anpassungsfenster für Emacs.

Von dort aus geben Sie elfeed-feeds in das Suchfeld ein. Dies bringt alle Feeds, bei denen Sie derzeit angemeldet sind.

Dies ermöglicht es Ihnen, einen Feed zu löschen, indem Sie auf die DEL-Tasten neben dem Feed-Link klicken. Sobald Sie fertig sind, können Sie die Schaltflächen Anwenden und Speichern unter der Suchleiste klicken, um Ihren Feed zu aktualisieren.

2. Was kann ich tun, wenn ich alle meine Feeds in Elfeed hinzugefügt habe und sie sich nicht aktualisieren?

Elfeed aktualisiert die Feed-Links nicht automatisch für Sie. Um die neuesten Einträge in Ihren Feeds abzurufen, drücken Sie Shift + G, um ein Update für alle derzeit abonnierten Feeds zu initiieren.

Wenn Sie nur einen bestimmten RSS-Feed aktualisieren möchten, führen Sie die Funktion elfeed-update-feed aus.

3. Meine automatischen Tags scheinen nicht zu funktionieren. Wie kann ich das lösen?

Das liegt höchstwahrscheinlich daran, dass Sie widersprüchliche Tags für denselben RSS-Feed haben. Das kann passieren, wenn Sie die gleiche Feed-URL sowohl in Ihren manuellen als auch in Ihren automatischen Feeds aufgenommen haben.

Um dies zu lösen, müssen Sie entweder Ihren manuellen Eintrag in Ihrer init.el-Datei oder den automatischen Feed-Eintrag im Anpassungsfeld von Emacs entfernen.