インデントの幅を変更する何やら

むかし最速の人がネストが深くなったりしたらタブの幅を変更して見やすくとか言ってたのを思い出して、xyzzy ならスペースでもできんじゃねーかとほとんど勢いだけで作った。

(defun js-change-indent-level (lv)
  (interactive "*nLevel: ")
  (save-excursion
    (setf c-indent-level (if (> lv 0)
                             lv
                           *javascript-indent-level*))
    (indent-region (point-min) (point-max)))
  (funcall mode-specific-indent-command))

javascript-mode.l に追加。実行(M-x ed::js-change-indent-level とか)するとインデントの幅聞いてくるんで 3 とか 8 とか入れるとインデントの幅変えれる。0 以下ならデフォで設定されてるインデント幅になる。まじめに使うなら保存時にデフォの幅に戻して保存とかした方がよさげ。でも *before-save-buffer-hook* の使い方がよくわからない。このへたれめ。あと見た目を変えてるだけ(っぽくする)なら undo とかの情報もごにょごにょしたいとこだけどやりかt(へたれめ。

define-key とかで渡す関数に引数渡すのって lambda するしかねーのかな。