outline-minor-modeを使ってHTML::Templateの編集を便利に

HTML::Templateを編集しているとき、がうじゃうじゃ出てくるとうっとうしくなってくるので、

<TMPL_IF NAME=hoge>
<h1>ここはhogeの中だよー</h1>
</TMPL_IF>

<TMPL_IF NAME=hoge>...

にまとめてしまう。やり方は簡単。.emacsに以下のように書けばOK。使い方は普通のoutline-minor-modeで。

(add-hook 
 'html-mode-hook
 '(lambda ()
    (setq outline-regexp "^.*<TMPL_IF\\>")
    (setq outline-heading-end-regexp "\n")
    (setq outline-level
          (function (lambda () 
                      (save-excursion
                        (looking-at outline-regexp)
                        (char-after (1- (match-end 0)))))))
    (outline-minor-mode t)))

参考にしたのは、以下のページ。

http://www.bookshelf.jp/pukiwiki/pukiwiki.php?%B2%BF%A4%C7%A4%E2%A5%A2%A5%A6%A5%C8%A5%E9%A5%A4%A5%F3%A5%E2%A1%BC%A5%C9#content_1_11



outline-modeというのは、構造書きされている文章の見出しを畳んで整理するものなで、で大きくHTMLドキュメントの内容を分岐しているような場合は、きれいに畳まれてすっきりだけど、文章中の一部の文言の分岐とかに使われている場合は、きっと気持ち悪い畳まれ方をする。

とかも考慮してないし、改良が必要そう。


viみたいに任意の複数行をたたむのができれば一番いいんですが。できたよね、確かそういうの。