「通常の」ストレートクオートがあります:
'"
そして、角度のある「スマートクォート」があります:
''“”
Vimのスペルチェックは「ストレート」な引用符では機能しますが、エンジェル引用符では機能しないため、これは「間違った」と見なされます。これは
... Monty Pythonの
そうではありませんが。
フォントが違いを示さない場合のスクリーンショット:
どうすれば修正できますか?私はそれを両方のバリアントで機能させることを望みます(それはそれだけです)。
「通常の」ストレートクオートがあります:
'"
そして、角度のある「スマートクォート」があります:
''“”
Vimのスペルチェックは「ストレート」な引用符では機能しますが、エンジェル引用符では機能しないため、これは「間違った」と見なされます。これは
... Monty Pythonの
そうではありませんが。
フォントが違いを示さない場合のスクリーンショット:
どうすれば修正できますか?私はそれを両方のバリアントで機能させることを望みます(それはそれだけです)。
回答:
$ grep "'" /usr/share/dict/words | wc -l
26226
$ grep -i python /usr/share/dict/words
Python
Python's
python
python's
pythons
問題は、アポストロフィを含むこれらすべての単語が実際に辞書ファイルにあることです。したがって、vimスペル辞書を変更しても問題ない場合は、次のようにします。
$ grep "'" /usr/share/dict/words | sed "s/'/’/g" >> ~/.vim/spell/en.utf-8.add
この意志
grep
アポストロフィ('
)を含むシステム辞書内のすべての単語を検索します。sed
ストレートクォートをスマートクォートに変更します(つまりs/'/’/g
、最初のクォートがストレートで2番目がクォートです)。そしてこれを.spl
ファイルに再コンパイルする必要があります。これはVimから実行できます。
:mkspell! ~/.vim/spell/en.utf-8.add
(システムディクショナリの代わりに)Vimが開始場所として使用する実際のスペルファイルを使用する場合は、:spelldump
コマンドを使用できます。出力には含まれていますすべての Vimは現在のために使用する言葉spelllang
、など、すでにから追加されたこれらの.add
ファイルを。の結果を:spelldump
ファイルに保存し、最初の2行(ヘッダー情報)を削除してから、上記と同じコマンドを使用します。uniq
また、重複したエントリを削除するために、それをパイプ処理することもできます。(の必要はありませんsort
。出力:spelldump
はすでにソートされています。)
:mkspell!
のルートを、あなたも無関係な領域のために意図されている言葉をフィルタリングすることもできます。
現在のところ、VIM用の新しいスペルファイルをダウンロードしてコンパイルするだけです。Unicodeの引用符は、現在のバージョンの英語辞書に追加されました。
この記事に基づく手順:
ディレクトリ~/.vim/spell
を作成して、そこに移動します。(パスはVIMの一部ですruntimepath
。)
英語の場合、辞書はこちらからダウンロードできます。(または、LibreOfficeリポジトリから- .dic
と.aff
ファイルの両方が必要です。)
注意:より良い結果を得るには、en_USとen_GBの両方を取得することをお勧めします。en_GB辞書は、LibreOfficeリポジトリにあります。
ファイルを解凍します。
unzip -x hunspell-en_US-2017.01.22.zip
アーカイブには、少なくとも次のファイルが含まれている必要があります:en_US.aff
およびen_US.dic
。
VIMを(~/.vim/spell
ディレクトリで)起動し、VIMで次のコマンドを実行します。:mkspell! en en_US
または、en_GBファイルもダウンロードした場合: :mkspell! en en_US en_GB
VIMを終了し、現在のディレクトリ内のファイルを確認します。ファイルがen.utf-8.spl
作成されているはずです。
できた!
これで、VIMを起動して英語のスペルチェックを有効にすると、最初に、新しく作成された.spl
ファイルから~/.vim/spell
Unicode引用符のサポートが既に含まれているものが選択されます。少なくとも、それが私にとってどのように機能したか。
's
パターンとして使うのですか?'
同様に、正しい検索だけではありませんか?これは持っている言葉欠場する'
(のような別の場所にyou'd
、you've
など)