When you have lots of information in an Org file, it helps to narrow it down to just the topic that interests you right now. There are many ways to do that depending on what exactly you want to do. Creating an Org mode sparse tree is one of those options!
Cc / constructs a sparse tree for selected information in an outline tree, so that the entire document is folded as much as possible, but the selected information is made visible along with the headline structure above it. These are the options how you can filter your Org file down:
For example, if you had this Org file containing lots of different information and you’d want to drill down on your headers on ‘cute dogs’ which have the appropriate tags
cute , you can filter down on
: dog: cute which will make your document look like this:
When modifying the document now, it is important to remember that it is a sparse tree! Hence, if you delete the line on point, you might have deleted other lines which were folded down. This might be what you want, but it might also not be. If you filtered down a list of headers on the same nesting level, it’s better to make semantic changes like toggling the todo state or adding a tag. Only later, when you’re viewing the whole file again (for example by using
S-TAB ), you can start deleting lines.
Now, if you’re keen on having this kind of power on the go (aka on your smartphone or browser), check out the free and open source project organice ( https://github.com/ 2019 ok-ch / organice / ). In organice, you can manage the same Org files as in Emacs, but even when away from your computer. Looking up the same information in organice looks like this:
In fact, organice has a search feature which is similar to Emacs sparse trees, but it is even more powerful, because you can compose different types of searches into one:
You can simply search for
TODO check out organice | orgmode . to filter for tasks containing these words. The pipe symbol (|) is a logical OR . The filter is a smart-case search:
Lower-case words mean that the filter ignores the case.
If a word contains upper-case letters, the filter is case-sensitive.
The following example searches for headlines containing
FINISHED keywords and the string “states are”. You can also use single-quotes.
START | FINISHED "states are"
The next example excludes
DONE headlines but requires the tag
- DONE: fun
You can exclude text strings, tags, and properties as well by prepending the minus sign (-).
Last but not least, you can search for headlines with defined properties:
TODO: blocked_by:: assignee: nobody | none
This filters headlines having a property
blocked_by (with any value) and a property
assignee with a value containing
Enjoy the productivity boost of drilling down into your Org files from your computer and smartphone! Happy hacking ^^
If you liked this post and want to say ‘thanks’, please head over to our free / libre and open source software page – and if you like one of them, give it a star on Github or Gitlab.