2008/01/31

Recent entries from same category

  1. vimrcに記述していたパスワード等をPitで管理出来るスクリプトpitconfig.vim書いた。 Hatena
  2. vimからtumblrにポスト出来るvimscript「tumblr.vim」で日本語がポスト出来る様にしてみた。 Hatena
  3. vim-twitterとvim-wassrとvim-mogo2とvim-haikuをcodereposにあげた。 Hatena
  4. vimからVisual Studioを操作出来るvisual_studio.vimの日本語対応してみた。 Hatena
  5. 意外と知られていないvimのtips(perlのファイルを開くのが遅いと思ったら) Hatena

はてな
これはすごい

speeddating.vim - Use CTRL-A/X to increment dates, times, and more : vim online

なんと
  • 2008-01-31 11:51:31
  • I,II,III,IV,V
  • 3rd,4th
等いった日付、時刻、数字表記に対して<C-A>や<C-X>で値をインクリメント/デクリメント出来る様にするという凄いスクリプト。
試しに
2008-01-31 11:51:31
の51の所で30分繰り上げる為に「30<C-A>」とした所、
2008-01-31 12:21:31
と時間まで動くじゃないですか!!!

スバラシス...

そのままでも素晴らしいのですが、このスクリプトの素晴らしいのは、拡張出来る所。

例えば
~/.vim/after/plugin/speeddating_japanese.vim
scriptencoding utf-8

SpeedDatingFormat %Y年%m月%d日 %H時%M分%S秒

let s:japanese_number = '0123456789'
function! s:japanized_number(string,offset,increment)
    let n = tr(a:string, s:japanese_number, '0123456789') + a:increment
    let g:hoge = a:string
    return [tr(n, '0123456789', s:japanese_number), -1]
endfunction
function! s:function(name)
    return function(substitute(a:name,'^s:',matchstr(expand('<sfile>'), '<SNR>\d\+_'),''))
endfunction
let g:speeddating_handlers += [{'regexp': '-\=\<[1234567890]\+\>', 'increment': s:function('s:japanized_number')}]
こんなファイル用意すれば、先ほどと同様に
2008年01月31日 11時51分31秒
の51の所で「30<C-A>」とすれば
2008年01月31日 12時21分31秒
となってくれるのです。
さらに↑の拡張スクリプトでは、全角数字の上で<C-A>/<C-X>するとインクリメント/デクリメント出来る様にする処理が入っていますので、「550」<C-A>を押下すると「551」とインクリメントされます。
素晴らしい。

あー、豚まん食べたくなってきた。

WriteBacks

てすと

Posted by test at 2008/02/01 (Fri) 10:29:20

TrackBack ping me at
Post a comment

writeback message: Ready to post a comment.