当前缓冲区的日程视图

时间:2015-04-07 15:34:04

标签: emacs elisp org-mode

编辑:解决方案很简单,但任何可以解释为什么我的方法不起作用的人都会获得“奖励积分”。

ORIG: 我想要一个org-mode-custom-命令来显示一个仅由当前缓冲区创建的议程。

以下代码段显示了我想要的那种视图。

(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))))))))

当我打开一个org-buffer并运行这个议程命令时,结果只是一个非常空白的议程视图。我认为这是因为缓冲区文件名的评估时间晚于我按下议程视图...?

我仍然开始学习elisp,所以不要犹豫,指出明显的。感谢信。

编辑:

根据评论中的建议。

(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...

2 个答案:

答案 0 :(得分:5)

对我来说,最明显的不是创建额外的议程视图,而只是调用该缓冲区上的任何现有视图(使用C-c a < a之类的调用将视图限制为当前缓冲区,其中{{ 1}}限制当前缓冲区。)

如果您仍想为当前缓冲区制作额外的议程视图,我不确定是否可以使用所有命令。当然,调用<将对当前缓冲区起作用。不确定occur-tree之类的内容。

答案 1 :(得分:-1)

...议程视图通常显示从所有议程文件For more info收集的信息,首先通过组织命令{{{1}确保您尝试通过文件viwable或可追踪的文件。 1}}

您可以通过测试当前的buffe名称 C-c [ (org-agenda-file-to-front)

通常情况下,我使用各种文件中的议程视图,但我可以通过热键跟踪不同的议程,例如已完成,进行中,已修复,错误 这是我的:

(message (buffer-file-name)) 因此,如果我想查看例如已完成的东西 (setq org-agenda-custom-commands '( ("x" agenda) ("y" agenda*) ("o" todo "ONPROGRESS") ("n" tags-todo "+TIPS") ("d" todo "DONE") ("p" todo "PENDING") ("b" todo "BUG") ("f" todo "FIXED") ;("F" todo-tree "FIXED") )) ,这将显示所有已完成的列表,无论它们来自哪个文件。