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 "カーソル列をハイライトしない
たったこれだけです。