クロージャを使ったコマンド
フレームとバッファとグローバルマーカを一元管理するモードを考えていて、ちょっと詰まってきた*1ので気分転換に作ってみた。
謎の機能クロージャ - himadatenodeの日記
でこれを何かに使った事とって殆どないけど
と言われてるクロージャだけど、数値を記憶して欲しい簡単なコマンドなどには便利。
(let ((N 3)) (defun fast-scroll (dir &optional new) (if new (setq N new)) (scroll-window (if dir N (- N))))) (defun fast-forward-line (&optional N) (interactive "p") (fast-scroll t N)) (defun fast-previous-line (&optional N) (interactive "p") (fast-scroll nil N))
fast-scrollの移動数を切り替えられると便利。だけど、そのために変数名を消費するのはいやだ。
そこで、こう書いておけば、外のコマンドからは参照されないNに移動量を保存しておける。
値を変更したいときは、universal-argument[C-u]やdegit-argumentで簡単に行える。
*1:何もできてないじゃん。