组织包括 Orgstruct mode ,它为其他次要模式添加了类似组织的功能。在文档中,他们建议您可能希望对消息或文本模式执行此操作。我愿意!我调整了他们的消息代码以适用于 mu4e
,但无法调整其以适用于 text-mode
。
他们建议使用以下代码:
(add-hook 'message-mode-hook 'turn-on-orgstruct)
我尝试了以下版本:
(add-hook 'text-mode-hook 'turn-on-orgstruct)
(add-hook 'text-mode-hook 'orgstruct-mode)
以及使用 lambda
的版本。
但是,所有这些都会阻止 Emacs 作为守护进程启动。如果我正常运行 Emacs(不是作为守护进程),它可以工作,但会弹出错误:
font-lock-default-unfontify-buffer: Lisp nesting exceeds `max-lisp-eval-depth'
我想这与文本模式
与其他主要模式的关联方式有关。我可以在 text-mode
中安全地使用 orgstruct-mode
吗?怎么办?
最佳答案
这是一个无限的回归:文本模式运行钩子(Hook),该钩子(Hook)打开 orgstruct-mode,它调用 org-get-local-variables,而 org-get-local-variables 又调用 org-mode。但org-mode是outline-mode的派生模式,outline-mode又是text-mode的派生模式,所以text-mode-hook被递归调用:boom。
为了解决这个问题,我将 auto-mode-alist
中的文本模式条目切换为完整的组织模式。我只在消息中自动使用 orgstruct++-mode 和 orgtbl-mode。有时我在 Latex 中手动打开 orgtbl-mode,但这很少见:大多数时候,我从 org 导出到 Latex。
关于emacs - 如何在文本模式下使用组织结构模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22713901/