org-babel-do-load-languages和(package-initialize)的顺序是什么

时间:2017-06-09 02:28:31

标签: macos emacs babel

我已安装org(package-list-packages),但支持babel的自定义并不容易。在我的.emacs中,开始时有(package-initialize),如果我将(org-babel-do-load-languages ...)置于其中,我会Evaluation of this calc code block is disable,而我会(org-babel-do-load-languages ...) (package-initialize)我可以C-c C-c来评估块代码。但在这里我的问题,我发现我不能使用C-c '在另一个buff中键入代码,我想在这种情况下代码(package-initialize)可能没有效果。有什么建议? 环境是mac-10.12.5,emacs-25.2.1,org-8.2.10。 PS:我已经安装了org-9.0.8,但问题仍然存在。现在,我已经找到了关键问题,有两个版本的组织,8.2.10可以执行babel块代码,而9.0.8不能,但为什么呢?

1 个答案:

答案 0 :(得分:2)

目前还不清楚您的问题是什么或者您的配置方式 组织模式。不幸的是,org-mode可能有点棘手,因为有一个 与emacs 25.2(8.x.x)和当前包存档捆绑在一起的旧版本 包含更高版本(9.x.x)。

必须做的第一件事是确保你没有得到混合版本 组织模式。这样做可能会导致一些意想不到的行为而且很奇怪 错误。要么坚持使用Emacs附带的组织模式版本,要么使用 通过ELPA安装的更高版本。

关键步骤是,如果您通过ELPA进行安装,必须确保 在加载任何组织之前,ELPA已经安装并激活了组织模式 功能。简单来说,对组织的第一次引用应该在你的 从ELPA安装组织的初始化代码。

鉴于你似乎对org相当新,而且可能是emacs的新手,我的 建议使用Emacs自定义界面来配置组织。这个 将会处理一些你需要做的微妙的事情 组织配置,可能会提供一个更容易的初始路径 开始。

除非您需要版本9.x.x中的功能,否则我也会考虑 只是使用emacs附带的org版本开始。

从一个非常简单(甚至是空的)初始化文件开始,启动emacs然后就行了 M-x定制组织组织。然后,您可以使用自定义 设置组织的界面。

根据babel支持的语言,您可能会发现需要 org-plus-contrib包。在这种情况下,您需要添加该包 通过ELPA。我发现这些天最简单的方法是使用 use-package包。有关use-package的详细信息,请参阅github。

基本思路是使用package.el来安装use-package然后使用 use-package包用于安装和配置所有其他包。有一个 使用org-plus-contrib包的小技巧 - 您需要指定包 作为组织,但将org-plus-contrib放入:确保密钥,即

(use-package org
  :ensure org-plus-contrib
  :init
  ;; stuff you want done before org loaded
  :config
  ;; stuff you want doen after org loaded
  )