あー、一瞬でできた。いつもの通り既出かどうかなんてどうでもいい気分です。ていうか結構便利な気がしてきました。
(defun twoline-next () "twoline next" (interactive) (let (l1b l1e l2b l2e) (save-excursion (forward-line -1) (beginning-of-line) (setq l1b (point)) (end-of-line) (setq l1e (point)) (forward-line -1) (beginning-of-line) (setq l2b (point)) (end-of-line) (setq l2e (point)) ) (call-process "twoline" nil t nil (buffer-substring l2b l2e) (buffer-substring l1b l1e))) ) (global-set-key "\C-q\C-i" 'twoline-next)
などと。
次回予告。
IoObject_addMethod_(self, IOSTRING("fp_add"), IoMicroFunction_fp_add); IoObject_addMethod_(self, IOSTRING("fp_sub"), IoMicroFunction_fp_sub); IoObject_addMethod_(self, IOSTRING("fp_mul"), IoMicroFunction_fp_mul); IoObject_addMethod_(self, IOSTRING("fp_div"), IoMicroFunction_fp_div); IoObject_addMethod_(self, IOSTRING("fp_imm"), IoMicroFunction_fp_imm);
例えばこんなデータから、
struct jit_fp *MicroFunction_fp_add(MicroFunction *self, struct jit_fp *r, struct jit_fp *i);
の次の行を生成できると便利では無いでしょうか。
twoline.rb もたぶん少し手が入っています。たぶん引数エラー時に exit をつけただけです。 twoline.rb 見て思ったんですが眠い時に書いたスクリプトとしては異例な小綺麗さでびっくりしました。