emacs:HideShow是否适用于xml-mode(sgml-mode)?

时间:2009-06-03 13:03:05

标签: xml emacs

我在cc模式缓冲区中使用hideshow.el来折叠我不看的文件部分。

能够在XML文档中执行此操作会很高兴。我使用emacs 22.2.1和内置的sgml-mode进行xml编辑。我还没有使用hideshow来处理XML。我的意思是,我打开次要模式但按键没有效果。哦,除了我确实得到了一个XML评论崩溃。但没有元素。

有没有人成功完成这项工作?
建议?


编辑:我敢打赌,如果我将一个sgml-mode元素添加到hs-special-modes-alist,它会起作用。我需要一个用于start-block的正则表达式。有没有人这样做过?


我还没有搬到nxml-mode。我是不是该?它会“折叠”还是隐藏?

1 个答案:

答案 0 :(得分:10)

回答我自己的问题......我正在使用这样的东西。似乎工作。

;; Fix XML folding
(add-to-list 'hs-special-modes-alist
             (list 'nxml-mode
                   "<!--\\|<[^/>]*[^/]>"
                   "-->\\|</[^/>]*[^/]>"
                   "<!--"
                   'nxml-forward-element
                   nil))

;; Fix HTML folding
(dolist (mode '(sgml-mode
                html-mode
                html-erb-mode))
  (add-to-list 'hs-special-modes-alist
               (list mode
                     "<!--\\|<[^/>]*[^/]>"
                     "-->\\|</[^/>]*[^/]>"
                     "<!--"
                     'sgml-skip-tag-forward
                     nil)))