动机是 org mode 导出到 ics 格式时, 带有 TODO 的 entry 无法正确导入到 icloud calendar. 因此我打算在导出之前去除所有标题的 TODO. 但我希望对 buffer 的修改是暂时的, 执行完导出命令就恢复.
这个需求很像 org-export-before-parsing-hook
提供的功能, 但是导出其它格式的时候我并没有这个需求. 因此想问问有没有一个函数能这样:
(with-current-buffer-content (progn ...)) ; 执行完以后就恢复 buffer 内容
可以用 with-temp-buffer
edit:
你是不是没有设置 org-icalendar-include-todo
1 个赞
wsug
3
使用undo不行吗,我经常在org-mode里使用undo,而且是在save后把整个buffer内容清空后全部改变的情况下使用undo来回到上一个状态。因此还面临 页面展开折叠的状态无法在undo时保持的问题
1 个赞
用了, todo 导出是 VTODO, 不是 VEVENT, 可以导出到其它 calendar app, 但是 icloud calendar 就有问题. 而且从 VTODO 改成 VEVENT, 还是导不进去. 我怀疑是 icloud calendar 对 ics 支持得不够好. 用 fantastical(另一个日历 app) 就可以.