emacs で何か編集していると, こっからここまではコメントにしたい/コメントを はずしたいということが多々あります. 95 年頃作った elisp ですが長年愛用しています.
(defun cite () "cite region " (interactive) (narrow-to-region (region-beginning) (region-end)) (beginning-of-buffer) (setq default "# ") (setq chs (read-string (concat "Citation string: (defalut \"" default "\"):"))) (if (string= chs "") (setq chs default)) (replace-regexp "^" chs ) (exchange-point-and-mark) (widen) ) (defun uncite () "uncite region " (interactive) (narrow-to-region (region-beginning) (region-end)) (beginning-of-buffer) (setq default "# ") (setq chs (read-string (concat "Uncitation string: (defalut \"" default "\"):"))) (if (string= chs "") (setq chs default)) (replace-regexp (concat "^" chs) "" ) (exchange-point-and-mark) (widen) ) |
使い方は, ソース中コメントにしたい部分の先頭をマークした後, コメントにしたい部分の最後にカーソルを移動し (逆でも可),
M-x cite |
と命令します. どういう文字列でコメントするか聞かれますので (デフォルトは "# ") それに答えるとリージョン内の行頭にそれが入ります.
逆にコメントをはずすときは
M-x uncite |
と打ちます.