はじめに
Vim7以降限定ですがVimにはスペルチェック機能がついてます。
これは、~/.vimrc辺りでset spell
`しとくと有功になります。
set spell
こんな塩梅で、間違ったスペルに下線を引いてくれます。
ただしちょっと欠点があります。といいますのは・・・
日本語が全部スペルミス扱いになって残念なことになります。
あとは、ソースをコメントアウトした時もやっぱり残念なことになります。まあそんな英単語ないですからね。
解決方法
ということで、こんな感じで~/.vimrc辺りに書いておくと幸せになれるかも知れません。
アスキーコード以外で書かれている単語と、キャメルケース、スネークケースのようなプログラムソースっぽい単語をスペルチェックの対象から外します。
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
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