我正在尝试通过 iPhone 应用程序 MobileOrg 在 Mac 和 iPhone 上同步 .org 文件。在运行 org-mobile-pull 命令尝试将从 iPhone 发送到我的暂存文件夹(在 中定义org-mobile-directory
)的文件拉回到原始文件(名为220212.org
)之前,文件一直处于工作状态。
我输入C-c C-x RET g
,它相当于M-x org-mobile-pull
,并出现以下错误:Wrong type argument: stringp, nil
运行 org-mobile-pull 之前 mobileorg.org 的内容(包含在手机上执行的更新的文件):
* F(edit:todo) [[olp:220212.org:s/stretch neck right][stretch neck right]]
** Old value
TODO
** New value
DONE
** End of edit
运行 org-mobile-pull 后看到错误:空
我是 lisp 代码或 emacs 调试新手,但我尝试将org-mobile-pull
emacs 中的“debug-on-error”和“debug-on-entry”设置为 true。有点难以确定函数中的具体位置,但它似乎在前几个命令中。通过在调试器中反复按 d,它不断递归输入函数调用,我有点迷茫。可能会尝试掌握调试器并进一步调试。
我的 .init.el 包含,,,,,org-directory
在我看来,全部 设置得当。org-mobile-inbox-for-pull
org-mobile-directory
org-mobile-files
org-mobile-force-id-on-agenda-items
有人知道这是什么原因造成的吗?由于这个错误,mobileorg.org 中的更改未同步回原始 220212.org 文件。
答案1
解决了这个问题并在这里发布了完整的帖子:https://github.com/MobileOrg/mobileorg/issues/285
概括:
将收件箱文件与 mobileorg.org 文件混淆了。了解了差异后,将 org-mobile-inbox-for-pull 指向 org-directory 中的文件,而不是 org-mobile-directory 中的 mobileorg.org。
具体来说,将 ~/.emacs.d/init.el 从
(setq org-directory "[redacted]/repo/typed/")
(setq org-mobile-inbox-for-pull "[redacted]/repo/typed/mobile/mobileorg.org")
(setq org-mobile-directory "[redacted]/repo/typed/mobile")
(setq org-mobile-files (quote ("[redacted]/repo/typed/220212.org")))
到
(setq org-directory "[redacted]/repo/typed/")
(setq org-mobile-inbox-for-pull "[redacted]/repo/typed/inbox-for-pull.org")
(setq org-mobile-directory "[redacted]/repo/typed/mobile")
(setq org-mobile-files (quote ("[redacted]/repo/typed/220212.org")))