###はじめに
Vim7以降限定ですがVimにはスペルチェック機能がついてます。
これは、~/.vimrc辺りで`set spell``しとくと有功になります。
set spell
こんな塩梅で、間違ったスペルに下線を引いてくれます。
ただしちょっと欠点があります。といいますのは・・・
日本語が全部スペルミス扱いになって残念なことになります。
あとは、ソースをコメントアウトした時もやっぱり残念なことになります。まあそんな英単語ないですからね。
###解決方法
ということで、こんな感じで~/.vimrc辺りに書いておくと幸せになれるかも知れません。
アスキーコード以外で書かれている単語と、キャメルケース、スネークケースのようなプログラムソースっぽい単語をスペルチェックの対象から外します。
(追記:10/20/2013 19:00ごろ)
シンタックスハイライトが崩れることがあったので修正。
あと、やっぱりソースコードに訂正線を入れられることがたまにあります。動きがよく分からない。
fun! s:SpellConf()
redir! => syntax
silent syntax
redir END
set spell
if syntax =~? '/<comment\>'
syntax spell default
syntax match SpellNotAscii /\<\A\+\>/ contains=@NoSpell transparent containedin=Comment contained-
syntax match SpellMaybeCode /\<\h\l*[_A-Z]\h\{-}\>/ contains=@NoSpell transparent containedin=Comment contained
else
syntax spell toplevel
syntax match SpellNotAscii /\<\A\+\>/ contains=@NoSpell transparent
syntax match SpellMaybeCode /\<\h\l*[_A-Z]\h\{-}\>/ contains=@NoSpell transparent
endif
syntax cluster Spell add=SpellNotAscii,SpellMaybeCode
endfunc
augroup spell_check
autocmd!
autocmd BufReadPost,BufNewFile,Syntax * call s:SpellConf()
augroup END
最新のVIMであれば日本語をスペルチェックの対象から外すオプションが入ったみたいです
shuhei パッチが取り込まれたようで :set spelllang=en,cjk で日本語除外されるようです。
set spelllang=en,cjk
fun! s:SpellConf()
redir! => syntax
silent syntax
redir END
set spell
if syntax =~? '/<comment\>'
syntax spell default
syntax match SpellMaybeCode /\<\h\l*[_A-Z]\h\{-}\>/ contains=@NoSpell transparent containedin=Comment contained
else
syntax spell toplevel
syntax match SpellMaybeCode /\<\h\l*[_A-Z]\h\{-}\>/ contains=@NoSpell transparent
endif
syntax cluster Spell add=SpellNotAscii,SpellMaybeCode
endfunc
augroup spell_check
autocmd!
autocmd BufReadPost,BufNewFile,Syntax * call s:SpellConf()
augroup END