Hi there,
I use orgmode links extensively. In particular, I have hundreds (our thousands) of links to emails (in notmuch). I would very much like to add a tag to any email that is being referenced from org.
So, what I need to do first is be able to find all matches of a regular expression in all my org files. Non-interactively.
I have been playing around with xref-matches-in-directory
but that would not cover when multiple emails are mentioned in the same line…
I have been looking and looking but everything I find missed the non-interactive part.
So: What is the function to “search for this REGEX in FILES in DIR and return the first capture group”? (the regex has a capture group for the msgid)
The regex:
(rx-to-string
(rx "notmuch:id:"
(group (1+ (not "]")))))
I ask only for the first step. After I have all the referenced message IDs I will start working on the notmuch side to find and tag!
You can simply loop over all the org files, open one by one, and search within each file individually using (while (re-seacrch-forward …) …).
I plan on searching hundreds of files (all notes) so… some way that does not open all of them would be preferable.
If opening a file is a problem, you can create temporary buffer and then use
insert-file-contents
+ search +erase-buffer
.