Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

Emacs เป็นซอฟต์แวร์ที่ขยายได้มาก อาจเป็นโปรแกรมแก้ไขข้อความ โปรแกรมรับส่งเมล หรือแม้แต่โปรแกรมอ่าน USENET ของคุณ Elfeed ช่วยให้คุณใช้ Emacs เป็นโปรแกรมอ่านฟีด RSS ได้

Elfeed คืออะไร

Elfeed เป็นโปรแกรมอ่านฟีด RSS ที่มีน้ำหนักเบาแต่ทรงพลังซึ่งเขียนขึ้นสำหรับ Emacs ใช้ระบบที่ใช้แท็กอย่างง่ายในการจัดเรียงฟีด RSS ของคุณ ไม่เพียงเท่านั้น แต่ยังมาพร้อมกับระบบการติดแท็ก "แบบเบ็ด" อันทรงพลังที่ให้คุณแท็กฟีดโดยอัตโนมัติตามเนื้อหาของพวกเขา

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

สิ่งนี้ทำให้ Elfeed มีประโยชน์สำหรับผู้ที่ติดตามฟีด RSS จำนวนมาก และกำลังมองหาวิธีจัดเรียงฟีดโดยอัตโนมัติ

เหตุใดจึงต้องใช้ Feedreader ใน Emacs

Emacs ทำงานในแนวคิดเรื่องความสามารถในการทำงานร่วมกัน เนื่องจาก Emacs นำข้อมูลมาและช่วยให้ตีความข้อมูลได้หลากหลายวิธี

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

แม้ว่าคุณสามารถใช้ Emacs เพื่อแก้ไขเฉพาะข้อความได้ ตัวอย่างเช่น การเข้าถึงอีเมลของคุณในขณะที่แก้ไขข้อความ ช่วยให้คุณสามารถใช้ข้อความที่คุณกำลังเขียนในอีเมลที่คุณกำลังเขียนได้อย่างราบรื่น

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

นี่คือเหตุผลที่การรวมโปรแกรมอ่านฟีด RSS ของคุณเข้ากับ Emacs นั้นเป็นสิ่งที่น่าดึงดูดใจ จะช่วยให้คุณใช้ความสามารถในการแก้ไขอันทรงพลังของ Emacs เพื่อจัดการฟีดและฟังก์ชันอื่นๆ ใน Emacs

การติดตั้ง Elfeed บน Emacs

การติดตั้ง Elfeed นั้นง่ายมาก มีให้จากที่เก็บ GNU ELPA คุณจึงสามารถเข้าถึงได้โดยไม่ต้องแก้ไขใดๆ ในไฟล์ init.el ของคุณ

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

ในการติดตั้ง Elfeed ให้กด Alt + X เพื่อเปิดบัฟเฟอร์คำสั่ง จากนั้นพิมพ์ package-install . คุณต้องระบุ elfeed เป็นชื่อแพ็คเกจแล้วกด Enter . Emacs จะดาวน์โหลดซอร์สโค้ดของ Elfeed และคอมไพล์ทันทีหลังจากนั้น

การตั้งค่าฟีด RSS แรกของคุณใน Emacs

เมื่อติดตั้งแล้ว ให้เข้าถึง Elfeed โดยกด Alt + X แล้วพิมพ์ elfeed ในบัฟเฟอร์คำสั่ง การทำเช่นนี้จะโหลดบัฟเฟอร์ Elfeed ที่ว่างเปล่า

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

มีสองวิธีในการเพิ่ม RSS feed ไปยัง Elfeed:

  • แก้ไขไฟล์ init.el ของคุณด้วยตนเอง
  • ไม่มี Emac

การเพิ่ม RSS Feed ด้วยตนเองใน 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 กับ Elfeed

การเพิ่ม RSS Feed ภายใน Emacs

อีกวิธีหนึ่งในการเติม Elfeed คือการให้ลิงค์ฟีดในขณะที่ทำงาน สิ่งนี้ทำให้คุณสามารถอัปเดตรายชื่อฟีดของคุณด้วยลิงก์ RSS โดยไม่ต้องโหลด Emacs ซ้ำ

