Flyspell'in URL'leri yoksaymasını nasıl sağlayabilirim?


14

Ne flyspell-modezaman bir URL yazsam, yazım hataları bildiriyor. Flyspell'e URL'leri kontrol etmeyi durdurmasını söylememin bir yolu var mı?


1
Bu yarı bağlantılı bağlantı için ispell(değil flyspell) ispell-skip-region-alistyararlı görünüyor: superuser.com/a/345461/206164 Belki flyspellde uygulanabilecek benzer bir şeye sahiptir - örneğin flyspell-mode-predicate,.
hukukçu

Yanıtlar:


11

Biraz kazdıktan sonra, [bu Superuser.com cevabında bir ipucu buldum : flyspell-mode-predicatekelimelerin kontrol edilip edilmeyeceğine karar verecek bir işleve ayarlamanız gerekiyor . İşte "http" veya "https" ile başlayan herhangi bir şeyi göz ardı etmesini Flyspell'den almanın bir yolu:

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

Tabii ki bazı eksiklikler var:

  • "Http" veya "https" ile başlayan her şeyin atlanması gerektiğini varsayıyorum; " http://cnn.com " ve " https://google.com " (iyi) değil, aynı zamanda "httpomatic" ve "httpstatisticiansarehip" (muhtemelen kötü)
  • Mailto :, ftp :, file :, vs vs ile uğraşmıyorum (Ama bu şekilde delilik uzanabilir ...)

Ancak hızlı ve kirli bir yöntem olarak işe yaramalıdır.


1

Bu çizgiler boyunca (markdown modu için), Saint Aardvark the Carpeted'in cevabından bazı yaygın ama patolojik vakalara biraz daha dirençli olacak bir şeyim var:

(require 'thingatpt)
(defun markdown-flyspell-predicate ()
  (not (thing-at-point 'url)))
(put 'markdown-mode 'flyspell-mode-predicate 'markdown-flyspell-predicate)

Özellikle, bir sözcüğün önündeki boşluğa bakarak başlarsanız, URL mutlaka başlamaz https. Şu durumları düşünün:

(/emacs/)
[text text](/emacs/)
\url{/emacs/}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.