スペルファイルのURLとメールアドレスを無視する


11

HTTP URLと電子メールアドレスにスペルミスとしてフラグを付けないようにする方法はありますか?または、より一般的には、有効なスペルの正規表現をリストする方法は?

回答:


14

カスタム構文規則を追加して@nospellキーワードを与えることができます。これにより、 Vimはこの構文の一致にスペルチェックを適用しなくなります。例えば:

:syn match UrlNoSpell "\w\+:\/\/[^[:space:]]\+" contains=@NoSpell

上記はテキストファイルと一部のファイルタイプ(markdownなど)で機能しますが、すべてのファイルタイプで機能するわけではありません。

ここではかなり単純な正規表現を使用していることに注意してください。テキストからURLを解析する方法を参照してください。


他のファイルタイプについては、もう少し作業を行う必要があります。たとえば、pythonファイルの場合、コメントは次のpythonComment グループに含まれます/usr/share/vim/vim74/syntax/python.vim

syn match   pythonComment   "#.*$" contains=pythonTodo,@Spell

これをオーバーライドするには、次のことを行う必要があります。

:syn match UrlNoSpellComment "\w\+:\/\/[^[:space:]]\+" contains=@NoSpell containedin=pythonComment
:highlight def link UrlNoSpellComment Comment

トリックは、以前に一致した構文一致のリストを追加することです。これには、カスタム構文一致を含めることができます。containedin=これにより、一致内でUrlNoSpell正規表現を検索するようにVimに指示します 。pythonComment

またhighlight、これらは継承されないため、を使用して正しい色を設定する必要があります。

これは、Pythonストリングなど、いくつかの場所で行う必要があります。

:syn match UrlNoSpellString "\w\+:\/\/[^[:space:]]\+" contains=@NoSpell containedin=pythonString
:highlight def link UrlNoSpellString String

正しい構文強調表示を適用できるように、2つの異なる構文一致グループが必要です。

もちろん、他のファイルタイプについてcontainedin=は、他の構文一致を使用する必要があります... AFAIKには「ユニバーサル」な解決策は/usr/share/vim/vim74/syntax/*.vimありませんが、正しいファイルを探すのはそれほど難しくありません。


上記のコマンドはすべて、構文ファイルのに実行する必要があることに注意してください。これを行うには2つの方法があります。

  • コマンドまたはキーマッピングから、毎回手動で呼び出す必要があります。例えば

    fun! NoUrlSpell()
        if &filetype == 'python'
            :syn match UrlNoSpellComment "\w\+:\/\/[^[:space:]]\+" contains=@NoSpell containedin=pythonComment
            :highlight def link UrlNoSpellComment Comment
            :syn match UrlNoSpellString "\w\+:\/\/[^[:space:]]\+" contains=@NoSpell containedin=pythonString
            :highlight def link UrlNoSpellString String
        elseif &filetype == 'ruby'
            " ...
        else
            syn match   pythonComment   "#.*$" contains=pythonTodo,@Spell
        endif
    endfun
    command NoUrlSpell :call NoUrlSpell()
    
  • コマンドをに入れます~/.vim/after/syntax/[filetype].vim。Vimはこれらのファイルを取得し、デフォルトの構文ファイルの後に実行します(参照:) :help after-directory

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.