如何将 Emacs 用于 RSS 和 Elfeed

Emacs 是一个非常可扩展的软件。 它可以是您的文本编辑器、电子邮件客户端,甚至是您的 USENET 阅读器。 使用 Elfeed,您还可以使用 Emacs 作为您的 RSS 提要阅读器。

内容

什么是 Elfeed?

电子饲料 是为 Emacs 编写的轻量级但功能强大的 RSS 提要阅读器。 它使用一个简单的基于标签的系统对您的 RSS 提要进行排序。 不仅如此,它还配备了一个强大的“基于钩子”的标记系统,允许您根据内容自动标记提要。

这使得 Elfeed 对于关注大量 RSS 提要并正在寻找一种自动对其提要进行排序的人来说非常有用。

为什么在 Emacs 中使用 Feedreader?

Emacs 以互操作性的概念工作,因为 Emacs 获取数据并允许以各种不同的方式对其进行解释。

Emacs Rss 03 Emacs 互操作性

虽然您可以使用 Emacs 专门编辑文本,但可以在编辑文本时访问您的电子邮件,例如 example,可以让您无缝地使用您正在撰写的电子邮件中所写的文本。

Emacs Rss 04 Emacs 电子邮件 Rss

这就是为什么将您的 RSS 提要阅读器集成到 Emacs 中会很诱人的原因。 它将允许您使用 Emacs 强大的编辑功能来操作您的提要和 Emacs 中的其他功能。

在 Emacs 上安装 Elfeed

安装 Elfeed 非常简单。 它可以从 GNU ELPA 存储库,因此您无需对 init.el 文件进行任何修改即可访问它。

Emacs Rss 05 Elfeed 已安装

要安装 Elfeed,请按 Alt + X 调出命令缓冲区,然后键入 package-install. 你必须提供 elfeed 作为包名并按 Enter. Emacs 将下载 Elfeed 的源代码并在之后立即编译它。

在 Emacs 中设置您的第一个 RSS 提要

安装后,按 Alt + X 并键入访问 Elfeed elfeed 在命令缓冲区中。 这样做会加载一个空的 Elfeed 缓冲区。

Emacs Rss 06 Elfeed 清洁

有两种方法可以将 RSS 提要添加到 Elfeed:

  • 手动编辑您的 init.el 文件
  • 没有 Emacs

在 Elfeed 中手动添加 RSS 提要

您可以通过在 init.el 文件中手动添加提要 URL 来轻松填充 Elfeed,因为 Elfeed 具有它跟踪的“elfeed-feeds”变量。 这告诉 Elfeed 要获取哪些提要并在其概览屏幕中显示。

为了 example,这是我的 init.el 文件中的一个片段。

是一个 Emacs 函数,用于设置特定变量的值。 在这种情况下,它将 elfeed-feeds 变量设置为三个 feed 链接作为值。

从那里,Elfeed 会自动将这些链接添加到其内部数据库中,然后在您下次运行程序时加载。

Emacs Rss 07 带有提要的 Elfeed

在 Emacs 中添加 RSS 提要

填充 Elfeed 的另一种方法是在它运行时为其提供 feed 链接。 这允许您使用 RSS 链接主动更新您的提要名册,而无需重新加载 Emacs。

为此,请按 Alt + X 打开命令缓冲区。 类型 elfeed-add-feed 并按下 Enter. Elfeed 将要求您提供要加载的提要的 URL。

Emacs Rss 08 网址缩放

就我而言,我提供我们的 提要网址 到 Elfeed 接收有关最新技术文章的每日更新。

我复制提要 URL 并在 URL 提示中按 Ctrl + Y 将链接粘贴到 Emacs。 粘贴后,我只需要按 Enter 将提要 URL 提交给 Elfeed。

Emacs Rss 09 Maketecheasier 提要

如何在 Emacs 中自动标记和过滤提要

除了列出和查看 RSS 提要,Elfeed 还可以执行许多功能,使您可以微调提要列表。

其中一项简洁的功能是自动标记。 此功能允许您立即标记来自特定提要的 RSS 条目。

为了 example,如果您有多个关于某个主题的提要,您可以设置它们都具有相同的标签,从而可以轻松直观地在摘要屏幕中对多个提要进行排序。

为此,请编辑 init.el 文件中的 RSS 提要。 看看这个简短的 example.

要自动标记 RSS 提要,您需要对默认的 elfeed-feeds 格式做两件事:

  • 将提要链接括在括号中。 这告诉 elfeed-feeds 变量中的这个特定条目有多个部分。
  • 提供一个词作为该特定链接的标签。 您可以包含多个标签,只要将每个标签用空格分隔即可。
Emacs Rss 10 自动标记提要

在 Elfeed 中过滤您的 RSS 提要

