由于我想通过一次击键打开附件文件,我正在寻找一个基本上与org-attach o
或C-c C-a o
完全相同的键绑定。这应该适用于组织文件和议程。
我定义了此键绑定(global-set-key (kbd "<f9>") 'org-attach-open)
,但这不在议程中,提示Need absolute ’org-attach-directory’ to attach in buffers without filename
。
重现此事的最小工作示例:在您的日程中,将点移动到带附件的行上并执行M-x org-attach-open
。
如何定义一个完全org-attach o
的键绑定,而不是从我调用的位置开始?
答案 0 :(得分:2)
当用户从o
缓冲区调用org-attach
后选择字母*Org Agenda*
时,用户在技术上已经离开*Org Agenda*
缓冲区(即使这是在引擎盖)。因此,在运行org-attach
之前,我们需要一个与org-attach-open
完全相同的新功能。
(defun org-agenda-attach-open ()
"My doc-string."
(interactive)
(unless (eq major-mode 'org-agenda-mode)
(let ((debug-on-quit nil))
(signal 'quit '("This was written expressly for `*Org Agenda*`."))))
(let ((marker (or (get-text-property (point) 'org-hd-marker)
(get-text-property (point) 'org-marker))))
(if marker
(save-excursion
(set-buffer (marker-buffer marker))
(goto-char marker)
(org-back-to-heading t)
(call-interactively 'org-attach-open))
(error "No task in current line"))))