编辑我还在emacs.stackexchange
上提出了这个问题我是一个相对的emacs新手,并设置了我的emacs(24.4.1)以使用如here所述的clojure。
它的要点是我现在使用git中的最新组织模式并将其加载到我的init.el中(我正在使用prelude btw),如下所示:
(add-to-list 'load-path "~/repos/org-mode/lisp")
(require 'org)
(require 'ob-clojure)
我正在尝试使用org编写一个有文化的clojure程序,我可以导出到markdown。 Clojure和babel现在运行良好,评估工作等,但当我尝试导出我的组织文件时,我收到错误。
load-with-code-conversion: Symbol's value as variable is void: p
设置toggle-debug-on-error
时的堆栈跟踪是:
Debugger entered--Lisp error: (void-variable p)
eval-buffer(#<buffer *load*> nil
"/Users/krisfoster/repos/org-mode/lisp/ox.el" nil t)
; Reading at buffer position 229233
load-with-code-conversion("/Users/krisfoster/repos/org-mode/lisp/ox.el"
"/Users/krisfoster/repos/org-mode/lisp/ox.el" nil t)
autoload-do-load((autoload "ox" "Export dispatcher for Org mode.\n
\nIt provides an access to common export related tasks in a
buffer.\nIts interface comes in two flavors: standard and
expert.\n\nWhile both share the same set of bindings, only the
former\ndisplays the valid keys associations in a dedicated
buffer.\nScrolling (resp. line-wise motion) in this buffer is done
with\nSPC and DEL (resp. C-n and C-p) keys.\n\nSet variable `org-
export-dispatch-use-expert-ui' to switch to one\nflavor or the
other.\n\nWhen ARG is \\[universal-argument], repeat the last
export action, with the same set\nof options used back then, on
the current buffer.\n\nWhen ARG is \\[universal-argument] \\
[universal-argument], display the asynchronous export
stack.\n\n(fn &optional ARG)" t nil) org-export-dispatch)
command-execute(org-export-dispatch)
我尝试通过(require
解析此问题 - 各种org
导出包,即org git repo克隆中的导出包,来自我的init.el
。但没有骰子 - 实际上产生了更多的问题。我已经尝试过调试,但无法弄清楚出了什么问题。我怀疑我需要一些东西,但不知道是什么。
我的init.el
在这里 - init.el gist
任何人都有任何想法我做错了吗?
提前致谢。
答案 0 :(得分:1)
您发布此帖子时,org-mode中存在错误,因此问题可能会得到解决。但是,我注意到你的init文件存在一些问题。一些可能有帮助的事情
使用lisp包管理器安装包(ELPA)。这将使您的生活更多更容易。组织人员维护着一个ELPA存储库,该存储库定期更新,并且可能比仅仅提供回购更加稳定。他们有一个名为org-plus-contrib的版本,我使用它并且发现非常好。只需添加
(add-to-list'package-archives'(“org”。“http://orgmode.org/elpa/”))
你声明你正在运行的前奏,但我在你的init中看不到任何正在加载前奏的内容(只调用关闭guru模式的函数)。前奏是相当不错的,非常受欢迎,但是如果你要使用它,你需要“喝冷却的帮助”,即以前奏方式做事。例如,prelude附带org-mode并使用ELPA来安装它。您需要小心,不要混合使用组织版本。我发现非常好的前奏的另一种选择是Steve Purcell的emacs.d。我发现使用YMMV更容易一些,但它可能值得一试,因为它对mac有很好的支持。请参阅emacs.d
将emacs init脚本分解为单独的文件是一个非常好的主意。这样,当您尝试追踪问题时,可以轻松地注释掉大量内容,并且只需关注您尝试工作的关键位。我将init.el文件保存为组织文件,并使用babel生成所有的lisp代码。您可以在github上查看它。我最初是从Purcell的emacs.d开始的,然后以骄傲(偷)的方式借用它进入我自己的配置。它不是如何配置emacs的一个很好的示例,但可能有助于您的设置
我注意到你试图用cider作为clojure代码的后端“评估者”。请注意,如果要在org文件中包含要评估的clojure块,然后使用结果,则只需执行此操作。如果您只想从组织代码生成* .clj文件,则无需执行此操作。相反,您只是想“纠缠”您的组织文件,这将生成更新的clj源文件,然后您可以使用它们。这可以使事情变得更简单,并避免在尝试使用组织文件尝试评估clojure代码并失败时出现的问题。另请注意,我希望您需要做的不仅仅是将cider设置为后端评估程序 - cide只是一个repl的接口。你也需要一个repl。