我让Emacs工作得很好然后我重新启动了我的电脑。现在这段代码阻止我加载我的init文件:
(require 'ob-clojure)
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . nil)
(R . t)
(python . t)
(js . t)
(scheme . t)
(C . t)
(clojure . t)
(lilypond . t)
(octave . t)))
我不知道为什么会这样。在我重新开始之前,我已经让巴贝尔与R一起工作了。现在我收到消息:
字节码:符号作为变量的值为void:org-babel-tangle-lang-exts
我grep'd目录中提到org-babel的任何内容,只有上面的表达式出现了。再加上我摆脱它时我的其他init文件代码加载的事实让我觉得这个代码就是问题所在。但是为什么org-mode会引用我没有的函数?
运行emacs --debug-init给出:
调试器输入 - Lisp错误:(void-function org-babel-do-load-languages) (org-babel-do-load-languages(引用org-babel-load-languages)(引用(...... ...... ...... ...... ......))) eval-buffer(#load< 2>> nil“/home/kca/.emacs.d/init-org.el”nil t);在缓冲位置3080处读取 load-with-code-conversion(“/ home / kca / .emacs.d / init-org.el”“/ home / kca /.emacs.d / init-org.el”nil nil) 负载( “INIT-ORG”) eval-buffer(#nil“/home/kca/.emacs.d/init.el”nil t);在缓冲位置1464处读取 load-with-code-conversion(“/ home / kca / .emacs.d / init.el”“/ home / kca /.emacs.d/init.el”t t) load(“/ home / kca / .emacs.d / init”t t) #[nil“\ 205 \ 264
我试图检查是否正在加载正确的组织模式:
M-x load-library
org
M-x org-version
=> Org-mode version 7.7
以下是init.el中加载它的代码:
(add-to-list 'load-path (concat conf-dir "org-7.7/lisp"))
(add-to-list 'load-path (concat conf-dir "org-7.7/contrib/lisp"))
我正在使用Emacs 23.2和Org-7.7。谢谢你的帮助!
答案 0 :(得分:10)
实际上,问题在于我不理解组织手册说明。显然,我确实需要将(需要'org-install)和(需要'ob-tangle)放入我的init文件中才能获得有文化的编程功能。不过,我不确定我之前是如何让R在巴贝尔工作的。哦,它现在有效!帽子在#org模式irc频道中提示edenc。
答案 1 :(得分:2)
再次尝试重新启动。然后在这里阅读其余部分,如果这没有帮助......
使用init文件的二进制搜索来确定您正在加载的代码是什么。
确保为有问题的代码加载源代码(*.el
,而不是*.elc
)。
将debug-on-error
设置为非nil
,这样您就可以获得一个回溯,告诉您有关错误上下文的信息。
如果错误完全包含在某个外部程序包中,请确保该程序包的所有文件都是针对相同的程序包版本。
如果您更改的唯一内容是重新启动,那么问题可能在于环境变量。一个猜测是,由于某种原因,您的变量load-path
没有正确的值,因此它不会加载您需要的所有文件。或者也许你移动了一些包的代码?
HTH。应该让您开始寻找有关该问题的更多信息。