Vimのスペルチェックを「スマートクオート」で使用するにはどうすればよいですか


11

「通常の」ストレートクオートがあります:
'"

そして、角度のある「スマートクォート」があります:
''“”

Vimのスペルチェックは「ストレート」な引用符では機能しますが、エンジェル引用符では機能しないため、これは「間違った」と見なされます。これは
... Monty Pythonの

そうではありませんが。

フォントが違いを示さない場合のスクリーンショット:

ここに画像の説明を入力してください

どうすれば修正できますか?私はそれを両方のバリアントで機能させることを望みます(それはそれだけです)。

回答:


7
$ 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はすでにソートされています。)


なぜ'sパターンとして使うのですか?'同様に、正しい検索だけではありませんか?これは持っている言葉欠場する' (のような別の場所にyou'dyou'veなど)
マーティンTournoij

はい、そうです。回答を編集しました。
wchargin

おかげで:-)理由をもってそれを行ったかどうかわからなかったので、自分で編集するのをためらっていました...
Martin Tournoij、2015

あなたが行くことを選択した場合:mkspell!のルートを、あなたも無関係な領域のために意図されている言葉をフィルタリングすることもできます。
アーロンマッセイ

1

現在のところ、VIM用の新しいスペルファイルをダウンロードしてコンパイルするだけです。Unicodeの引用符は、現在のバージョンの英語辞書に追加されました。

この記事に基づく手順:

  1. ディレクトリ~/.vim/spellを作成して、そこに移動します。(パスはVIMの一部ですruntimepath。)

  2. 英語の場合、辞書はこちらからダウンロードできます。(または、LibreOfficeリポジトリから- .dic.affファイルの両方が必要です。)

    注意:より良い結果を得るには、en_USとen_GBの両方を取得することをお勧めします。en_GB辞書は、LibreOfficeリポジトリにあります。

  3. ファイルを解凍します。

    unzip -x hunspell-en_US-2017.01.22.zip
    

    アーカイブには、少なくとも次のファイルが含まれている必要があります:en_US.affおよびen_US.dic

  4. VIMを(~/.vim/spellディレクトリで)起動し、VIMで次のコマンドを実行します。:mkspell! en en_US

    または、en_GBファイルもダウンロードした場合: :mkspell! en en_US en_GB

  5. VIMを終了し、現在のディレクトリ内のファイルを確認します。ファイルがen.utf-8.spl作成されているはずです。

  6. できた!

これで、VIMを起動して英語のスペルチェックを有効にすると、最初に、新しく作成された.splファイルから~/.vim/spellUnicode引用符のサポートが既に含まれているものが選択されます。少なくとも、それが私にとってどのように機能したか。

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