Hi list! I decided to finally get my hands dirty and build a small function to improve my org-based productivity system. Let me explain: I have a subdirectory under ~/org which has a bunch of files named after different subjects. Originally it was supposed to model a wiki, but in practice, I create a file there whenever I start studying a new (often complex) subject and that I know I will come back often and edit / improve. It's indeed like a wiki. However, I don't keep those files in the agenda. It would slow it down a lot. To keep the organization as organic as possible, I simply use tags to bring them together semantically. So, I have other files with items that are tagged, say, business, and I have a "wiki file" with a headline like this: * tags :business: I use the tags headline to tag those files. Now, what I wanted was to get a list of files related to say, the business tag. It's quite useful to find myself in the (good) chaos of tagged "wiki files", I came up with a small elisp function that does just that! (progn (shell-command "cd ~/org; ack \"\\* tags.*(business).*\" --all" "mybuf") (set-buffer "mybuf") (beginning-of-buffer) (ignore-errors (while (search-forward-regexp "\\(.*?\\):") (replace-match "[[~/org/\\1]]" ) )) (org-mode) ) Bear in mind this is my first elisp program ever. It's not even a function yet, actually. But it works pretty well for what I want :) Took me around 1 hour to bring it up. The joy of breaking your head on something! Cheers! (Suggestions on how to improve it welcome!) Marcelo.