проблема настройки режима орг при попытке использовать захват - PullRequest
10 голосов
/ 02 сентября 2010

Я пытался использовать захват, как объяснено в руководстве org 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's value as variable is void: org-directory

ДОБАВЛЕНО

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

Symbol's function definition is void : org-capture

Ответы [ 2 ]

11 голосов
/ 02 сентября 2010

Прежде всего, убедитесь, что вы используете 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

Обратите внимание, что упакованные файлы lisp в режиме org находятся в подкаталоге lisp.

2 голосов
/ 24 октября 2012

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

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


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

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

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

СОВЕТ:

  • nano ~ / .emacs
  • open -a Textedit ~ / .emacs
...