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 |
と打ちます.