[求助] 使用 org-roam-db-query 查找标签对应的 org files

我想根据 org-roam 中的tag 来查找不同 tag 里面有哪些文件,之前找到一个 snippet:

(org-roam-db-query
                    [:select file
                     :from tags
                     :where (like tags (quote "%\"Project\"%"))])

它可以得到 org-roam-directory 下所有带有 Project tag 的文件,但我想将 Project 替换成一个变量,查询指定的 tag 而不是像这样写死。但我看了下 emacsql 的写法,好像在 like 的形式里面,必须传入一个 quote 的 string,在这里把 quote 去掉查询会失败。

所以我的问题是,有什么办法能在这里将 tag 的 string 作为一个变量传进去,而不是将 tag string 写死?或者大家有其他的方法来查询 org-roam 中 tag 对应的 org 文件,希望大家能够指点一下~

(org-roam-db-query `[:select file
                       :from tags
                       :where (like tags (quote ,(concat "%\"" tag-var "\"%")))])

这样还是不行,

(setq tag-var "Project")
(org-roam-db-query `[:select file
                       :from tags
                       :where (like tags (quote ,(format "%\"%s\"%" tag-var)))])

报错是 Not enough argments for format string~

改了,紫薯布丁

嗯嗯可以了,谢谢大佬,我自己折腾了好久,一直没弄出来,再次感谢~

其实就是 backquote,你可以看一下 它的用法

好的,我去看看