emacs是否具有html的隐藏显示代码折叠功能?当我使用org模式时,我有它,但似乎无法在nXML / html端找到它。
答案 0 :(得分:0)
我为mhtml-mode编写了此代码,它工作得很好,它可以按标签折叠HTML以及嵌入式CSS和JS。只需将其添加到您的emacs配置文件中,即可开始使用。
;; When called this automatically detects the submode at the current location.
;; It will then either forward to end of tag(HTML) or end of code block(JS/CSS).
;; This will be passed to hs-minor-mode to properly navigate and fold the code.
(defun mhtml-forward (arg)
(interactive "P")
(pcase (get-text-property (point) `mhtml-submode)
(`nil (sgml-skip-tag-forward 1))
(submode (forward-sexp))))
;; Adds the tag and curly-brace detection to hs-minor-mode for mhtml.
(add-to-list 'hs-special-modes-alist
'(mhtml-mode
"{\\|<[^/>]*?"
"}\\|</[^/>]*[^/]>"
"<!--"
mhtml-forward
nil))
正则表达式细目:
"{\\|<[^/>]*?"
:匹配{
或任何打开的HTML标记。它与开头标签中的结尾>
匹配,但不包括结尾<script>
。这样就可以将<style>
和"}\\|</[^/>]*[^/]>"
标签视为HTML标签,而不是JS或CSS。
}
:匹配Popen
或结束标记。