เมื่อฉันใช้flyspell-mode
มันจะรายงานข้อผิดพลาดการสะกดเมื่อใดก็ตามที่ฉันพิมพ์ URL มีวิธีที่ฉันสามารถบอก Flyspell ให้หยุดตรวจสอบ URL ได้หรือไม่
เมื่อฉันใช้flyspell-mode
มันจะรายงานข้อผิดพลาดการสะกดเมื่อใดก็ตามที่ฉันพิมพ์ URL มีวิธีที่ฉันสามารถบอก Flyspell ให้หยุดตรวจสอบ URL ได้หรือไม่
คำตอบ:
หลังจากการขุดเล็กน้อยฉันพบคำใบ้ใน [ คำตอบ Superuser.comนี้: คุณจำเป็นต้องตั้งค่าflyspell-mode-predicate
ฟังก์ชั่นที่จะตัดสินว่าควรตรวจสอบคำหรือไม่ นี่คือวิธีในการทำให้ Flyspell ละเว้นสิ่งที่เริ่มต้นด้วย "http" หรือ "https":
(defun flyspell-ignore-http-and-https ()
"Function used for `flyspell-generic-check-word-predicate' to ignore stuff starting with \"http\" or \"https\"."
(save-excursion
(forward-whitespace -1)
(when (looking-at " ")
(forward-char)
(not (looking-at "https?\\b")))))
(put 'text-mode 'flyspell-mode-predicate 'flyspell-ignore-http-and-https)
มีข้อบกพร่องบางอย่างแน่นอน:
แต่เป็นวิธีที่รวดเร็วและสกปรกมันควรจะทำงานได้
ฉันมีบางอย่างตามบรรทัดเหล่านี้ (ในกรณีของฉันสำหรับโหมดมาร์กดาวน์) ที่จะทนต่อบางกรณีที่พบบ่อย แต่พยาธิวิทยาจาก Saint Aardvark คำตอบของ Carpeted:
(require 'thingatpt)
(defun markdown-flyspell-predicate ()
(not (thing-at-point 'url)))
(put 'markdown-mode 'flyspell-mode-predicate 'markdown-flyspell-predicate)
โดยเฉพาะอย่างยิ่งถ้าคุณเริ่มต้นด้วยการมองไปที่ช่องว่างก่อนคำ URL https
ที่จะไม่จำเป็นต้องเริ่มต้นด้วย พิจารณากรณีเหล่านี้:
(/emacs/)
[text text](/emacs/)
\url{/emacs/}
ispell
(ไม่flyspell
) นี้การเชื่อมโยงกึ่งที่เกี่ยวข้องเกี่ยวกับispell-skip-region-alist
ลักษณะที่เป็นประโยชน์: superuser.com/a/345461/206164 บางทีflyspell
มีบางสิ่งบางอย่างที่คล้ายกันที่สามารถดำเนินการได้ -flyspell-mode-predicate
เช่นการใช้