na with saved search
This might be the last big na update for a little while, but it’s got some great stuff in it. I’m really aiming to make this a great companion to TaskPaper, and I think it’s coming along nicely.
Natural Date Comparisons
First, you can now do natural language date comparisons for tag searches. For example, if you have an @due(DATE)
tag in your todo file, you can run na tagged "due<now"
to find everything that’s currently due. Or na tagged "start<=in 2 days"
to find upcoming tasks. If a tag contains a date, it will be automatically detected and the comparison will be interpreted as a natural language date. You can, of course, use any valid date format for a specific date. Comparisons using *=
, ^=
, and $=
will still do actual text comparisons, so you can perform a query like na tagged "due^=2022-10"
to see everything with an October, 2022 due date.
Saved Searches
So, say you have a query like “due<=in 2 days” that you run frequently. Now you can add --save TITLE
to the command, e.g. na tagged "due<=in 2 days" --save soon
, to save that search for future use. Once saved, you can just run na saved soon
to repeat the search. This can be especially handy for searches with multiple criteria, such as na tagged "due<in 7 days,start>=yesterday"
.
Other recent changes
Since the last time I wrote about it… like 2 days ago? I’ve not been sleeping well.
CHANGED
- If no + or ! tokens are given in search, default to AND search for tokens
NEW
na add -d X
to allow adding new actions to todo files in subdirectories- You can use
--project X
to display only actions within a specific project. Specify subprojects with a path, e.g.na/bugs
. Partial matches allowed, works withnext
,find
, andtagged
find
andtagged
recognize * and ? as wildcards--regex
flag for find command--in todo/path
flag forfind
andtagged
commands to specify a todo file from historyna todos
will list (and optionally search) known todo files from history
IMPROVED
- When specifying arguments to
next
, allow paths separated by / to do more exact matching - Highlight search terms in results
- Added
--or
flag totagged
andfind
to default to OR boolean combination of search terms/tags - Fuzzier matching of todo file history
- Allow wildcards (* and ?) when matching todo history
- Allow multiple todo queries separated by comma
FIXED
- When adding a project, don’t use Ruby #capitalize, which downcases the rest of the project name
- Multiple search terms overriding each other
To get all this goodness, update to the latest version (1.1.23+) using gem upgrade na
or brew gem upgrade na
.
A big thanks goes to Ralf Hülsmann, who has brought a lot of especially great feature requests to light.