Emacs로 Elfeed를 사용하여 RSS 읽는 방법

Emacs Rss 00 Featured Image

Emacs는 매우 확장 가능한 소프트웨어입니다. 텍스트 편집기, 이메일 클라이언트, 심지어 USENET 리더로도 사용할 수 있습니다. Elfeed를 사용하면 Emacs를 RSS 피드 리더로도 사용할 수 있습니다.

목차

  • Elfeed란?
  • Emacs에서 피드 리더를 사용하는 이유
  • Emacs에 Elfeed 설치하기
  • Emacs에서 첫 번째 RSS 피드 설정하기
  • Emacs에서 피드를 자동으로 태그하고 필터링하는 방법
  • URL을 기반으로 피드를 자동으로 태그하는 방법
  • 태그에 대한 사용자 정의 색상 및 글꼴 만들기
  • 자주 묻는 질문

또한 읽어보세요: macOS용 최고의 RSS 리더 앱 5개

Elfeed란?

Elfeed는 Emacs를 위해 작성된 가볍지만 강력한 RSS 피드 리더입니다. 간단한 태그 기반 시스템을 사용하여 RSS 피드를 정렬합니다. 뿐만 아니라, 콘텐츠에 따라 피드를 자동으로 태그할 수 있는 강력한 “후크 기반“ 태그 시스템도 제공합니다.

Emacs Rss 02 Elfeed Summary

이로 인해 많은 RSS 피드를 팔로우하는 사람들에게 Elfeed는 유용하며, 피드를 자동으로 정렬할 수 있는 방법을 찾고 있습니다.

또한 읽어보세요: EMMS로 Emacs에서 음악 재생하기

Emacs에서 피드 리더를 사용하는 이유

Emacs는 상호 운용성의 개념으로 작동합니다. Emacs는 데이터를 가져와 다양한 방식으로 해석할 수 있게 합니다.

Emacs Rss 03 Emacs Interoperability

Emacs를 텍스트 편집 전용으로 사용할 수 있지만, 예를 들어 텍스트를 편집하는 동안 이메일에 접근할 수 있다면, 작성 중인 이메일에서 작성 중인 텍스트를 원활하게 사용할 수 있습니다.

Emacs Rss 04 Emacs Email Rss

이것이 Emacs에 RSS 피드 리더를 통합하는 것이 매력적인 이유입니다. Emacs의 강력한 편집 기능을 사용하여 피드 및 Emacs의 다른 기능을 조작할 수 있습니다.

Emacs에 Elfeed 설치하기

Elfeed 설치는 매우 간단합니다. GNU ELPA 저장소에서 사용할 수 있으므로 init.el 파일을 수정하지 않고도 접근할 수 있습니다.

Emacs Rss 05 Elfeed Installed

Elfeed를 설치하려면 Alt + X를 눌러 명령 버퍼를 열고 package-install을 입력합니다. 패키지 이름으로 elfeed를 제공하고 Enter를 누릅니다. Emacs는 Elfeed의 소스 코드를 다운로드하고 즉시 컴파일합니다.

Emacs에서 첫 번째 RSS 피드 설정하기

설치가 완료되면 Alt + X를 눌러 Elfeed에 접근하고 명령 버퍼에 elfeed를 입력합니다. 이렇게 하면 빈 Elfeed 버퍼가 로드됩니다.

Emacs Rss 06 Elfeed Clean

Elfeed에 RSS 피드를 추가하는 방법은 두 가지가 있습니다:

  • init.el 파일을 수동으로 편집하기
  • Emacs 없이

Elfeed에서 RSS 피드를 수동으로 추가하기

Elfeed는 init.el 파일에 피드 URL을 수동으로 추가하여 쉽게 채울 수 있습니다. 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 With Feeds

Emacs 내에서 RSS 피드 추가하기

Elfeed를 채우는 또 다른 방법은 실행 중일 때 피드 링크를 제공하는 것입니다. 이렇게 하면 Emacs를 다시 로드하지 않고도 RSS 링크로 피드 목록을 적극적으로 업데이트할 수 있습니다.

이렇게 하려면 Alt + X를 눌러 명령 버퍼를 엽니다. elfeed-add-feed를 입력하고 Enter를 누릅니다. Elfeed는 로드할 피드의 URL을 제공하라고 요청합니다.

Emacs Rss 08 Url Zoom

내 경우, 최신 기술 기사의 일일 업데이트를 받기 위해 Elfeed에 피드 URL을 제공하고 있습니다.

