【问题标题】:Agenda view of the current buffer当前缓冲区的议程视图
【发布时间】:2015-04-07 15:34:03
【问题描述】:

编辑:解决方案很简单,但对于任何可以解释我的方法为什么不起作用的人来说都是“加分”。

原点: 我想要一个 org-mode-custom-command 来显示仅由当前缓冲区制作的议程。

下面的 sn-p 显示了我想要的那种视图。

(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,所以不要犹豫,指出显而易见的。谢谢。

编辑:

遵循 cmets 中的建议。

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

【问题讨论】:

  • 未经测试的猜测:尝试(list (buffer-file-name)) 而不仅仅是(buffer-file-name),因为该值应该是一个列表。 (它可以是单个文件名,但含义不同;请参阅org-agenda-files 的文档字符串。)

标签: emacs elisp org-mode


【解决方案1】:

对我来说,最明显的是不要创建额外的议程视图,而只需调用该缓冲区上的任何现有视图(通过诸如 C-c a < a 之类的调用将视图限制到当前缓冲区,其中 < 限制在当前缓冲区上)。

如果您仍想为当前缓冲区创建一个额外的议程视图,我不确定这是否适用于所有命令。当然,调用occur-tree 将在当前缓冲区上工作。不确定todo 之类的。

【讨论】:

    【解决方案2】:

    ...议程视图通常显示从所有议程文件For more info 收集的信息,首先通过 org 命令C-c [ (org-agenda-file-to-front) 激活它,确保您尝试使议程可见或可跟踪的文件/p>

    您可以通过以下方式测试当前缓冲区名称 (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") )) 因此,如果我想查看例如已完成的东西C-c a d,这将向我显示所有已完成的列表,无论它们来自哪个文件。

    【讨论】:

    • 这如何回答我提出的问题?请重新阅读问题。
    • ...您已经投了反对票,这很快!,我的意思是议程可能来自各种来源(.org 文件),您为什么不使用诸如寄存器之类的东西来打开相应的议程文件。 ?
    • 我确实使用各种组织文件。我像这样加载它们 (setq org-agenda-files (append (file-expand-wildcards "~/.agenda/*.org") (file-expand-wildcards "~/.agenda/**/*.org" )))))`。这些文件会随着时间而变化,我不想使用寄存器来识别它们。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2011-09-18
    • 2021-12-19
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多