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.