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 "]")))))
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
.