Проблема установки режима org при попытке использовать захват

Я пытался использовать захват, как описано в org-manual p 74. Это файл .emacs для режима org.

(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 value as variable is void: org-directory

ADDED

После ответа Дэйва я изменил код, и, похоже, он работает нормально. Но другая проблема, которую я нашел, - C-c c, дает мне эту ошибку.

Symbol function definition is void : org-capture

Ответ 1

Прежде всего, убедитесь, что вы используете org-mode 6.36 или новее. (В более ранних версиях используйте remember.el, который имеет другую настройку.)

Вы используете символ, который не определен, org-directory. Попробуйте использовать:

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

Followup: Чтобы загрузить последний пакет 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.

Ответ 2

Я знаю, что на этот вопрос был дан ответ, но я хотел бы оставить более подробный ответ тем людям, которые не добились успеха. Я просто просмотрел предложения, и я собираюсь составить список каждого шага ниже.

  • http://orgmode.org/ и загрузить tar.gz(во время загрузки это была стабильная версия 7.9.2 (sept. 2012)
  • untar (tar -zxvf nameoffile.tar.gz ИЛИ просто дважды щелкните файл)
  • отредактируйте файл local.mk, чтобы поместить файлы там, где они вам нужны. У меня есть папка в моем каталоге пользователей под названием Scripts, где я держу вещи упорядоченными на основе языка сценариев. Я решил оставить там свои вещи. Внутри папки сценариев находится папка "emacs". В качестве префикса я использовал "Scripts", но я мог бы сделать префикс "/Users/Username/Scripts/emacs". Я просто должен был убедиться, что другие каталоги начинаются с "$ (prefix)/emacs" -HINT: проверьте инфодир.
    # Name of your emacs binary
    EMACS = emacs
    


        # Где локальное программное обеспечение найдено     prefix =/Пользователи/Имя пользователя/Сценарии
        # Где идут локальные файлы lisp.     lispdir = $(префикс)/emacs/lisp/org
        # Где идут локальные файлы данных.     datadir = $(префикс)/emacs/etc/org
        # Где находятся информационные файлы.     infodir = $(префикс)/emacs/info

  • Отредактируйте файл .emacs и вставьте туда два новых пути (если их еще нет). Первая из них - для папки lisp для любых файлов .el, которые у вас есть, а вторая из них есть, потому что я содержал файлы org в папке org, которая является подпапкой lisp. К сожалению, "путь загрузки" недостаточно умен, чтобы обнаруживать подпапки, поэтому вы должны явно установить каждую папку.

    • (setq load-path (cons "~/Scripts/emacs/ lisp" load-path))
    • (setq load-path (cons "~/Scripts/emacs/ lisp/org" путь загрузки))
  • Проверить версию в Aquamacs или Emacs с M-x org-версией (мета-ключ + x и ввести "org-version" )

Подсказка:

  • nano ~/.emacs
  • открыть -a Textedit ~/.emacs