Ошибка загрузки модуля org-timer в emacs - PullRequest
7 голосов
/ 22 сентября 2011

Я хочу использовать технику Помодоро в режиме орг, как описано в http://orgmode.org/worg/org-gtd-etc.html

Я добавил следующие строки в файл .emacs

(add-to-list 'org-modules 'org-timer)

(setq org-timer-default-timer 25)

(add-hook 'org-clock-in-hook '(lambda () 
     (if (not org-timer-current-timer) 
      (org-timer-set-timer '(16))))) 

При запуске emacs в буфере Warnings отображается следующее предупреждение.

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

Я использую версию в режиме организации - 7.7.291.g37db, клонированную из git: //orgmode.org/org-mode.git

Как избавиться от ошибки.

1 Ответ

9 голосов
/ 22 сентября 2011

org-modules определяется в org.el. Если вы хотите добавить элемент в список, вам нужно подождать, пока не будет определена переменная (со списком по умолчанию). Один из способов сделать это - отложить добавление до момента загрузки org.el:

(defun my-after-load-org ()
  (add-to-list 'org-modules 'org-timer))
(eval-after-load "org" '(my-after-load-org))

Обратите внимание, что add-hook может справиться с переменной, которая еще не определена, но add-to-list не может. Вы можете написать (setq org-modules '(org-timer)), но это перезапишет список модулей по умолчанию вместо добавления к нему.

...