在组织模式中:通过一次击键打开附件

时间:2017-03-21 13:11:29

标签: emacs org-mode

由于我想通过一次击键打开附件文件,我正在寻找一个基本上与org-attach oC-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的键绑定,而不是从我调用的位置开始?

1 个答案:

答案 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"))))