くまのりくふん RSSフィード

 | 

2008-08-31

smartchrの間違った使い方

00:16 | はてなブックマーク - smartchrの間違った使い方 - くまのりくふん

smartchr - Insert several candidates with a single key : vim online

function! s:owata_init()
  call s:owata_make_window("[owata]")
  call s:owata_make_keymapping()
  call s:owata_make_autocommand()
endfunction

function! s:owata_loop()
  if !exists("s:owata_count")
    let s:owata_count = 0
  elseif s:owata_count >= 20
    let s:owata_count = 0
    close
    return
  endif
  call feedkeys("A_\<Esc>")
  let s:owata_count += 1
endfunction

function! s:owata_make_window(owata_bufname)
  1new
  setlocal bufhidden=wipe
  setlocal buftype=nofile
  setlocal noswapfile
  setlocal nobuflisted
  file `=a:owata_bufname`
endfunction

function! s:owata_make_keymapping()
  inoremap <buffer> <expr> _ smartchr#one_of(
        \ '←9/1                  ┗(^o^ )┓三',
        \ '←9/1                 ┗(^o^ )┓三',
        \ '←9/1                ┗(^o^ )┓三',
        \ '←9/1               ┗(^o^ )┓三',
        \ '←9/1              ┗(^o^ )┓三',
        \ '←9/1             ┗(^o^ )┓三',
        \ '←9/1            ┗(^o^ )┓三',
        \ '←9/1           ┗(^o^ )┓三',
        \ '←9/1          ┗(^o^ )┓三',
        \ '←9/1         ┗(^o^ )┓三',
        \ '←9/1        ┗(^o^ )┓三',
        \ '←9/1       ┗(^o^ )┓三',
        \ '←9/1      ┗(^o^ )┓三',
        \ '←9/1     ┗(^o^ )┓三',
        \ '←9/1    ┗(^o^ )┓三',
        \ '←9/1   ┗(^o^ )┓三',
        \ '←9/1  ┗(^o^ )┓三',
        \ '←9/1 ┗(^o^ )┓三',
        \ '←9/1┗(^o^ )┓三',
        \ '\(^o^)/夏休みオワタ')
endfunction

function! s:owata_make_autocommand()
  let s:backup_updatetime = &updatetime
  let &updatetime = 300
  augroup Owata
    autocmd!
    autocmd BufEnter    <buffer> let &updatetime=300
    autocmd BufLeave    <buffer> let &updatetime=s:backup_updatetime
    autocmd CursorHold  <buffer> call s:owata_loop()
  augroup END
endfunction

command! -nargs=0 Owata call s:owata_init()

おもむろに、

:Owata<CR>

とたたく。

スクリプトを書いている間に9月1日になったのが凄く悔しいです。

変更履歴

augroupを閉じ忘れていたのを修正

test用にs:owata_countをechoしていたのを削除

トラックバック - http://vim.g.hatena.ne.jp/kuhukuhun/20080831
 |