emacs - 如何在文本模式下使用组织结构模式?

标签 emacs org-mode

组织包括 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/

相关文章:

emacs - 我想尝试组织模式。从零到打字的最短路径是什么?

emacs - 如何在emacs org-mode中将子标题移动到其他标题下

emacs - 如何为 Org 模式内联源代码 src_lang{} 突出显示语法?

emacs - 使用 org-babel 进行文学编程

emacs - 如何在 emacs 缩写模式下将 a\string 替换为非反斜杠字符串?

java - 如何使用 lsp-java 在 emacs 上打开一个 maven 项目?

emacs - 在 Emacs 中运行 latex

Emacs 组织模式 : Turn off line numbers

emacs - Haskell 与 emacs 组织模式 : Variable not in scope

emacs - 如何阻止 Emacs 在基本填充模式下自动在新行开头插入连字符