Установка Elfeed в Emacs
рамма. Это может быть ваш текстовый редактор, почтовый клиент и даже ваш USENET-считыватель . С Elfeed вы также можете использовать Emacs в качестве программы чтения RSS-каналов.Читайте также: 5 лучших приложений для чтения RSS для macOS
Что такое Elfeed?
Эльфид — это легкая, но мощная программа чтения каналов Contents
Что такое Elfeed?
iya-rss-kanalov-dlya-upravleniya-vashimi-rss-kanalami/" title="RSS">RSS , написанная для Emacs. Он использует простую систему на основе тегов для сортировки ваших RSS-каналов. Мало того, он также оснащен мощной системой тегов на основе «крючков», которая позволяет автоматически помечать каналы на основе их содержания.![Emacs Rss 02 Elfeed Резюме](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-02-elfeed-summary.jpg)
Это делает Elfeed полезным для людей, которые следят за множеством RSS-каналов и ищут способ автоматической сортировки своих каналов.
Читайте также: Как использовать Emacs для воспроизведения музыки с помощью EMMS
Зачем использовать Feedreader в Emacs?
Emacs работает по принципу совместимости, поскольку Emacs принимает данные и позволяет интерпретировать их различными способами.
![Emacs Rss 03 Совместимость с Emacs](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-03-emacs-interoperability.png)
Хотя вы можете использовать Emacs исключительно для редактирования текста, возможность, например, получить доступ к своей электронной почте при редактировании текста может позволить вам беспрепятственно использовать текст, который вы пишете, в составляемом вами электронном письме.
![Emacs RSS 04 Emacs электронная почта RSS](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-04-emacs-email-rss.jpg)
Вот почему включение программы чтения RSS-каналов в Emacs может быть заманчивым. Это позволит вам использовать мощные возможности редактирования Emacs для управления ваш
Зачем использовать Feedreader в Emacs?
>Установка Elfeed в EmacsУстановить Elfeed очень просто. Он доступен в репозитории ГНУ ЭЛПА , поэтому вы можете получить к нему доступ без каких-либо изменений в файле init.el.
![Установлен Emacs RSS 05 Elfeed](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-05-elfeed-installed.png)
Чтобы установить Elfeed, нажмите Alt+ X, чтобы открыть командный буфер, затем введите package-install
. Вам необходимо указать elfeed
в качестве имени пакета и нажать Enter. Emacs загрузит исходный код Elfeed и сразу же скомпилирует его.
Настройка вашего первого RSS-канала в Emacs
Установив это, откройте Elfeed, нажав Alt+ Xи набрав elfeed
в командном буфере. При этом будет загружен пустой буфер Elfeed.
![Emacs RSS 06 Elfeed Очистить](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-06-elfeed-clean.png)
Есть два способа добавить RSS-канал в Elfeed:
- Отредактируйте файл init.el вручную
- Без Emacs
Добавление RSS-канала в Elfeed вручную
Вы можете легко заполнить Elfeed, вручную добавив URL-адреса каналов в файл init.el, поскольку в Elfeed есть переменная «elfeed-feeds», которую она отслеживает. Это сообщает Elfeed, какие каналы следует загружать и отображать на обзорном экране.
Например, это фрагмент моего файла init.el.
(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 — это функция Emacs, которая устанавливает значение определенной переменной. В данном случае устанавливается переменная elfeed-feeds с тремя ссылками на каналы в качестве значений.
Оттуда Elfeed автоматически добавит эти ссылки в свою внутреннюю базу данных, а затем загрузит их при следующем запуске программы.
![Emacs Rss 07 Elfeed с лентами](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-07-elfeed-with-feeds.jpg)
Добавление RSS-канала в Emacs
Другой способ наполнения Elfeed — предоставление ему ссылок на каналы во время его работы. Это позволяет вам активно обновлять список каналов с помощью RSS-ссылок без перезагрузки Emacs.
Для этого нажмите elfeed-add-feed
и нажмите Enter. Elfeed попросит вас указать URL-адрес канала, который вы хотите загрузить.
![Emacs RSS 08 URL-адрес Zoom](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-08-url-zoom.jpg)
В моем случае я предоставляю Elfeed наши URL канала , чтобы получать ежедневные обновления статей о последних технологиях.
Я копирую URL-адрес канала и нажимаю Ctrl+ Добавление RSS-канала в Elfeed вручную
ку в Emacs. После вставки мне просто нужно нажать Enter, чтобы передать URL-адрес канала в Elfeed.
![Emacs Rss 09 Maketecheasier Feeds](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-09-maketecheasier-feeds.jpg)
Читайте также: Как легко переименовать файлы в Linux
Как автоматически помечать и фильтровать каналы в Emacs
Помимо листинга и просмотра RSS-каналов, Elfeed также может выполнять ряд функций, которые позволят вам точно настроить список каналов.
Одна из таких полезных функций — автоматическая пометка тегами. Эта функция позволяет сразу же помечать записи RSS, полученные из определенного канала.
Например, если у вас есть несколько каналов по определенной теме, вы можете настроить так, чтобы все они имели один и тот же тег, что упрощает и интуитивно понятную сортировку нескольких каналов на экране сводки.
Для этого отредактируйте RSS-каналы в файле init.el. Взгляните на этот краткий пример.
(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)))
Добавление RSS-канала в Emacs
анал, вам нужно сделать две вещи в формате elfeed-feeds по умолчанию:- Заключите ссылку на канал в круглые скобки. Это сообщает
elfeed-feeds
, что данная конкретная запись в переменной состоит из нескольких частей. - Укажите слово, которое будет служить тегом для этой конкретной ссылки. Вы можете включить несколько тегов, разделив каждый из них пробелом.
![Emacs RSS 10 автоматически помеченных каналов](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-10-automatically-tagged-feeds.jpg)
Фильтрация RSS-канала в Elfeed
Эти теги работают в сочетании с мощной системой фильтрации Elfeed. Это позволяет группировать RSS-каналы только на основе тегов.
Например, если у вас есть RSS-каналы с тегами «новости», «новости технологий» и «новости игр», Elfeed позволяет сгруппировать их все под тегом «новости».
Чтобы отфильтровать список каналов, нажмите Sв Elfeed, чтобы открыть окно фильтра Elfeed. По умолчанию приглашение содержит следующее:
@6-months-ago +unread
- Символ @ указывает диапазон дат. Это может быть абсолютная дата, например «22 февраля 2022 г.», или относительная, например «3 дня назад».
- Символ «+» — это оператор тега, который указывает Elfeed явно включать все каналы, имеющие этот тег.
![Фильтр по умолчанию Emacs Rss 11](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-11-default-filter.jpg)
Имея это ввиду, рассмотрите следующий RSS-канал.
[0](setq elfeed-feeds [1] '(("https://feeds.maketecheasier.com/MakeTechEasier" tech news) [2] ("https://solar.lowtechmagazine.com/feeds/all-en.Как автоматически помечать и фильтровать каналы в Emacs
] ("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)))
Чтобы отфильтровать тег «tech», введите «+tech» в строке фильтра Elfeed, чтобы отобразить первые три ссылки в буфере сводки Elfeed. Однако если вы добавите «+новости», вместо этого Elfeed отобразит первый и пятый тег.
Зная это, вы можете более точно использовать логику фильтрации. Например, если вы хотите включить все технические ссылки, но без «f1», введите следующее:
+tech -f1
Как автоматически помечать каналы на основе URL
Другой способ автоматически помечать записи RSS в Elfeed — сортировать их по URL-адресу. Это полезно, если вы используете Elfeed для подписки на RSS-каналы, имеющие аналогичную структуру URL.
![Веб-страница Emacs Rss 12 среднего размера](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-12-medium-webpage.jpg)
Для этого используйте elfeed-new-entry-hook
от Elfeed. Это функция-перехватчик, которая выполняет пользовательскую команду на основе определенных условий. Эта функция будет запускать специальную команду каждый раз, когда запись добавляется с помощью команды elfeed-add-feed
.
Вы можете использовать функцию elfeed-make-tagger
внутри этого хука. Это общая функция, которая помечает ссылки на основе установленных вами параметров. Таким образом, объединение двух функций для создания автоматической пометки может выглядеть примерно так:
(add-hook 'elfeed-new-entry-hook (elfeed-make-tagger :feed-url "medium\\.com" :add '(medium)))
![Средний канал Emacs RSS 13](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-13-medium-feed.png)
Эта функция автоматически пометит любую ссылку, содержащую ярлык «medium.com».
Вы также можете уточнить параметры, заданные с помощью elfeed-make-tagger
Фильтрация RSS-канала в Elfeed
ид на основе URL-адреса и отфильтровать записи старше трех месяцев:
(add-hook 'elfeed-new-entry-hook (elfeed-make-tagger :feed-url "medium\\.com" :before "3 months ago" :add 'medium))
Как создать собственные цвета и шрифты для тегов
Помимо автоматической пометки, вы также можете настроить внешний вид Elfeed в зависимости от тега, с которым он работает. Это полезно, если вы хотите, чтобы каналы с определенным тегом выделялись.
![Emacs RSS 14 Пользовательские лица](https://saintist.ru/wp-content/uploads/2024/05/emacs-rss-14-custom-faces.jpg)
Для этого вам необходимо переопределить функцию elfeed-search-face-alist
. Это команда, которую Elfeed использует для изменения внешнего вида буфера сводки. Таким образом, чтобы переопределить эту функцию, вы можете использовать функции defface
и push
:
- Функция defface создает новое «лицо» Emacs. «Лицо» – это набор значений, который может содержать как шрифты, так и цвета фона.
- Функция push, с другой стороны, добавляет определение к существующей команде в Emacs.
Имея это в виду, вы можете объединить эти функции, чтобы создать собственное «лицо» для Elfeed. Например, это пользовательское лицо, в котором тег f1 выделяется красным.
(defface elfeed-face-tag-f1 '((t :foreground "#f00")) "This is a custom font face for the F1 tag in Elfeed.") (push '(f1 elfeed-face-tag-f1) elfeed-search-face-alist)
Поздравляем! Теперь вы знаете, как использовать Emacs в качестве программы чтения RSS с Elfeed. Кроме того, теперь у вас есть базовое представление о том, как настроить и автоматизировать Elfeed в соответствии с потребностями ваших RSS-каналов.
Если все это обсуждение заставило вас задуматься о том, что еще можно сделать с помощью Emacs, вы можете прочитать нашу статью о лучшие пакеты производительности для Emacs.
Читайте также: Как исправить проблему «Не могу ввести терминал в Linux»
Часто задаваемые вопросы
1. Как удалить ленту в Elfeed?
Вы можете удалить канал двумя способами: удалить запись о канале в файле init.el или использовать функцию настройки Emacs для его удаления.
В первом случае удаление канала — это всего лишь удаление URL-адреса канала в переменной elfeed-feeds. Однако для п
Как автоматически помечать каналы на основе URL
чтобы открыть командный буфер. Отсюда вам нужно ввестиcustomize
. Откроется окно настройки Emacs.
Оттуда введите elfeed-feeds
в поле поиска. Будут показаны все каналы, на которые вы в данный момент подписаны.
Это позволяет вам удалить канал, нажав кнопку DELрядом со ссылкой на канал. После этого вы можете нажать кнопки Применитьи Сохранитьпод строкой поиска, чтобы обновить свой канал.
2. Что делать, если я добавляю все свои каналы в Elfeed, а они не обновляются?
Elfeed не обновляет автоматически ссылки на каналы. Чтобы получить последние записи в ваших каналах, нажмите Shift+ G, чтобы инициировать обновление всех каналов, на которые в данный момент подписаны.
Кроме того, если вы хотите обновить только определенный RSS-канал, запустите функцию elfeed-update-feed
.
3. Кажется, мои автоматические теги не работают. Как мне это решить?
Скорее всего, это связано с тем, что у вас есть конфликтующие теги для одного и того же RSS-канала. Это может произойти, если вы включили один и тот же URL-адрес фида как в ручные, так и в автоматические фиды.
Чтобы решить эту проблему, вам необходимо удалить либо введенную вручную запись в файле init.el, либо запись автоматического канала в буфере настройки Emacs.