追記 2011-05-03: "
追記: yasnippet 使うといいよ、とコメントで教えてもらいました。下記参照。
M-x my-wrap-org-block するとミニバッファで入力を求められるので、ブロックのタイプ(EXAMPLE、SRC など、小文字でOK)を入力すると
- リージョンが設定されている場合はそれを挟むように #+BEGIN_HOGE、#+END_HOGE を挿入
- リージョンが設定されていない場合はカーソル位置に #+BEGIN_HOGE、#+END_HOGE を挿入
(defun my-wrap-org-block (input-str) (interactive "sInput block type: ") (let ((type (upcase input-str))) (if (and transient-mark-mode mark-active) (save-excursion (goto-char (region-end)) (insert "#+END_" type "\n") (goto-char (region-beginning)) (insert "#+BEGIN_" type "\n")) (progn (insert "#+BEGIN_" type "\n\n" "#+END_" type "\n") (forward-line -2)))))
とても再発明くさい。