数を指定して各行の頭の空白を挿入/削除

デフォルトのEmacsでは、指定したスペース分だけインデントをする、ということができない。これは意外と不便だ。とくにテキストを書いているとき。
これに困ってこれを解決するElispを書いた人はおそらく世界で5万人ぐらいいるだろうが、検索するのが面倒くさいのでまた再発明をする。

(defun indent-rigidly-by-n (q)
  (interactive "nHow many colmns to indent by?:")
  (if (and transient-mark-mode mark-active)
      (indent-rigidly
       (region-beginning)
       (region-end)
       q)
    (error "No region selected.")
    ))

dot.emacsにでも書いてください。
インデントしたい箇所をリージョンで指定して M-x indent-rigidly-by-n すると「いくつ分インデントしますか」と聞いてきますんで、インデント量を入力ください。負の数を入れると逆インデントとなります。

追記 (2009.6.23)

上の再発明がなくても、Emacsの標準機能だけで実現できるじゃねーか。

C-u 数値 M-x indent-rigidly

C-u を使えばコマンドにパラメータを渡すことができるなんて、知らんかったよ。