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's many ways to do that depending on what exactly you want to do. Creating an Org mode sparse tree is one of those options! C-c / 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 dog and 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/200ok-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 kinds 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 START or 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 fun.

-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 nobody or none.

Enjoy the productivity boost of drilling down into your Org files from your computer and smartphone! Happy hacking^^


If you liked this post, please consider supporting our Free and Open Source software work – you can sponsor us on Github and Patreon or star our FLOSS repositories.