这些标签与 Elfeed 强大的过滤系统配合使用。 这使您可以仅根据标签对 RSS 提要进行分组。

为了 example,如果您有标记为“新闻”、“新闻技术”和“新闻游戏”的 RSS 提要,Elfeed 允许您将所有这些提要分组到“新闻”标签下。

要过滤您的提要列表,请在 Elfeed 中按 S 以显示 Elfeed 的过滤提示。 默认情况下,提示包含以下内容:

  • @ 符号表示日期范围。 这可以是绝对日期,例如“2022-02-22”,也可以是相对日期,例如“3 天前”。
  • “+”符号是一个标签操作符,它告诉 Elfeed 明确包含所有具有此标签的提要。
Emacs Rss 11 默认过滤器

考虑到这一点,请考虑以下 RSS 提要。

要过滤“tech”标签,请在 Elfeed 的过滤提示中键入“+tech”,以显示 Elfeed 的摘要缓冲区中的前三个链接。 但是,如果您添加“+news”,Elfeed 将显示第一个和第五个标签。

知道了这一点,您可以更具体地使用您的过滤逻辑。 为了 example,如果您想包含所有技术链接但不包含“f1”,您可以键入以下内容:

如何根据 URL 自动标记提要

在 Elfeed 中自动标记 RSS 条目的另一种方法是根据 URL 对它们进行排序。 如果您使用 Elfeed 订阅具有相似 URL 结构的 RSS 提要,这将非常有用。

Emacs Rss 12 中型网页

为此,请使用 Elfeed 的 elfeed-new-entry-hook. 这是一个钩子函数,它根据特定条件执行自定义命令。 每次使用 elfeed-add-feed 命令。

您可以使用 elfeed-make-tagger 在该钩子中起作用。 这是一个通用功能,可根据您设置的选项标记链接。 因此,结合这两个函数来创建自动标记可能看起来像这样:

Emacs Rss 13 中提要

该功能将自动标记任何包含“medium.com”的链接。

您还可以更具体地使用您设置的选项 elfeed-make-tagger. 为了 example,您既可以根据 URL 标记提要,也可以过滤掉超过三个月的条目:

如何为标签创建自定义颜色和字体

除了自动标记之外,您还可以根据它正在处理的标签自定义 Elfeed 的外观。 如果您希望带有特定标签的提要脱颖而出,这很有用。

Emacs Rss 14 自定义面孔

为此,您需要重新定义 elfeed-search-face-alist 功能。 这是 Elfeed 用来更改摘要缓冲区外观的命令。 因此,要重新定义此功能,您可以使用 deffacepush 职能:

  • 污损 函数为 Emacs 创建了一个新的“面孔”。 “face”是一组值,可以包含字符字体和背景颜色。
  • 另一方面,函数将定义附加到 Emacs 中的现有命令。

考虑到这一点,您可以结合这些功能为 Elfeed 创建自定义“面孔”。 为了 example,这是一个自定义面孔,以红色突出显示 f1 标记。

恭喜! 您现在知道如何将 Emacs 用作带有 Elfeed 的 RSS 阅读器。 此外,您现在还对如何自定义和自动化 Elfeed 以满足您的 RSS 提要的需求有了基本的了解。

如果所有这些讨论让您想到使用 Emacs 可以做更多事情,您可以查看我们关于 Emacs 最佳生产力包的文章。

经常问的问题

1. 如何删除 Elfeed 中的 Feed?

您可以通过两种方式删除提要:删除 init.el 文件中提要的条目或使用 Emacs 的自定义功能将其删除。

对于前者,删除提要只需删除 elfeed-feeds 变量中的提要 URL。 但是,对于后者,您需要按 Alt + X 打开命令缓冲区。 从这里,您需要输入 customize. 这将打开 Emacs 的自定义窗口。

从那里输入 elfeed-feeds 在搜索框中。 这将带来您当前订阅的所有提要。

这允许您通过单击提要链接旁边的 DEL 按钮来删除提要。 完成后,您可以单击应用并 Save 搜索栏下方的按钮以更新您的提要。

2. 如果我在 Elfeed 中添加了所有提要并且它们没有刷新,我该怎么办?

Elfeed 不会自动为您刷新提要链接。 要获取提要中的最新条目,请按 Shift + G 启动对所有当前订阅提要的更新。

此外,如果您只想更新特定的 RSS 提要,请运行 elfeed-update-feed 功能。

3. 我的自动标签似乎不起作用。 我该如何解决这个问题?

这很可能是因为同一 RSS 提要的标签存在冲突。 如果您在手动和自动供稿中包含相同的供稿 URL,则可能会发生这种情况。

要解决这个问题,您必须删除 init.el 文件中的手动条目或 Emacs 自定义缓冲区中的自动提要条目。

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