เมื่อต้องการทำเช่นนี้ ให้กด Alt + X เพื่อเปิดบัฟเฟอร์คำสั่ง พิมพ์ elfeed-add-feed แล้วกด Enter . Elfeed จะขอให้คุณระบุ URL ของฟีดที่คุณต้องการโหลด

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

ในกรณีของฉัน ฉันให้ URL ฟีดของเราแก่ Elfeed เพื่อรับการอัปเดตรายวันเกี่ยวกับบทความด้านเทคโนโลยีล่าสุด

ฉันคัดลอก URL ฟีดแล้วกด Ctrl + ใช่ ในข้อความแจ้ง URL ให้วางลิงก์ไปยัง Emacs เมื่อวางแล้วต้องกด Enter เพื่อคอมมิต URL ฟีดไปยัง Elfeed

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

วิธีการแท็กและกรองฟีดโดยอัตโนมัติใน 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 โดยอัตโนมัติ คุณต้องทำสองสิ่งกับรูปแบบ elfeed-feeds เริ่มต้นของคุณ:

  • ใส่ลิงค์ฟีดในวงเล็บ สิ่งนี้จะบอก elfeed-feeds ว่ารายการเฉพาะนี้ในตัวแปรมีหลายส่วน
  • ระบุคำที่จะทำหน้าที่เป็นแท็กของคุณสำหรับลิงก์นั้น คุณใส่แท็กได้หลายแท็กตราบใดที่คุณคั่นแต่ละแท็กด้วยการเว้นวรรค
วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

กรอง RSS Feed ของคุณใน Elfeed

แท็กเหล่านี้ทำงานร่วมกับระบบกรองที่มีประสิทธิภาพของ Elfeed สิ่งนี้ทำให้คุณสามารถจัดกลุ่มฟีด RSS ของคุณตามแท็กเพียงอย่างเดียว

ตัวอย่างเช่น หากคุณมีฟีด RSS ที่แท็กเป็น "news" "news tech" และ "news gaming" Elfeed ช่วยให้คุณสามารถจัดกลุ่มทั้งหมดภายใต้แท็ก "news"

หากต้องการกรองรายการฟีดของคุณ ให้กด S ในขณะที่อยู่ใน Elfeed เพื่อแสดงข้อความแจ้งตัวกรองของ Elfeed โดยค่าเริ่มต้น พร้อมต์ประกอบด้วยสิ่งต่อไปนี้:

@6-months-ago +unread
  • สัญลักษณ์ @ ระบุช่วงวันที่ นี่อาจเป็นวันที่แน่นอน เช่น “2022-02-22” หรือวันที่สัมพันธ์กัน เช่น “3 วันที่ผ่านมา”
  • สัญลักษณ์ “+” คือตัวดำเนินการแท็กที่บอกให้ Elfeed รวมฟีดทั้งหมดที่มีแท็กนี้อย่างชัดเจน
วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

ให้พิจารณาฟีด 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" ให้พิมพ์ "+tech" ในข้อความแจ้งตัวกรองของ Elfeed เพื่อแสดงลิงก์สามลิงก์แรกในบัฟเฟอร์สรุปของ Elfeed อย่างไรก็ตาม หากคุณเพิ่ม “+news” Elfeed จะแสดงแท็กแรกและแท็กที่ห้าแทน

เมื่อรู้สิ่งนี้ คุณจะเจาะจงมากขึ้นกับตรรกะการกรองของคุณ ตัวอย่างเช่น หากคุณต้องการรวมลิงก์ทางเทคนิคทั้งหมด แต่ไม่มี "f1" คุณสามารถพิมพ์ดังต่อไปนี้:

+tech -f1

วิธีการติดแท็กฟีดตาม URL โดยอัตโนมัติ

อีกวิธีหนึ่งในการแท็กรายการ RSS ใน Elfeed โดยอัตโนมัติคือการจัดเรียงตาม URL สิ่งนี้มีประโยชน์หากคุณใช้ Elfeed เพื่อสมัครรับฟีด RSS ที่มีโครงสร้าง URL ที่คล้ายกัน

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

ในการทำเช่นนั้น ให้ใช้ 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 กับ Elfeed

ฟังก์ชันนั้นจะติดแท็กลิงก์ใด ๆ ที่มีกระสุน “medium.com” โดยอัตโนมัติ

