gpt4 book ai didi

emacs - 带有 clojure 的 org 模式 - 无法导出工作

转载 作者:行者123 更新时间:2023-12-01 05:05:30 24 4
gpt4 key购买 nike

编辑 我也在 emacs.stackexchange 上问过这个问题

我是一个相对的 emacs 新手,并且已经将我的 emacs (24.4.1) 设置为使用 clojure,如 here 所述.

它的要点是我现在正在使用来自 git 的最新 org-mode 并将其加载到我的 init.el 中(我正在使用 prelude btw),如下所示:

   (add-to-list 'load-path "~/repos/org-mode/lisp")
(require 'org)
(require 'ob-clojure)

我正在尝试使用 org 编写一个可以导出到 markdown 的识字 clojure 程序。 Clojure 和 babel 现在运行良好,评估工作等,但是当我尝试导出我的 org 文件时出现错误。
    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从我的 init.el 中导出包,即org git repo 的克隆中的包。 .但没有骰子——事实上,这产生了更多的问题。我试过调试,但不知道出了什么问题。我怀疑我需要一些东西,但不知道是什么。

我有我的 init.el这里 - init.el gist

任何人有任何想法我做错了什么?

提前致谢。

最佳答案

在您发表这篇文章时,org-mode 中存在一个错误,因此问题可能会得到解决。但是,我注意到您的 init 文件存在一些问题。一些可能有帮助的事情

  • 使用 lisp 包管理器来安装你的包 (ELPA)。这将使您的生活更轻松。组织人员维护一个 ELPA 存储库,该存储库会定期更新,并且可能会比仅拉入存储库更稳定一些。他们有一个名为 org-plus-contrib 的版本,我使用它并发现它非常好。只需添加

    (add-to-list 'package-archives '("org". "http://orgmode.org/elpa/ "))
  • 您声明您正在运行前奏曲,但我在您的 init 中看不到任何正在加载前奏曲的内容(仅调用关闭大师模式的函数)。 Prelude 很不错也很受欢迎,但是如果你要使用它,你需要“喝酷的帮助”,也就是按照 Prelude 的方式做事。比如prelude自带org-mode,使用ELPA来安装。您需要注意不要混合 org 版本。我发现非常好的 prelude 的另一个替代方法是 Steve Purcell 的 emacs.d。我发现使用 YMMV 更容易一些,但可能值得一试,因为它对 mac 有很好的支持。见 emacs.d
  • 将您的 emacs 初始化脚本分解为单独的文件是一个非常好的主意。这使您在尝试查找问题时可以轻松地注释掉很多内容,并让您只关注您尝试开始工作的关键部分。我将我的 init.el 文件维护为 org 文件,并使用 babel 生成所有 lisp 代码。您可以在 github 上查看它.我最初是从 Purcell 的 emacs.d 开始的,然后自豪地借用(偷了)其中的大部分内容进入我自己的配置。这不是如何配置 emacs 的好例子,但可能对您的设置有所帮助
  • 我注意到您尝试使用 cider 作为 clojure 代码的后端“评估器”。请注意,如果您想在您的 org 文件中包含要评估然后使用结果的 clojure block ,您只需要这样做。如果您只想从您的组织代码生成 *.clj 文件,则无需执行此操作。相反,您只想“缠结”您的 org 文件,这将生成更新的 clj 源文件,然后您可以对其进行处理。这使事情变得更加简单,并避免了当您尝试使用 org 文件执行尝试评估 clojure 代码并失败的事情时出现的问题。另请注意,我希望您需要做的不仅仅是将 cider 设置为后端评估器 - cide 只是 repl 的一个接口(interface)。你也需要一个repl。
  • 关于emacs - 带有 clojure 的 org 模式 - 无法导出工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266154/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com