長らくPerlのオブジェクトをダンプするのにData::Dumper
を使っていたけど,フラグの立った文字を見にくかったりして,なにかと困っていた.
日本語見れるDumperないんかな…という話をしていて,Data::Printer
なら見れることが分かったので,EmacsでDDってDを2回押すとData::Printer
でデバッグできるようにした.
(define-key cperl-mode-map (kbd "D") (smartchr '("D" "use DDP { show_unicode => 1, use_prototypes => 0, colored => 0 }; p `!!';")))
smartchr.elを使っていて,大文字のDを2回入力するとカーソル位置にこれが出る.
use DDP { show_unicode => 1, use_prototypes => 0, colored => 0 }; p (ここにカーソル)
追記,Atomだとこんなかんじ
smartchr: chrs: [ { candidates: [ "D" "use DDP { show_unicode => 1, use_prototypes => 0, colored => 0 }; p " ] chr: "D" } ]
説明
いろいろ指定している.
show_unicode=> 1
フラグが立ってるときに,"デコードされている" (U)
みたいに,(U)をつけてくれる.
use_prototypes => 0
これをしないと,p "hi"
とか書けなくて,いちど変数に入れないといけなくて不便.
colored => 0
Emacsから表示すると制御文字がそのまま表示されてしまったので,色なしにする.
ふつうの人はふだんからこういう便利モジュールを使ってそうなので,何を今更感ある話かもしれない.
追記
毎回書くのがめんどうな場合は.dataprinterというファイルでこれらのオプションを設定してしまうとよいです。
blog.sushi.money