Vim script で簡単なペインティングツール

先日 unite-kakizome なる unite-source をつくったんですが、よくよく考えるともっと簡単な実装方法があったので書いてみました。
思ったよりも短いです。

[ソース]

tabnew
function! s:reset()
    for y in range(winheight(0))
        call setline(y, join(map(range(winwidth(0) - 7), "'a'"), ""))
    endfor
endfunction
call s:reset()

nnoremap <silent><buffer> 1 :call <SID>reset()<Esc>
nnoremap <silent><buffer> <LeftMouse> <LeftMouse>Rxx<Esc>
nnoremap <silent><buffer> <LeftDrag> <LeftMouse>Rxx<Esc>
nnoremap <silent><buffer> <LeftRelease> <LeftMouse>Rxx<Esc>
nnoremap <silent><buffer> <RightMouse> <LeftMouse>Raa<Esc>
nnoremap <silent><buffer> <RightDrag> <LeftMouse>Raa<Esc>
nnoremap <silent><buffer> <RightRelease> <LeftMouse>Raa<Esc>

syntax match black /x/
highlight black ctermfg=black ctermbg=black guibg=black guifg=black
syntax match white /a/
highlight white ctermfg=white ctermbg=white guibg=white guifg=white
highlight clear Cursor

setlocal buftype=nowrite   "バッファの内容を保存しない
setlocal noswapfile        " スワップファイルを作成しない
setlocal bufhidden=wipe    " バッファがウィンドウ内から表示されなくなったら削除
setlocal nocursorline      "カーソル行をハイライトしない
setlocal nocursorcolumn    "カーソル列をハイライトしない

たったこれだけです。

[使い方]

上記の Vim script を適当なファイルに保存して :source するだけです。
そうすると新しいタブが開いてマウスで書きこむことが出来るようになります。
使い方は unite-kakizome と同じです。

左クリック カキカキ
右クリック ケシケシ
1キー クリア



そろそろ unite.vim から脱出したいと思わなくもない。