2008年1月21日月曜日

Emacsで引用記号付き貼り付け

昔は、引用記号付き貼り付けが、エディタの必須機能の一つという時代がありました。
今では各アプリが自前の入力エディタを備えているので、必要とされなくなりましたが・・・orz

ま、それでもないよりは、あったほうがいいじゃん。ということで、Emacsで引用記号付き貼り付けの方法なぞを。

まずは、デフォルトでのやり方。
string-rectangle というコマンドが標準であります。 C-x r t に割り当てられているので、引用したい行を範囲選択し、C-x r t とすると、ミニバッファに引用記号を聞いてくるので、指定すればOK。
実にお手軽。

もうひとつは、~/.emacs に以下を追加して、

;;;====================================
;;;; 引用記号付き貼り付け
;;;====================================
;;; 切り取った文字列を指定した引用記号で貼り付ける。
(defun commentize (str)
"引用記号付き貼り付け。
切り取った文字列を指定した引用記号で貼り付ける。"
(interactive "s引用記号: ")
(save-restriction
(yank)
(narrow-to-region (mark) (point))
(goto-char (mark))
(while (re-search-forward "^[ \t]*" nil t)
(replace-match str)))
(end-of-line)
(newline 2))
Kill(切り取り)して、M-x commentize とすれば、引用記号を聞いてくるので、指定すれば引用記号付きで貼り付けてくれます。

私はこれを、

(global-set-key "\C-\M-y" (lambda () (interactive) (commentize "> ")))
として C-M-y に割り当てています。あらかじめ引用記号を指定してあるので、いちいち毎回引用記号を指定しなくてすむので楽ちんです。

0 件のコメント: