Kiedy używam flyspell-mode
, zgłasza błędy ortograficzne przy każdym wpisywaniu adresu URL. Czy istnieje sposób, aby powiedzieć Flyspell, aby przestał sprawdzać adresy URL?
Kiedy używam flyspell-mode
, zgłasza błędy ortograficzne przy każdym wpisywaniu adresu URL. Czy istnieje sposób, aby powiedzieć Flyspell, aby przestał sprawdzać adresy URL?
Odpowiedzi:
Po odrobinie kopania znalazłem podpowiedź w [tej odpowiedzi Superuser.com : musisz ustawić flyspell-mode-predicate
funkcję, która zdecyduje, czy słowa powinny zostać sprawdzone, czy nie. Oto sposób, aby Flyspell ignorował wszystko zaczynające się od „http” lub „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)
Oczywiście istnieją pewne niedociągnięcia:
Ale jako szybka i brudna metoda powinna działać.
Mam coś w tym stylu (w moim przypadku dla trybu przeceny), aby być nieco bardziej odpornym na niektóre powszechne, ale patologiczne przypadki odpowiedzi Świętego Aardwarka Wykładziny:
(require 'thingatpt)
(defun markdown-flyspell-predicate ()
(not (thing-at-point 'url)))
(put 'markdown-mode 'flyspell-mode-predicate 'markdown-flyspell-predicate)
W szczególności, jeśli zaczniesz od spojrzenia na spację przed słowem, adres URL niekoniecznie zacznie się od https
. Rozważ te przypadki:
(/emacs/)
[text text](/emacs/)
\url{/emacs/}
ispell
(nieflyspell
) tego częściowo powiązanego linku, dotyczącegoispell-skip-region-alist
, wydaje się pomocny: superuser.com/a/345461/206164 Być możeflyspell
ma coś podobnego, co można zaimplementować - npflyspell-mode-predicate
. Za pomocą .