【问题标题】:emacs: Does HideShow work with xml-mode (sgml-mode)?emacs:HideShow 是否适用于 xml 模式(sgml 模式)?
【发布时间】:2009-06-03 13:03:04
【问题描述】:

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

如果能够在 XML 文档中做到这一点,那就太好了。我使用 emacs 22.2.1 和内置的 sgml-mode 进行 xml 编辑。我还没有获得使用 XML 的 hideshow。我的意思是,我打开了次要模式,但击键没有效果。哦,除了,我确实收到了要折叠的 XML 注释。但是没有元素。

有人成功过吗?
建议?


编辑:我敢打赌,如果我向 hs-special-modes-alist 添加一个 sgml-mode 元素,它会起作用。我需要一个用于开始块的正则表达式。有人做过吗?


我还没有转到 nxml 模式。我是不是该?它是“折叠”还是隐藏?

【问题讨论】:

    标签: xml emacs


    【解决方案1】:

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

    ;; 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)))
    

    【讨论】:

    • 效果很好:你能以某种方式将它合并到下一个 Emacs 版本中吗?
    • / 是 XML 属性值的有效字符。所以START 正则表达式可能会破坏一些 XML,例如,如果属性包含 base64 数据 ((.
    猜你喜欢
    • 1970-01-01
    • 2021-05-28
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    相关资源
    最近更新 更多