Emacs เป็นซอฟต์แวร์ที่ขยายได้มาก อาจเป็นโปรแกรมแก้ไขข้อความ โปรแกรมรับส่งเมล หรือแม้แต่โปรแกรมอ่าน USENET ของคุณ Elfeed ช่วยให้คุณใช้ Emacs เป็นโปรแกรมอ่านฟีด RSS ได้
Elfeed คืออะไร
Elfeed เป็นโปรแกรมอ่านฟีด RSS ที่มีน้ำหนักเบาแต่ทรงพลังซึ่งเขียนขึ้นสำหรับ Emacs ใช้ระบบที่ใช้แท็กอย่างง่ายในการจัดเรียงฟีด RSS ของคุณ ไม่เพียงเท่านั้น แต่ยังมาพร้อมกับระบบการติดแท็ก "แบบเบ็ด" อันทรงพลังที่ให้คุณแท็กฟีดโดยอัตโนมัติตามเนื้อหาของพวกเขา
สิ่งนี้ทำให้ Elfeed มีประโยชน์สำหรับผู้ที่ติดตามฟีด RSS จำนวนมาก และกำลังมองหาวิธีจัดเรียงฟีดโดยอัตโนมัติ
เหตุใดจึงต้องใช้ Feedreader ใน Emacs
Emacs ทำงานในแนวคิดเรื่องความสามารถในการทำงานร่วมกัน เนื่องจาก Emacs นำข้อมูลมาและช่วยให้ตีความข้อมูลได้หลากหลายวิธี
แม้ว่าคุณสามารถใช้ Emacs เพื่อแก้ไขเฉพาะข้อความได้ ตัวอย่างเช่น การเข้าถึงอีเมลของคุณในขณะที่แก้ไขข้อความ ช่วยให้คุณสามารถใช้ข้อความที่คุณกำลังเขียนในอีเมลที่คุณกำลังเขียนได้อย่างราบรื่น
นี่คือเหตุผลที่การรวมโปรแกรมอ่านฟีด RSS ของคุณเข้ากับ Emacs นั้นเป็นสิ่งที่น่าดึงดูดใจ จะช่วยให้คุณใช้ความสามารถในการแก้ไขอันทรงพลังของ Emacs เพื่อจัดการฟีดและฟังก์ชันอื่นๆ ใน Emacs
การติดตั้ง Elfeed บน Emacs
การติดตั้ง Elfeed นั้นง่ายมาก มีให้จากที่เก็บ GNU ELPA คุณจึงสามารถเข้าถึงได้โดยไม่ต้องแก้ไขใดๆ ในไฟล์ init.el ของคุณ
ในการติดตั้ง Elfeed ให้กด Alt + X เพื่อเปิดบัฟเฟอร์คำสั่ง จากนั้นพิมพ์ package-install
. คุณต้องระบุ elfeed
เป็นชื่อแพ็คเกจแล้วกด Enter . Emacs จะดาวน์โหลดซอร์สโค้ดของ Elfeed และคอมไพล์ทันทีหลังจากนั้น
การตั้งค่าฟีด RSS แรกของคุณใน Emacs
เมื่อติดตั้งแล้ว ให้เข้าถึง Elfeed โดยกด Alt + X แล้วพิมพ์ elfeed
ในบัฟเฟอร์คำสั่ง การทำเช่นนี้จะโหลดบัฟเฟอร์ 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 จะเพิ่มลิงก์เหล่านั้นลงในฐานข้อมูลภายในโดยอัตโนมัติ จากนั้นโหลดในครั้งต่อไปที่คุณเรียกใช้โปรแกรม
การเพิ่ม RSS Feed ภายใน Emacs
อีกวิธีหนึ่งในการเติม Elfeed คือการให้ลิงค์ฟีดในขณะที่ทำงาน สิ่งนี้ทำให้คุณสามารถอัปเดตรายชื่อฟีดของคุณด้วยลิงก์ RSS โดยไม่ต้องโหลด Emacs ซ้ำ
เมื่อต้องการทำเช่นนี้ ให้กด Alt + X เพื่อเปิดบัฟเฟอร์คำสั่ง พิมพ์ elfeed-add-feed
แล้วกด Enter . Elfeed จะขอให้คุณระบุ URL ของฟีดที่คุณต้องการโหลด
ในกรณีของฉัน ฉันให้ URL ฟีดของเราแก่ Elfeed เพื่อรับการอัปเดตรายวันเกี่ยวกับบทความด้านเทคโนโลยีล่าสุด
ฉันคัดลอก URL ฟีดแล้วกด Ctrl + ใช่ ในข้อความแจ้ง URL ให้วางลิงก์ไปยัง Emacs เมื่อวางแล้วต้องกด Enter เพื่อคอมมิต URL ฟีดไปยัง 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
ว่ารายการเฉพาะนี้ในตัวแปรมีหลายส่วน - ระบุคำที่จะทำหน้าที่เป็นแท็กของคุณสำหรับลิงก์นั้น คุณใส่แท็กได้หลายแท็กตราบใดที่คุณคั่นแต่ละแท็กด้วยการเว้นวรรค
กรอง 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 รวมฟีดทั้งหมดที่มีแท็กนี้อย่างชัดเจน
ให้พิจารณาฟีด 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 ที่คล้ายกัน
ในการทำเช่นนั้น ให้ใช้ 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)))
ฟังก์ชันนั้นจะติดแท็กลิงก์ใด ๆ ที่มีกระสุน “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 ตามแท็กที่กำลังจัดการได้อีกด้วย สิ่งนี้มีประโยชน์หากคุณต้องการให้ฟีดที่มีแท็กเฉพาะโดดเด่น
ในการทำเช่นนั้น คุณต้องกำหนด 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