Коли я використовую 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)
Звичайно, є і деякі недоліки:
Але як швидкий і брудний метод, він повинен працювати.
Я маю щось у цьому напрямку (в моєму випадку для розмітки), щоб бути дещо стійкішим до деяких поширених, але патологічних випадків з відповіді святого Ардварка Килимового:
(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
.