11

我试图按照 org-manual p 74 中的说明使用捕获。这是 org 模式的 .emacs 文件。

(require 'org-install)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done t)

(setq org-default-notes-file (concat org-directory "~/notes.org")) <-- error
(define-key global-map "\C-cc" 'org-capture)

但我得到这个错误。可能有什么问题?

Symbol's value as variable is void: org-directory

添加

在戴夫的回答之后,我修改了代码,它似乎工作正常。但我发现的另一个问题是 Cc c 给了我这个错误。

Symbol's function definition is void : org-capture
4

2 回答 2

11

首先,确保您使用的是 org-mode 6.36 或更高版本。(早期版本使用有不同设置的 remember.el。)

您正在使用未定义的符号org-directory. 尝试使用:

(setq org-default-notes-file (expand-file-name "~/notes.org"))

跟进:加载最近的 org-mode 包:

(add-to-list 'load-path "/my/home/emacs.d/org-7.01h/lisp")
(require 'org-install)
(require 'org) ;; maybe this line is redundant

请注意,打包后的 org-mode lisp 文件位于 lisp 子目录中。

于 2010-09-01T23:13:02.453 回答
3

我知道这个问题已经回答了,但是我想给那些没有成功的人留下一个更彻底的答案。我刚刚完成了这些动作,我将在下面列出每个步骤。

  1. http://orgmode.org/并下载 tar.gz(下载时为稳定版 7.9.2(2012 年 9 月)
  2. untar (tar -zxvf nameofile.tar.gz 或者直接双击文件)
  3. 编辑 local.mk 文件以将文件放在您想要的位置。我的用户目录中有一个名为 Scripts 的文件夹,我在其中根据脚本语言保持有序。我决定把我的 emacs 东西也放在那里。在脚本文件夹中是一个名为“emacs”的文件夹。作为前缀,我使用了“脚本”,但我可以将前缀设置为“/Users/Username/Scripts/emacs”。我只需要确保其他目录以“$(prefix)/emacs”开头——提示:检查 infodir。
    # Name of your emacs binary
    EMACS = emacs
    


    # 找到本地软件的位置 prefix = /Users/Username/Scripts
    # 本地 lisp 文件的位置。lispdir= $(prefix)/emacs/lisp/org
    # 本地数据文件的去向。datadir = $(prefix)/emacs/etc/org
    # 信息文件的去向。infodir = $(前缀)/emacs/info

  4. 编辑您的 .emacs 文件并在其中粘贴两个新路径(如果还没有的话)。第一个是 lisp 文件夹,用于存放您可能拥有的任何 .el 文件,第二个是因为我将 org 文件包含在 org 文件夹中,该文件夹是 lisp 的子文件夹。不幸的是,“加载路径”不足以检测子文件夹,因此您必须明确设置每个文件夹。

    • (setq load-path (cons "~/Scripts/emacs/lisp" load-path))
    • (setq 加载路径 (cons "~/Scripts/emacs/lisp/org" 加载路径))
  5. 使用 Mx org-version 检查 Aquamacs 或 Emacs 中的版本(元键 + x 并输入“org-version”)

暗示:

  • 纳米〜/ .emacs
  • 打开 -a 文本编辑 ~/.emacs
于 2012-10-24T05:42:51.503 回答