Hack #39: Vimの戦闘力を計測する
Posted at 2009/07/10ツイート
Vimmerにとって、自分の戦闘力は.vimrcの行数で表されます。しかし普通に計測したのでは、空行やコメント行も戦闘力に含まれることになってしまい、本当の実力を表さず不公平です。そこで、このHackでは空行やコメント行を除いたVimmerの正味戦闘力を計測する方法を提案します。
戦闘力の計測方法
:Scouter
を実行するだけです。:GScouter
は.gvimrcの戦闘力を計測する場合に使用します。function! Scouter(file, ...)
let pat = '^\s*$\|^\s*"'
let lines = readfile(a:file)
if !a:0 || !a:1
let lines = split(substitute(join(lines, "\n"), '\n\s*\\', '', 'g'), "\n")
endif
return len(filter(lines,'v:val !~ pat'))
endfunction
command! -bar -bang -nargs=? -complete=file Scouter
\ echo Scouter(empty(<q-args>) ? $MYVIMRC : expand(<q-args>), <bang>0)
command! -bar -bang -nargs=? -complete=file GScouter
\ echo Scouter(empty(<q-args>) ? $MYGVIMRC : expand(<q-args>), <bang>0)
:Scouter!
で、旧式の動作をします。戦闘力の目安
- もはやVimとViの違いがよく分かっていないレベルです。.vimrcも最小限の設定しかしていません。
- .vimrcにどこかからコピーアンドペーストした設定を加え始めます。ただし、設定の意味はよく分かっていないことが多いです。Vimのプラグインをインストールすることもこの辺りから始めます。しかし、自分ではVimScriptを上手く作れません。自分から見て遠い存在である中級者以上にあこがれます。数年Vimを使用していても、初級者レベルにとどまっている人は多いことでしょう。中級者になりたかったら、kana氏の書いた「Vimの極め方」を参照すると良いです。
- .vimrcに独自の設定が増えてきます。何か分からないことがあると、:helpを引き始めます。VimScriptを本格的に組み始め、キーバインドを自分流にカスタマイズするのもこの頃からです。自分が使うVimスクリプトを細々と作ったりすることもあります。
- Vimを手足のように使いこなし、思い立ったら.vimrcのカスタマイズを始めてしまいます。Vim以外のソフトを扱うのが苦痛でしょうがなくなり、全てをVim内で完結したいと思うようになります。気に入らないプラグインは即改造され、自分オリジナルのVimプラグインが.vim内に増えてきます。高度にカスタマイズされすぎた彼のVimは他の誰も扱うことができません。彼が素のVimを使用すると、あまりの不便さに発狂してしまうでしょう。もはや完全にVimに毒されています。治療法はありません。
- VimScriptには飽きたらず、ついにVimの内部構造にまで踏み込んでしまいました。彼のVimには自分で作ったパッチが当てられています。Vimのことで疑問があれば彼に質問すると、大抵答えが返ってきます。別名は「歩く:help」。いくら一流のVimmerであっても、このレベルに該当するのはごく少数しかいません。
もどる
blog comments powered by Disqus