10

Creating Org mode sparse trees in Emacs and organice

 4 years ago
source link: https://200ok.ch/posts/2020-02-09_creating_org_mode_sparse_trees_in_emacs_and_organice.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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:

NnQf2av.png!web

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:

bYJFNnF.png!web

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:

6NRveyb.png!web

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 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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK