我正在尝试向程序模式添加自定义标题,我希望它位于最高级别,并将所有其他级别向下移动,这样我就可以为我的长脚本添加更多结构。例如,对于 python 模式,标题格式为“# *”,星号的数量决定了它的级别。我的方法是通过添加这样的钩子来修改 outline-regexp 变量。
(defun my_heading()
"custom heading for all prog mode"
(setq outline-regexp (concat "\\(?:" comment-start " [*]\\{1,8\\}\\)?" outline-regexp)))
(add-hook 'outline-minor-mode-hook 'my_heading)
理想情况下,匹配越小,标题级别越高。但是上面的方法不管用。如果我用下面的方法替换它,它也不行。
(setq outline-regexp (concat comment-start " [*]\\{1,8\\}\\|" outline-regexp)))
python 模式的原始 outline-regexp 的值是
"[[:space:]]*\\_<\\(?:\\(?:class\\|def\\|e\\(?:l\\(?:if\\|se\\)\\|xcept\\)\\|f\\(?:inally\\|or\\)\\|if\\|try\\|w\\(?:hile\\|ith\\)\\)\\)\\_>"
有人能告诉我如何才能实现我的目标吗?提前谢谢您。