flyspellでURLを無視するにはどうすればよいですか?


14

を使用するflyspell-modeと、URLを入力するたびにスペルエラーが報告されます。URLのチェックを停止するようにFlyspellに指示できる方法はありますか?


1
以下のためにispell(ではないflyspell)、この半関連リンク、についてispell-skip-region-alist、有益になります。 superuser.com/a/345461/206164は おそらく、flyspell実装することができ何か似ている-例えば、使用しますflyspell-mode-predicate
ローリスト14

回答:


11

少し掘り下げた後、[この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)

もちろん、いくつかの欠点があります。

  • 「http」または「https」で始まるものはすべてスキップする必要があると想定しています。「http://cnn.com」と「https://google.com」(良い)だけでなく、「httpomatic」と「httpstatisticiansarehip」(おそらく悪い)も含まれます
  • 私はmailto:、ftp:、file:などを気にしません(しかし、その方法は狂気にあるかもしれません...)

しかし、手っ取り早い方法として、それは動作するはずです。


1

私はこれらの線に沿って何かを持っています(マークダウンモードの場合)、Saint Aardvark the 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/}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.