文字数カウントスクリプト
vimエディタの質問で、よくファイル内の文字数の数え方を聞く人がいるけど、
ひょっとして、こんなスクリプトが欲しいんじゃないかな?
(さっき思いついて作ったよ。私自身がこういうの欲しいな、と思ったんだ。)
これをみて、ステータスラインに表示するのに都合が良いようにしてみた。
(ステータスラインに関数を直接埋め込むと大変なことになりそうなので変数を更新する方式で)
WC:[0/0] とか埋め込んで書き換えちゃうと変更あつかいになっちゃうし…
" Tue Apr 22 07:49:35 JST 2008 " " b:charCounterCount に文字数をセットするスクリプト " バッファを保存したりしたときに、更新される。 " " ステータスラインに入れて使う例↓ " set statusline=%{b:charCounterCount} if exists("anekos_charCounter") finish endif let anekos_charCounter=1 augroup CharCounter autocmd! autocmd BufCreate,BufEnter * call <SID>Initialize() autocmd BufUnload,FileWritePre,BufWritePre * call <SID>Update() augroup END function! s:Initialize() if exists('b:charCounterCount') else return s:Update() endif endfunction function! s:Update() let b:charCounterCount = s:CharCount() endfunction function! s:CharCount() let l:result = 0 for l:linenum in range(0, line('$')) let l:line = getline(l:linenum) let l:result += strlen(substitute(l:line, ".", "x", "g")) endfor return l:result endfunction function! AnekoS_CharCounter_CharCount() return s:CharCount() endfunction
http://www.kurinton.net/~snca/blogfiles/ank_cc.vim
08/22 07:51
Initializeを使うように修正