Проблема установки режима 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