编辑:解决方案很简单,但对于任何可以解释为什么我的方法不起作用的人来说都是“加分”。
原点:
我想要一个 org-mode-custom-command 来显示仅从当前缓冲区创建的议程。
以下代码片段显示了我想要的视图类型。
(setq org-agenda-custom-commands
'(("b" "Buffer summary"
((todo "TODO" ((org-agenda-files '("~/.agenda/notes.org"))))))))
但是,我不想指定文件名,而是想使用当前缓冲区。这是我的尝试。
(setq org-agenda-custom-commands
'(("b" "Buffer summary"
((todo "TODO" ((org-agenda-files (buffer-file-name))))))))
当我打开组织缓冲区并运行此议程命令时,结果只是一个几乎空白的议程视图。我认为这是因为缓冲区文件名的评估时间晚于我按下议程视图的时间......?
我还在开始学习 elisp,所以请毫不犹豫地指出显而易见的事情。谢谢。
EDIT:
按照评论中的建议。
(setq org-agenda-custom-commands
'(("b" "Buffer summary"
((todo "TODO" ((org-agenda-files (list (buffer-file-name)))))))))
我收到回溯。
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
file-directory-p(nil)
...etc...
对我来说,最明显的是不要创建额外的议程视图,而只需调用该缓冲区上的任何现有视图(通过调用将视图限制为当前缓冲区,例如C-c a < a
, where <
当前缓冲区的限制)。
如果您仍然想为当前缓冲区创建额外的议程视图,我不确定这是否适用于所有命令。当然,打电话occur-tree
将在当前缓冲区上工作。不确定todo
等等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)