Wenn ich flyspell-mode
eine URL eingebe, werden Rechtschreibfehler gemeldet. Gibt es eine Möglichkeit, Flyspell anzuweisen, die Überprüfung von URLs zu beenden?
Wenn ich flyspell-mode
eine URL eingebe, werden Rechtschreibfehler gemeldet. Gibt es eine Möglichkeit, Flyspell anzuweisen, die Überprüfung von URLs zu beenden?
Antworten:
Nach einigem Graben habe ich in [dieser Superuser.com-Antwort einen Hinweis gefunden : Sie müssen flyspell-mode-predicate
eine Funktion festlegen , die entscheidet, ob Wörter überprüft werden sollen oder nicht. Hier ist eine Möglichkeit, Flyspell dazu zu bringen, alles zu ignorieren, was mit "http" oder "https" beginnt:
(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)
Natürlich gibt es einige Mängel:
Aber als schnelle und schmutzige Methode sollte es funktionieren.
Ich habe etwas in diese Richtung (in meinem Fall für den Markdown-Modus), das gegenüber einigen häufigen, aber pathologischen Fällen von Saint Aardvark the Carpeted etwas widerstandsfähiger ist:
(require 'thingatpt)
(defun markdown-flyspell-predicate ()
(not (thing-at-point 'url)))
(put 'markdown-mode 'flyspell-mode-predicate 'markdown-flyspell-predicate)
Insbesondere wenn Sie zuerst den Leerraum vor einem Wort betrachten, beginnt die URL nicht unbedingt mit https
. Betrachten Sie diese Fälle:
(/emacs/)
[text text](/emacs/)
\url{/emacs/}
ispell
(nichtflyspell
) diesen semi-verwandten Linkispell-skip-region-alist
sieht diesbezüglich hilfreich aus: superuser.com/a/345461/206164 Vielleichtflyspell
gibt es etwas Ähnliches, das implementiert werden kann - zflyspell-mode-predicate
. B. mithilfe von .