피드 URL을 복사하고 URL 프롬프트에서 Ctrl + Y를 눌러 Emacs에 링크를 붙여넣습니다. 붙여넣은 후, 피드 URL을 Elfeed에 커밋하기 위해 Enter를 누르기만 하면 됩니다.

Emacs Rss 09 Maketecheasier Feeds

또한 읽어보세요: Linux에서 파일 이름 쉽게 바꾸는 방법

Emacs에서 피드를 자동으로 태그하고 필터링하는 방법

RSS 피드를 나열하고 보는 것 외에도, Elfeed는 피드 목록을 세밀하게 조정할 수 있는 여러 기능을 수행할 수 있습니다.

그 중 하나는 자동 태그 지정입니다. 이 기능은 특정 피드에서 온 RSS 항목을 즉시 태그할 수 있게 해줍니다.

예를 들어, 특정 주제에 대한 여러 피드가 있는 경우, 모두 동일한 태그를 가질 수 있도록 설정할 수 있어, 요약 화면에서 여러 피드를 쉽게 정렬할 수 있습니다.

이를 위해 init.el 파일에서 RSS 피드를 편집합니다. 다음은 간단한 예입니다.

(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 피드를 자동으로 태그하려면 기본 elfeed-feeds 형식에 두 가지 작업을 수행해야 합니다:

  • 피드 링크를 괄호로 묶습니다. 이는 elfeed-feeds에 이 특정 항목이 여러 부분으로 구성되어 있음을 알려줍니다.
  • 해당 링크에 대한 태그 역할을 할 단어를 제공합니다. 각 태그를 공백으로 구분하여 여러 태그를 포함할 수 있습니다.

Emacs Rss 10 Automatically Tagged Feeds

Elfeed에서 RSS 피드 필터링하기

이 태그는 Elfeed의 강력한 필터링 시스템과 함께 작동합니다. 이를 통해 태그만으로 RSS 피드를 그룹화할 수 있습니다.

예를 들어, “news”, “news tech” 및 “news gaming”으로 태그가 지정된 RSS 피드가 있는 경우, Elfeed는 모두 “news” 태그 아래에 그룹화할 수 있습니다.

피드 목록을 필터링하려면 Elfeed에서 S를 눌러 Elfeed의 필터 프롬프트를 엽니다. 기본적으로 프롬프트에는 다음이 포함되어 있습니다:

@6-months-ago +unread
  • @ 기호는 날짜 범위를 나타냅니다. 이는 “2022-02-22”와 같은 절대 날짜일 수도 있고, “3-days-ago”와 같은 상대 날짜일 수도 있습니다.
    • 기호는 Elfeed에 이 태그가 있는 모든 피드를 명시적으로 포함하라고 지시하는 태그 연산자입니다.

Emacs Rss 11 Default Filter

이를 염두에 두고 다음 RSS 피드를 고려해 보십시오.

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

“tech” 태그를 필터링하려면 Elfeed의 필터 프롬프트에 “ +tech”를 입력하여 Elfeed의 요약 버퍼에서 처음 세 개의 링크를 표시합니다. 그러나 “ +news”를 추가하면 Elfeed는 첫 번째 및 다섯 번째 태그를 표시합니다.

이것을 알고 있으면 필터링 논리를 더 구체적으로 설정할 수 있습니다. 예를 들어, 모든 기술 링크를 포함하되 “f1”은 제외하고 싶다면 다음과 같이 입력할 수 있습니다:

+tech -f1

URL을 기반으로 피드를 자동으로 태그하는 방법

Elfeed에서 RSS 항목을 자동으로 태그하는 또 다른 방법은 URL을 기반으로 정렬하는 것입니다. 이는 유사한 URL 구조를 가진 RSS 피드를 구독하는 경우 유용합니다.

Emacs Rss 12 Medium Webpage

이를 위해 Elfeed의 elfeed-new-entry-hook을 사용합니다. 이는 특정 조건에 따라 사용자 정의 명령을 실행하는 후크 함수입니다. 이 함수는 elfeed-add-feed 명령을 사용하여 항목이 추가될 때마다 사용자 정의 명령을 실행합니다.

후크 내에서 elfeed-make-tagger 함수를 사용할 수 있습니다. 이는 설정한 옵션에 따라 링크에 태그를 지정하는 일반 함수입니다. 따라서 두 함수를 결합하여 자동 태그 지정을 만드는 것은 다음과 같이 보일 수 있습니다:

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

Emacs Rss 13 Medium Feed

이 함수는 “medium.com” 슬러그를 포함하는 모든 링크에 자동으로 태그를 지정합니다.

elfeed-make-tagger로 설정한 옵션을 더 구체적으로 설정할 수도 있습니다. 예를 들어, URL을 기반으로 피드를 태그하고 3개월 이전의 항목을 필터링할 수 있습니다:

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

태그에 대한 사용자 정의 색상 및 글꼴 만들기

자동 태그 지정 외에도 Elfeed가 처리하는 태그에 따라 Elfeed의 모양을 사용자 정의할 수 있습니다. 이는 특정 태그가 있는 피드가 돋보이게 하려는 경우 유용합니다.

Emacs Rss 14 Custom Faces

이를 위해 elfeed-search-face-alist 함수를 재정의해야 합니다. 이는 Elfeed가 요약 버전의 모양을 변경하는 데 사용하는 명령입니다. 따라서 이 함수를 재정의하려면 deffacepush 함수를 사용할 수 있습니다:

  • defface 함수는 Emacs에 대한 새로운 “face”를 생성합니다. “face”는 문자 글꼴과 배경 색상을 포함할 수 있는 값 집합입니다.
  • push 함수는 Emacs의 기존 명령에 정의를 추가합니다.

이 점을 염두에 두고 이러한 함수를 결합하여 Elfeed에 대한 사용자 정의 “face”를 만들 수 있습니다. 예를 들어, 다음은 f1 태그를 빨간색으로 강조하는 사용자 정의 face입니다.

(defface elfeed-face-tag-f1  
  '((t :foreground"#f00"))  
"Elfeed의 F1 태그에 대한 사용자 정의 글꼴 face입니다.")  
  
(push '(f1 elfeed-face-tag-f1)  
      elfeed-search-face-alist)

축하합니다! 이제 Elfeed로 Emacs를 RSS 리더로 사용하는 방법을 알게 되었습니다. 또한 RSS 피드의 필요에 맞게 Elfeed를 사용자 정의하고 자동화하는 기본 아이디어도 얻었습니다.

이 모든 논의가 Emacs로 더 많은 작업을 할 수 있는 방법을 생각하게 했다면, Emacs에 대한 최고의 생산성 패키지에 대한 기사를 확인해 보세요.

또한 읽어보세요: Linux에서 터미널에 입력할 수 없는 문제 해결 방법

자주 묻는 질문

1. Elfeed에서 피드를 삭제하려면 어떻게 하나요?

피드를 삭제하는 방법은 두 가지가 있습니다: init.el 파일에서 피드 항목을 삭제하거나 Emacs의 사용자 정의 기능을 사용하여 제거하는 것입니다.

전자의 경우, 피드를 제거하는 것은 elfeed-feeds 변수에서 피드 URL을 삭제하는 것뿐입니다. 후자의 경우, Alt + X를 눌러 명령 버퍼를 엽니다. 여기에서 customize를 입력합니다. 그러면 Emacs의 사용자 정의 창이 열립니다.

그곳에서 검색 상자에 elfeed-feeds를 입력합니다. 그러면 현재 구독 중인 모든 피드가 표시됩니다.

이렇게 하면 피드 링크 옆의 DEL 버튼을 클릭하여 피드를 삭제할 수 있습니다. 완료되면 검색창 아래의 Apply 및 Save 버튼을 클릭하여 피드를 업데이트할 수 있습니다.

2. Elfeed에 모든 피드를 추가했는데 새로 고침되지 않으면 어떻게 하나요?

Elfeed는 피드 링크를 자동으로 새로 고치지 않습니다. 피드의 최신 항목을 가져오려면 Shift + G를 눌러 현재 구독 중인 모든 피드를 업데이트합니다.

또한 특정 RSS 피드만 업데이트하려면 elfeed-update-feed 기능을 실행합니다.

3. 내 자동 태그가 작동하지 않는 것 같습니다. 어떻게 해결하나요?

이는 아마도 동일한 RSS 피드에 대해 충돌하는 태그가 있기 때문입니다. 수동 및 자동 피드 모두에 동일한 피드 URL을 포함한 경우 발생할 수 있습니다.

이를 해결하려면 init.el 파일에서 수동 항목을 제거하거나 Emacs의 사용자 정의 버퍼에서 자동 피드 항목을 제거해야 합니다.