emacs > org mode > agenda - 始终使用当前缓冲区
emacs > org mode > agenda - always use current buffer
我为各种项目使用了许多不同的组织模式文件,我通过将日期添加到文件名来修改它们,例如 filename-2020-09-17.org。我意识到我可以使用版本控制,但在这种情况下这是不可能的,因为需要与不使用 VC.
的其他人共享文件
我希望议程始终只显示当前 file/buffer 的项目。
例如,当我将 filename-2020-09-16.org 的文件保存到 filename-2020-09-17.org 时,议程仍然显示旧文件名,除非我将其从议程文件列表并添加新文件。
我意识到我可以使用 C-c a < a 但我很懒,不想每次都输入 S- 来获取 <.
我看了
OP 说解决方案很简单,但 he/she/they 没有提供解决方案 - 至少我没有看到它,我尝试了发布的代码,但没有用。
我也找到了https://www.reddit.com/r/orgmode/comments/bxwovd/agenda_for_current_buffer/,但是好像不能满足我的需求。
具体来说,我想在 .emacs 中添加一些内容,以便它始终适用于所有文件。
我也研究了击键宏程序,但这似乎不太理想。
感谢任何帮助。
提前致谢。
这是一个简单的函数来做你想做的事,但没有错误检查来确保例如您正在从访问 Org 模式文件的缓冲区中调用它。这个想法是将 org-agenda-files
列表设置为仅包含缓冲区正在访问的文件,然后调用常规 org-agenda
函数。将修改后的函数绑定到 C-c a
键可能是也可能不是你想要做的,但你可以自己尝试和决定:
(defun org-agenda-current-buffer ()
(interactive)
(let ((org-agenda-files (list (buffer-file-name (current-buffer)))))
(org-agenda)))
(define-key global-map (kbd "C-c a") #'org-agenda-current-buffer)
我为各种项目使用了许多不同的组织模式文件,我通过将日期添加到文件名来修改它们,例如 filename-2020-09-17.org。我意识到我可以使用版本控制,但在这种情况下这是不可能的,因为需要与不使用 VC.
的其他人共享文件我希望议程始终只显示当前 file/buffer 的项目。
例如,当我将 filename-2020-09-16.org 的文件保存到 filename-2020-09-17.org 时,议程仍然显示旧文件名,除非我将其从议程文件列表并添加新文件。
我意识到我可以使用 C-c a < a 但我很懒,不想每次都输入 S- 来获取 <.
我看了
OP 说解决方案很简单,但 he/she/they 没有提供解决方案 - 至少我没有看到它,我尝试了发布的代码,但没有用。
我也找到了https://www.reddit.com/r/orgmode/comments/bxwovd/agenda_for_current_buffer/,但是好像不能满足我的需求。
具体来说,我想在 .emacs 中添加一些内容,以便它始终适用于所有文件。
我也研究了击键宏程序,但这似乎不太理想。
感谢任何帮助。
提前致谢。
这是一个简单的函数来做你想做的事,但没有错误检查来确保例如您正在从访问 Org 模式文件的缓冲区中调用它。这个想法是将 org-agenda-files
列表设置为仅包含缓冲区正在访问的文件,然后调用常规 org-agenda
函数。将修改后的函数绑定到 C-c a
键可能是也可能不是你想要做的,但你可以自己尝试和决定:
(defun org-agenda-current-buffer ()
(interactive)
(let ((org-agenda-files (list (buffer-file-name (current-buffer)))))
(org-agenda)))
(define-key global-map (kbd "C-c a") #'org-agenda-current-buffer)