How to do "not" searches in TaskPaper


#1

Not searches can display unexpected results in TaskPaper because when TaskPaper displays search results it also includes the ancestors of those results.

Take this example outline:

My Big Project:
	- My Big Task. @done
		My big note.

Now search for not @done.

You may be surprised to find that “- my big tasks” is still visible. The reason for this is that “My big note” is not tagged with @done. So even though “- My big task” is marked done, it is still displayed because it’s the ancestor of "My big note.

Because of this in TaskPaper you’ll often want “not” searches to translate to: “not any of this item, or it’s descendants”. The good news is there’s a pretty easy pattern to follow in these cases. Do your “not” search. And then use “except” to remove the descendants of that same search from the results like this:

not @done except @done//*

How to show all items that don't have any tags?
Search returning items whose parents match "not" search