スペルミスの自動修正


19

スペルチェックを有効にしました

:set spell spelllang=en_us

入力することで単語のスペルを修正できます1z=(つまり、1stスペル修正(z=)を選択します)。

スペースを入力するたびに、遅延なく前の単語でこれを自動的に実行するにはどうすればよいですか?また、すでに正しくスペルされている単語を「修正」しようとするため(のようなことはできませんinoremap <space> <esc>mmb1z=`ma<space>)、スペルが間違っている場合にのみ入力するすべての単語を修正したいと思います。

Vimでスペルミスの単語を自動修正する方法はありますか?



1
@ArturoVolpeそれは質問に対する正当な答えのようです。
bsmith89

前のエラー「[s」をリマップに結合できますか?私は答えとして追加しますが、リマップを行う方法がわからないので、他の人にそれを任せます。
ニックJアダムズ

回答:


8

2つの理由から、間違っているとマークされているすべての単語を自動的に修正しないことをお勧めします。

  • まず、特にテクニカルライティングでは、入力しようとしているものに対して多くの誤検知が発生します。確かに、これら2つを辞書に追加して、それらを認識して提案できるようにする必要があります。ただし、それらが自動修正されていることに気付かない場合、ドキュメントの最終バージョンにスリップする可能性があります。または、コードまたは構成ファイルを作成している場合(たとえば、グラフが完全に見えるように変更xminするminと、違う)。コメントも奇妙になります(たとえば、「ラベルと無効化命令」を「ラベルと無効化命令」に変更しました。これにより、(a)名詞句から命令に、(b)完全に異なる意味に変わります。 )
  • 第二に、オートコレクトは短い単語ではかなり不十分です。私の経験では、最も近い単語に完成する傾向があります。たとえば、3文字の単語では、あなたの言っているものとはまったく異なる場合があります。を入力するつもり、誤ってfoを入力した場合、それは少数に修正されます。繰り返しますが、これらは大まかなリビジョンではキャッチするのが難しい場合があります。

それを念頭に置いて、あなたの本当の目標は、誤植をすばやく認識して修正できるようにすることだと思います。

次のマッピングを使用してこれを実現します。

" Go back to last misspelled word and pick first suggestion.
inoremap <C-L> <C-G>u<Esc>[s1z=`]a<C-G>u

" Select last misspelled word (typing will edit).
nnoremap <C-K> <Esc>[sve<C-G>
inoremap <C-K> <Esc>[sve<C-G>
snoremap <C-K> <Esc>b[sviw<C-G>

本文テキストを入力しているとき、強調表示設定ごとにスペルミスのある単語に下線が引かれます。単語が比較的長く、簡単なタイプミスであることがわかった場合spellは、おそらくそれが正しく修正されると考えられるので、ヒット<C-L>してそのまま入力し続けます。短い単語であるか、間違っていると予想される場合は、<C-K>自分で押して調整できます。最後spellに、誤って間違ったものを修正した場合、取り消しマーカーを<C-G>uで設定した<Esc>ucWため、手動で変更するだけで済みます。これにより、ほとんどの場合、非常に迅速なワークフローが実現します。


すべての単語を自動的に修正するのは素晴らしいアイデアです。
リッチ

2

たまたま、まさにこれを行うプラグインを作成しました。Vim You、Autocorrectと呼ばれます!

インストール後:EnableAutocorrect、任意のバッファーで入力してスイッチをオンにすると、すぐにwcharginのscaremongeringがまったく根拠のないものであることがわかります。


wcharginの回答に対するコメントに失礼のフラグが付けられていることに注意してください。「Poppycock!」を削除するように編集しました。フラグを却下しました。大したことではなく、参考までに。
マーティントゥルノイジ

@MartinTournoijそれは結構です。redditの多くの人々も冗談を得ませんでした。:)(しかし、ヘッズアップに感謝します。)
リッチ

私は理解していませんでしEnableAutoCorrect:私はインストールして入力したいパッケージリッチMR
MPクリエーションズ

@MPCreationsプラグインマネージャーを使用していますか?
リッチ

@MPCreationsは多分への回答を見てとるvi.stackexchange.com/questions/613/...をあなたがプラグインをインストールする方法がわからない場合は
リッチ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.