Fork me on GitHub

2008/01/31

Recent entries from same category

  1. modeline内でfileencodingを指定出来るVimプラグイン書いた。 Hatena
  2. pluginフォルダは汚したくないが、使ってみたい。 Hatena
  3. Vimで外部ライブラリを複数個の引数で呼び出せるlibcallex.vim書いた。 Hatena
  4. Vimで動画再生 Hatena
  5. HTML更新時にブラウザをリロード 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」とインクリメントされます。
素晴らしい。

あー、豚まん食べたくなってきた。
Posted at 13:54 in ソフトウェア::vim | WriteBacks (1) | Edit
Tagged as: tips, vim
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip | add to buzzurl add to buzzurl | add to fc2bookmark add to fc2bookmark | add to Yahoo Bookmark add to Yahoo Bookmark | add to Pookmark add to Pookmark

blog comments powered by Disqus
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.