2008/06/26

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

はてな
vimで自前でYAML読み込むとか面倒くさすぎる。
こう言う時はif_pythonとかif_perlとかを使わせてもらう。運良くvimスクリプトはjsonと相性が良いのでYAMLを読み込み、JSONに変換してvimに戻してあげる。
function! LoadYAML(file)
  perl << EOF
use YAML::Syck;
use JSON::Syck qw(Dump);
eval {
  VIM::DoCommand("let ret = " . Dump(LoadFile("".VIM::Eval('a:file'))));
};
VIM::DoCommand("let v:errmsg = substitute('$@', \"\\n\", '', 'g')") if $@;
EOF
  if !exists('ret')
    throw v:errmsg
  endif
  return ret
endfunction

echo LoadYAML("config.yaml")
戻り値はDictionary形式になります。
読み込めなかった場合はthrowしているのでvim7限定になりますがcatchしてやって下さい。

さて、if_perlですがperl510で動かなくなってました。今日パッチを作成してvim-devに送ったのですが、如何せん自信がありません(Shibuya.xsでvimmerな皆様、どうか私にお力をお貸し下さい)。
パッチは
vim72-perl510-fix.diff
にあります。不具合報告等あればご連絡下さい。

WriteBacks

TrackBack ping me at
Post a comment

writeback message: Ready to post a comment.