我最近发现了org-annotate-file。我想用它来注释我的计算机上的pdf文档或音乐文件或任何其他文件,并将我的注释写在文件annotations.org中。我不打算在pdf中加入注释。但我无法弄清楚“访问文件”意味着什么?它必须是emacs可以打开的文件吗?
但更一般地说,是否有一个软件包可以执行以下操作:我以dired模式访问目录,在我感兴趣的某个主题上标记一堆文件,并使用一个命令将文件的链接发送给我annotations.org文件(可能是标题下的小标题,可能是目录名称),然后我可以在注释文件中编写注释。然后使用一个命令,我应该能够访问任何文件(org-mode将允许)或在外部程序中打开它。在某些包装中这可能吗?
感谢。
答案 0 :(得分:2)
当然,可以做到。但是,我发现它似乎是org-annotate-file.el
的实际代码
here,似乎不接受注释未打开的文件(访问意味着此处打开),因为注释功能使用当前打开的文件作为名称的来源。 org-annotate-file
的当前实现是这样的:
(defun org-annotate-file ()
"Put a section for the current file into your annotation file"
(interactive)
(error-if-no-file)
(org-annotate-file-show-section))
至少你可以修改它以接受任意文件(如果你提供的话):
(defun org-annotate-file (&optional filename)
"Put a section for the current file into your annotation file"
(interactive "FFile to tag: ")
; if a file is specified, bypass the check for error when no file
(if filename
(org-annotate-file-show-section filename)
(progn
(error-if-no-file)
(org-annotate-file-show-section))))
每当您执行 M-x org-annotate-file时,都会要求您输入文件名。
您还必须更改org-annotate-file-show-section
以接受文件名或缓冲区。第一个让我们这样:
(defun org-annotate-file-show-section (&optional buffer-or-file)
"Visit the buffer named `org-annotate-file-storage-file' and
show the relevant section"
(let* ((line (buffer-substring-no-properties (point-at-bol) (point-at-eol)))
(filename (if (stringp buffer-or-file)
buffer-or-file
(get-filename buffer-or-file (buffer-file-name))))
(link (get-link filename))
(search-link (org-make-link-string
(concat "file:" filename "::" line)
(org-annotate-file-prettyfy-desc line))))
(show-annotations filename link)
.... rest of the code....
dired集成可以从这里开始,但我仍然不熟悉dired API ...
编辑:我正在bitbucket中为这些修改创建一个分支。我发现该实用程序非常有用,可能会自己使用它。我会在这里发布链接。这是:https://bitbucket.org/dsevilla/org-annotate-file/src