如何自动执行org-mobile-push org-mobile拉入emacs

use*_*032 19 emacs elisp org-mode

由于我使用的组织模式,以追踪在Emacs我的待办事项列表,我喜欢的iPhone应用程序:MobileOrg,有了它,我可以访问我的待办事项列表一整天.

但问题出在这里:

我必须通过dropbox手动org-mobile-将我的更改从本地文件推送到手机,并通过手机移动 - 拉回手机所做的更改.

如何自动生成?就像在dotemacs文件中添加一些食谱一样.

Chr*_*eng 22

将这两行添加到dot emacs文件中:

(add-hook 'after-init-hook 'org-mobile-pull)
(add-hook 'kill-emacs-hook 'org-mobile-push) 
Run Code Online (Sandbox Code Playgroud)

有了它们,它会自动提取emacs启动时的更改,并在emacs退出之前推送更改.

- 更新

如果您从未退出Emacs,此解决方案可能不适合您.所以,使用空闲计时器的另一个解

;; moble sync
(defvar org-mobile-sync-timer nil)
(defvar org-mobile-sync-idle-secs (* 60 10))
(defun org-mobile-sync ()
  (interactive)
  (org-mobile-pull)
  (org-mobile-push))
(defun org-mobile-sync-enable ()
  "enable mobile org idle sync"
  (interactive)
  (setq org-mobile-sync-timer
        (run-with-idle-timer org-mobile-sync-idle-secs t
                             'org-mobile-sync)));
(defun org-mobile-sync-disable ()
  "disable mobile org idle sync"
  (interactive)
  (cancel-timer org-mobile-sync-timer))
(org-mobile-sync-enable)
Run Code Online (Sandbox Code Playgroud)

我刚刚发现它与下面的答案相同,所以,如果您更喜欢空闲计时器解决方案,请upvote tkf的答案.


tkf*_*tkf 14

我在Emacs设置中有这样的东西,当我离开电脑时做推拉.

(defvar my-org-mobile-sync-timer nil)

(defvar my-org-mobile-sync-secs (* 60 20))

(defun my-org-mobile-sync-pull-and-push ()
  (org-mobile-pull)
  (org-mobile-push)
  (when (fboundp 'sauron-add-event)
    (sauron-add-event 'my 3 "Called org-mobile-pull and org-mobile-push")))

(defun my-org-mobile-sync-start ()
  "Start automated `org-mobile-push'"
  (interactive)
  (setq my-org-mobile-sync-timer
        (run-with-idle-timer my-org-mobile-sync-secs t
                             'my-org-mobile-sync-pull-and-push)))

(defun my-org-mobile-sync-stop ()
  "Stop automated `org-mobile-push'"
  (interactive)
  (cancel-timer my-org-mobile-sync-timer))

(my-org-mobile-sync-start)
Run Code Online (Sandbox Code Playgroud)

另一种方法是将以下内容放在cron作业中(我在这里找到了https://github.com/matburt/mobileorg-android/wiki/Scripting/):

emacs --batch --load ~/.emacs --eval "(org-mobile-pull)" --eval "(org-mobile-push)"
Run Code Online (Sandbox Code Playgroud)