求教一个org-download的问题

在 M-customize-group org-download里面有个 Org Download Image Dir的设置,可以设置储存图片所在的文件夹名称,可以设置为动态的么?让文件夹的名称和org文件的名称一样,比如我在abc.org文件拖入一张123.png的图片,希望得到的目录结构如下: ├── abc  |        └── 123.png └── abc.org

我设置为(file-name-sans-extension (buffer-name)) 结果是创建了这个名字的文件夹: ├── (file-name-sans-extension (buffer-name))  |        └── 123.png └── abc.org

我没用过 org-download,但是文档 C-h P org-download 不是有写吗?!

# -*- mode: Org; org-download-image-dir: "~/Pictures/foo"; -*-

是一个 buffer-local 变量,每个 buffer 可以设单独的值,按你的要求则应改成 abc,如果需要动态的话,设置 eval,估计像这样

# -*- eval: (setq org-download-image-dir (file-name-sans-extension (buffer-name))); -*-
1 个赞

我试了,这样设置也不行,会创建一个名字为 eval: (setq org-download-image-dir (file-name-sans-extension (buffer-name))) 的文件夹。 我修改了下org-download的源码,可以实现

讲真的,我觉得是你设置的方式不对…

额 我试了多次都不行,如果您(和论坛的网友)也在使用org-download,得空了也帮忙给看下,多谢多谢

要不把你的设置发来看一下吧,xuchunyang的方案不可能会产生一个名为"eval: (setq org-download-image-dir (file-name-sans-extension (buffer-name)))"的文件夹的

我使用 customize-group 设置的org-download , Org Download Image Dir: Directory: eval: (setq org-download-image-dir (file-name-sans-extension (buffer-name)))
在 .spacemacs文件的 (custom-set-variables 下生成了 '(org-download-image-dir "eval: (setq org-download-image-dir (file-name-sans-extension (buffer-name)))")

把图片拖到org文件中,在org的统计目录中生成了一个名字为 eval: (setq org-download-image-dir (file-name-sans-extension (buffer-name))) 的文件夹,然后图片在这个文件夹里…

你应该直接把

# -*- eval: (setq org-download-image-dir (file-name-sans-extension (buffer-name))); -*-

这句话写在org文件的第一行就OK了,不要用customize来设置

1 个赞

哦哦~~~~,原来是这样用哒,我的姿势不对啊:joy_cat:多谢多谢:+1:

能不能打开org文档时自动插入呢,每次都输一次不方便。

find-file-not-found-functions 了解一下,比如像这样:

    (defun new-org-file-init ()
      "init new org file template"
      (interactive)
      (when (equal "org" (file-name-extension buffer-file-name))
        (insert "" "\n")
        (insert "#+AUTHOR: " user-login-name "\n")
        (insert "#+TAGS: "  (get-category-from-path buffer-file-name)"\n")
        (insert "#+DATE: " (format-time-string "[%Y-%m-%d %a %H:%M]" (current-time)) "\n")
        (insert "#+LANGUAGE:  zh-CN\n")
        (insert "#+STARTUP:  inlineimages\n")
        (insert "#+OPTIONS:  H:6 num:nil toc:t \\n:nil ::t |:t ^:nil -:nil f:t *:t <:nil")))
    (add-to-list 'find-file-not-found-functions 'new-org-file-init)
2 个赞

谢谢分享,标记一下备用。