【问题标题】:Initializing emacs with org-babel : Debugger entered--Lisp error: (void-function cl-member)使用 org-babel 初始化 emacs:调试器进入——Lisp 错误:(void-function cl-member)
【发布时间】:2013-10-12 16:20:55
【问题描述】:

我已将我的 init.el 迁移到一个 org-mode 文件,以使用 org-mode 与 babel 结合的灵活性。

但是,我无法让它工作。我怀疑一些依赖错误,已经尝试了很多方法来修复它,但我没有能力了解哪里出了问题:

  1. 这里我的 init.el --- 除了调用一个包含所有初始化代码的 org 文件之外什么都不做

    ;; from http://orgmode.org/worg/org-contrib/babel/intro.html#literate-programming
    ;;; init.el --- Where all the magic begins
    ;;
    ;; This file loads Org-mode and then loads the rest of our Emacs initialization from Emacs lisp
    ;; embedded in literate Org-mode files.
    
    ;; Load up Org Mode and (now included) Org Babel for elisp embedded in Org Mode files
    (package-initialize)
    (setq dotfiles-dir (file-name-directory (or (buffer-file-name) load-file-name)))
    (require 'org-install)
    (require 'ob-tangle)
    (org-babel-load-file (expand-file-name "emacs-and-org-init.org" dotfiles-dir))
    
  2. 这是 org 文件 --- 即使是最小的它也会引发错误

    #+TITLE: Emacs and Org init
    #+OPTIONS: toc:2 num:nil ^:nil
    
    #+begin_quote
      Emacs outshines all other editing software in approximately the same
      way that the noonday sun does the stars. It is not just bigger and
      brighter; it simply makes everything else vanish.
    
      -- Neal Stephenson, "In the Beginning was the Command Line"
    #+end_quote
    
    * Implementation
    This section contains all the init code.
    ** basics
    this is commented on purpose --- even commented, the use of this file throw the error "Debugger entered--Lisp error: (void-function cl-member)"
      #+begin_src emacs-lisp
    ;;    (add-to-list 'load-path "~/.emacs.d/elpa/") ;;;; this is commented on purpose --- even commented, the use of this file throw the error "Debugger entered--Lisp error: (void-function cl-member)"
      #+end_src
    
    ** the rest of the code
    - this sections is almost empty for the moment, so that this file is the minimal file that throw an error
    
    #+BEGIN_SRC emacs-lisp
    ;; this should appear in the emacs-and-org.el, but does not
    (message "test")
    #+END_SRC
    
  3. 这里是生成的 emacs-and-org.el --- 第一个“org babel 代码部分”在这里,但第二个不见了

    ;;    (add-to-list 'load-path "~/.emacs.d/elpa/") ;;;; this is commented on purpose -- even commented, the use of this file throw the error "Debugger entered--Lisp error: (void-function cl-member)"
    
  4. 抛出的错误:

    Debugger entered--Lisp error: (void-function cl-member)
    

谁能帮忙?

M-x version
GNU Emacs 24.3.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2) of 2013-09-29 on gkar, modified by Debian

M-x org-version
Org-mode version 8.2.1 (8.2.1-3-g35e5e5-elpa @ /home/me/.emacs.d/elpa/org-20131007/)

【问题讨论】:

    标签: emacs org-mode org-babel


    【解决方案1】:

    这是最低限度的设置:

    ~/emacs-and-org-init.org:

    #+begin_src emacs-lisp
    (message "test")
    #+end_src
    

    ~/.emacs:

    (package-initialize)
    (require 'ob-tangle)
    (org-babel-load-file "~/emacs-and-org-init.org")
    

    从此设置开始,逐步添加内容,直到内容中断 (希望它不会:))。

    顺便说一句,如果出现这种情况,您可以通过(require 'cl) 获得cl-member

    【讨论】:

    • 就是这样。我在您提供的 .emacs 中的 (package-initialize) 之后添加了 (require 'cl),它可以工作;即使使用我的整个 .org 配置文件。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2014-08-28
    相关资源
    最近更新 更多