คุณยังสามารถเจาะจงมากขึ้นด้วยตัวเลือกที่คุณตั้งค่าด้วย elfeed-make-tagger . ตัวอย่างเช่น คุณสามารถแท็กฟีดตาม URL และกรองรายการที่เก่ากว่าสามเดือน:

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

วิธีสร้างสีและแบบอักษรที่กำหนดเองสำหรับแท็ก

นอกเหนือจากการติดแท็กอัตโนมัติแล้ว คุณยังสามารถปรับแต่งรูปลักษณ์ของ Elfeed ตามแท็กที่กำลังจัดการได้อีกด้วย สิ่งนี้มีประโยชน์หากคุณต้องการให้ฟีดที่มีแท็กเฉพาะโดดเด่น

วิธีใช้ Emacs สำหรับ RSS กับ Elfeed

ในการทำเช่นนั้น คุณต้องกำหนด elfeed-search-face-alist . ใหม่ การทำงาน. นี่คือคำสั่งที่ Elfeed ใช้เพื่อเปลี่ยนลักษณะที่ปรากฏของบัฟเฟอร์สรุป ดังนั้น หากต้องการกำหนดฟังก์ชันนี้ใหม่ คุณสามารถใช้ defface และ push ฟังก์ชัน:

  • ตัว defface ฟังก์ชั่นสร้าง "ใบหน้า" ใหม่สำหรับ Emacs “ใบหน้า” คือชุดของค่าที่มีทั้งแบบอักษรของอักขระและสีพื้นหลัง
  • การ ดัน ในทางกลับกัน ฟังก์ชันจะเพิ่มคำจำกัดความต่อท้ายคำสั่งที่มีอยู่ใน 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

คำถามที่พบบ่อย

1. ฉันจะลบฟีดใน Elfeed ได้อย่างไร

คุณสามารถลบฟีดได้สองวิธี:ลบรายการฟีดในไฟล์ init.el ของคุณ หรือใช้ฟังก์ชันปรับแต่งของ Emacs เพื่อลบออก

ในอดีต การลบฟีดเป็นเพียงการลบ URL ของฟีดในตัวแปร elfeed-feeds เท่านั้น อย่างไรก็ตาม สำหรับอย่างหลัง คุณต้องกด Alt + X เพื่อเปิดบัฟเฟอร์คำสั่ง จากที่นี่ คุณต้องพิมพ์ customize . ซึ่งจะเปิดหน้าต่างปรับแต่งสำหรับ Emacs

จากนั้นพิมพ์ elfeed-feeds ในช่องค้นหา สิ่งนี้จะนำฟีดทั้งหมดที่คุณสมัครรับข้อมูลมา

สิ่งนี้ทำให้คุณสามารถลบฟีดได้โดยคลิกที่ DEL ปุ่มข้างลิงค์ฟีด เมื่อเสร็จแล้วคุณสามารถคลิก Apply และ บันทึก ปุ่มด้านล่างแถบค้นหาเพื่ออัปเดตฟีดของคุณ

2. ฉันควรทำอย่างไรหากฉันเพิ่มฟีดทั้งหมดของฉันใน Elfeed และฟีดไม่รีเฟรช

Elfeed จะไม่รีเฟรชลิงก์ฟีดให้คุณโดยอัตโนมัติ หากต้องการดึงรายการล่าสุดในฟีดของคุณ ให้กด Shift + เพื่อเริ่มการอัปเดตฟีดที่สมัครรับข้อมูลในปัจจุบันทั้งหมด

นอกจากนี้ หากคุณต้องการอัปเดตเฉพาะฟีด RSS ให้เรียกใช้ elfeed-update-feed ฟังก์ชัน

3. แท็กอัตโนมัติของฉันดูเหมือนจะไม่ทำงาน ฉันจะแก้ปัญหานี้ได้อย่างไร

อาจเป็นเพราะคุณมีแท็กที่ขัดแย้งกันสำหรับฟีด RSS เดียวกัน ซึ่งอาจเกิดขึ้นได้หากคุณใส่ URL ของฟีดเดียวกันทั้งในฟีดแบบป้อนเองและแบบอัตโนมัติ

ในการแก้ปัญหานี้ คุณต้องลบรายการด้วยตนเองในไฟล์ init.el หรือรายการฟีดอัตโนมัติในบัฟเฟอร์ปรับแต่งของ Emacs