doing 1.0.93 → 2.0.6.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/AUTHORS +19 -0
- data/CHANGELOG.md +616 -0
- data/COMMANDS.md +1181 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +110 -0
- data/LICENSE +23 -0
- data/README.md +15 -699
- data/Rakefile +79 -0
- data/_config.yml +1 -0
- data/bin/doing +1055 -494
- data/doing.gemspec +34 -0
- data/doing.rdoc +1839 -0
- data/example_plugin.rb +209 -0
- data/generate_completions.sh +5 -0
- data/img/doing-colors.jpg +0 -0
- data/img/doing-printf-wrap-800.jpg +0 -0
- data/img/doing-show-note-formatting-800.jpg +0 -0
- data/lib/completion/_doing.zsh +203 -0
- data/lib/completion/doing.bash +449 -0
- data/lib/completion/doing.fish +329 -0
- data/lib/doing/array.rb +8 -0
- data/lib/doing/cli_status.rb +70 -0
- data/lib/doing/colors.rb +136 -0
- data/lib/doing/configuration.rb +312 -0
- data/lib/doing/errors.rb +109 -0
- data/lib/doing/hash.rb +31 -0
- data/lib/doing/hooks.rb +59 -0
- data/lib/doing/item.rb +155 -0
- data/lib/doing/log_adapter.rb +344 -0
- data/lib/doing/markdown_document_listener.rb +174 -0
- data/lib/doing/note.rb +59 -0
- data/lib/doing/pager.rb +95 -0
- data/lib/doing/plugin_manager.rb +208 -0
- data/lib/doing/plugins/export/csv_export.rb +48 -0
- data/lib/doing/plugins/export/html_export.rb +83 -0
- data/lib/doing/plugins/export/json_export.rb +140 -0
- data/lib/doing/plugins/export/markdown_export.rb +85 -0
- data/lib/doing/plugins/export/taskpaper_export.rb +34 -0
- data/lib/doing/plugins/export/template_export.rb +141 -0
- data/lib/doing/plugins/import/cal_to_json.scpt +0 -0
- data/lib/doing/plugins/import/calendar_import.rb +76 -0
- data/lib/doing/plugins/import/doing_import.rb +144 -0
- data/lib/doing/plugins/import/timing_import.rb +78 -0
- data/lib/doing/string.rb +348 -0
- data/lib/doing/symbol.rb +16 -0
- data/lib/doing/time.rb +18 -0
- data/lib/doing/util.rb +186 -0
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +1868 -2349
- data/lib/doing/wwidfile.rb +117 -0
- data/lib/doing.rb +43 -3
- data/lib/examples/commands/autotag.rb +63 -0
- data/lib/examples/commands/wiki.rb +81 -0
- data/lib/examples/plugins/hooks.rb +22 -0
- data/lib/examples/plugins/say_export.rb +202 -0
- data/lib/examples/plugins/templates/wiki.css +169 -0
- data/lib/examples/plugins/templates/wiki.haml +27 -0
- data/lib/examples/plugins/templates/wiki_index.haml +18 -0
- data/lib/examples/plugins/wiki_export.rb +87 -0
- data/lib/templates/doing-markdown.erb +5 -0
- data/man/doing.1 +964 -0
- data/man/doing.1.html +711 -0
- data/man/doing.1.ronn +600 -0
- data/package-lock.json +3 -0
- data/rdoc_to_mmd.rb +42 -0
- data/rdocfixer.rb +13 -0
- data/scripts/generate_bash_completions.rb +211 -0
- data/scripts/generate_fish_completions.rb +204 -0
- data/scripts/generate_zsh_completions.rb +168 -0
- metadata +82 -7
- data/lib/doing/helpers.rb +0 -191
- data/lib/doing/markdown_export.rb +0 -16
data/doing.rdoc
ADDED
@@ -0,0 +1,1839 @@
|
|
1
|
+
== doing - A CLI for a What Was I Doing system
|
2
|
+
|
3
|
+
Doing uses a TaskPaper-like formatting to keep a plain text record of what you've been doing, complete with tag-based time tracking. The command line tool allows you to add entries, annotate with tags and notes, and view your entries with myriad options, with a focus on a "natural" language syntax.
|
4
|
+
|
5
|
+
v2.0.6.pre
|
6
|
+
|
7
|
+
=== Global Options
|
8
|
+
=== --config_file arg
|
9
|
+
|
10
|
+
Use a specific configuration file. Deprecated, set $DOING_CONFIG instead.
|
11
|
+
|
12
|
+
[Default Value] /Users/ttscoff/.doingrc
|
13
|
+
|
14
|
+
|
15
|
+
=== -f|--doing_file arg
|
16
|
+
|
17
|
+
Specify a different doing_file
|
18
|
+
|
19
|
+
[Default Value] None
|
20
|
+
|
21
|
+
|
22
|
+
=== --[no-]color
|
23
|
+
Colored output
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
=== --debug
|
28
|
+
Verbose output
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
=== --[no-]default
|
33
|
+
Answer yes/no menus with default option
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
=== --help
|
38
|
+
Show this message
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
=== --[no-]notes
|
43
|
+
Output notes if included in the template
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
=== -p|--[no-]pager
|
48
|
+
Use a pager when output is longer than screen
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
=== -q|--quiet
|
53
|
+
Silence info messages
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
=== --stdout
|
58
|
+
Send results report to STDOUT instead of STDERR
|
59
|
+
|
60
|
+
|
61
|
+
|
62
|
+
=== --version
|
63
|
+
Display the program version
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
=== -x|--noauto
|
68
|
+
Exclude auto tags and default tags
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
=== Commands
|
73
|
+
==== Command: <tt>add_section SECTION_NAME</tt>
|
74
|
+
Add a new section to the "doing" file
|
75
|
+
|
76
|
+
|
77
|
+
==== Command: <tt>again|resume </tt>
|
78
|
+
Repeat last entry as new entry
|
79
|
+
|
80
|
+
|
81
|
+
===== Options
|
82
|
+
===== --bool BOOLEAN
|
83
|
+
|
84
|
+
Boolean used to combine multiple tags
|
85
|
+
|
86
|
+
[Default Value] AND
|
87
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
88
|
+
|
89
|
+
|
90
|
+
===== --in SECTION_NAME
|
91
|
+
|
92
|
+
Add new entry to section (default: same section as repeated entry)
|
93
|
+
|
94
|
+
[Default Value] None
|
95
|
+
|
96
|
+
|
97
|
+
===== -n|--note TEXT
|
98
|
+
|
99
|
+
Note
|
100
|
+
|
101
|
+
[Default Value] None
|
102
|
+
|
103
|
+
|
104
|
+
===== -s|--section NAME
|
105
|
+
|
106
|
+
Get last entry from a specific section
|
107
|
+
|
108
|
+
[Default Value] All
|
109
|
+
|
110
|
+
|
111
|
+
===== --search QUERY
|
112
|
+
|
113
|
+
Repeat last entry matching search. Surround with
|
114
|
+
slashes for regex (e.g. "/query/"), start with a single quote for exact match ("'query").
|
115
|
+
|
116
|
+
[Default Value] None
|
117
|
+
|
118
|
+
|
119
|
+
===== --tag TAG
|
120
|
+
|
121
|
+
Repeat last entry matching tags. Combine multiple tags with a comma.
|
122
|
+
|
123
|
+
[Default Value] None
|
124
|
+
|
125
|
+
|
126
|
+
===== -e|--editor
|
127
|
+
Edit duplicated entry with vim before adding
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
===== -i|--interactive
|
132
|
+
Select item to resume from a menu of matching entries
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
==== Command: <tt>archive|move SECTION_OR_TAG</tt>
|
137
|
+
Move entries between sections
|
138
|
+
|
139
|
+
Argument can be a section name to move all entries from a section,
|
140
|
+
or start with an "@" to move entries matching a tag.
|
141
|
+
|
142
|
+
Default with no argument moves items from the "Currently" section to Archive.
|
143
|
+
===== Options
|
144
|
+
===== --before DATE_STRING
|
145
|
+
|
146
|
+
Archive entries older than date
|
147
|
+
(Flexible date format, e.g. 1/27/2021, 2020-07-19, or Monday 3pm)
|
148
|
+
|
149
|
+
[Default Value] None
|
150
|
+
|
151
|
+
|
152
|
+
===== --bool BOOLEAN
|
153
|
+
|
154
|
+
Tag boolean (AND|OR|NOT)
|
155
|
+
|
156
|
+
[Default Value] AND
|
157
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
158
|
+
|
159
|
+
|
160
|
+
===== -k|--keep X
|
161
|
+
|
162
|
+
How many items to keep (ignored if archiving by tag or search)
|
163
|
+
|
164
|
+
[Default Value] None
|
165
|
+
[Must Match] (?-mix:^\d+$)
|
166
|
+
|
167
|
+
|
168
|
+
===== --search QUERY
|
169
|
+
|
170
|
+
Search filter
|
171
|
+
|
172
|
+
[Default Value] None
|
173
|
+
|
174
|
+
|
175
|
+
===== -t|--to SECTION_NAME
|
176
|
+
|
177
|
+
Move entries to
|
178
|
+
|
179
|
+
[Default Value] Archive
|
180
|
+
|
181
|
+
|
182
|
+
===== --tag TAG
|
183
|
+
|
184
|
+
Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
|
185
|
+
|
186
|
+
[Default Value] None
|
187
|
+
|
188
|
+
|
189
|
+
===== --[no-]label
|
190
|
+
Label moved items with @from(SECTION_NAME)
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
==== Command: <tt>autotag </tt>
|
195
|
+
Autotag last entry or filtered entries
|
196
|
+
|
197
|
+
|
198
|
+
===== Options
|
199
|
+
===== --bool BOOLEAN
|
200
|
+
|
201
|
+
Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
202
|
+
|
203
|
+
[Default Value] AND
|
204
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
205
|
+
|
206
|
+
|
207
|
+
===== -c|--count COUNT
|
208
|
+
|
209
|
+
How many recent entries to autotag (0 for all)
|
210
|
+
|
211
|
+
[Default Value] 1
|
212
|
+
[Must Match] (?-mix:^\d+$)
|
213
|
+
|
214
|
+
|
215
|
+
===== -s|--section SECTION_NAME
|
216
|
+
|
217
|
+
Section
|
218
|
+
|
219
|
+
[Default Value] All
|
220
|
+
|
221
|
+
|
222
|
+
===== --search QUERY
|
223
|
+
|
224
|
+
Autotag entries matching search filter,
|
225
|
+
surround with slashes for regex (e.g. "/query.*/"),
|
226
|
+
start with single quote for exact match ("'query")
|
227
|
+
|
228
|
+
[Default Value] None
|
229
|
+
|
230
|
+
|
231
|
+
===== --tag TAG
|
232
|
+
|
233
|
+
Autotag the last X entries containing TAG.
|
234
|
+
Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
|
235
|
+
|
236
|
+
[Default Value] None
|
237
|
+
|
238
|
+
|
239
|
+
===== --force
|
240
|
+
Don't ask permission to autotag all entries when count is 0
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
===== -i|--interactive
|
245
|
+
Select item(s) to tag from a menu of matching entries
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
===== -u|--unfinished
|
250
|
+
Autotag last entry (or entries) not marked @done
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
==== Command: <tt>cancel COUNT</tt>
|
255
|
+
End last X entries with no time tracked
|
256
|
+
|
257
|
+
Adds @done tag without datestamp so no elapsed time is recorded. Alias for `doing finish --no-date`.
|
258
|
+
===== Options
|
259
|
+
===== --bool BOOLEAN
|
260
|
+
|
261
|
+
Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
262
|
+
|
263
|
+
[Default Value] AND
|
264
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
265
|
+
|
266
|
+
|
267
|
+
===== -s|--section NAME
|
268
|
+
|
269
|
+
Section
|
270
|
+
|
271
|
+
[Default Value] None
|
272
|
+
|
273
|
+
|
274
|
+
===== --tag TAG
|
275
|
+
|
276
|
+
Cancel the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2)
|
277
|
+
|
278
|
+
[Default Value] None
|
279
|
+
|
280
|
+
|
281
|
+
===== -a|--archive
|
282
|
+
Archive entries
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
===== -i|--interactive
|
287
|
+
Select item(s) to cancel from a menu of matching entries
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
===== -u|--unfinished
|
292
|
+
Cancel last entry (or entries) not already marked @done
|
293
|
+
|
294
|
+
|
295
|
+
|
296
|
+
==== Command: <tt>choose </tt>
|
297
|
+
Select a section to display from a menu
|
298
|
+
|
299
|
+
|
300
|
+
==== Command: <tt>colors </tt>
|
301
|
+
List available color variables for configuration templates and views
|
302
|
+
|
303
|
+
|
304
|
+
==== Command: <tt>completion </tt>
|
305
|
+
Generate shell completion scripts
|
306
|
+
|
307
|
+
|
308
|
+
===== Options
|
309
|
+
===== -f|--file PATH
|
310
|
+
|
311
|
+
File to write output to
|
312
|
+
|
313
|
+
[Default Value] stdout
|
314
|
+
|
315
|
+
|
316
|
+
===== -t|--type SHELL
|
317
|
+
|
318
|
+
Shell to generate for (bash, zsh, fish)
|
319
|
+
|
320
|
+
[Default Value] zsh
|
321
|
+
[Must Match] (?i-mx:^[bzf](?:[ai]?sh)?$)
|
322
|
+
|
323
|
+
|
324
|
+
==== Command: <tt>config KEY_PATH</tt>
|
325
|
+
Edit the configuration file or output a value from it
|
326
|
+
|
327
|
+
Run without arguments, `doing config` opens your `.doingrc` in an editor.
|
328
|
+
If local configurations are found in the path between the current directory
|
329
|
+
and `~/.doingrc`, a menu will allow you to select which to open in the editor.
|
330
|
+
|
331
|
+
It will use the editor defined in `config_editor_app`, or one specified with `--editor`.
|
332
|
+
|
333
|
+
Use `doing config -d` to output the configuration to the terminal, and
|
334
|
+
provide a dot-separated key path to get a specific value. Shows the current value
|
335
|
+
including keys/overrides set by local configs.
|
336
|
+
===== Options
|
337
|
+
===== -a APP_NAME
|
338
|
+
|
339
|
+
Application to use
|
340
|
+
|
341
|
+
[Default Value] None
|
342
|
+
|
343
|
+
|
344
|
+
===== -b BUNDLE_ID
|
345
|
+
|
346
|
+
Application bundle id to use
|
347
|
+
|
348
|
+
[Default Value] None
|
349
|
+
|
350
|
+
|
351
|
+
===== -e|--editor EDITOR
|
352
|
+
|
353
|
+
Editor to use
|
354
|
+
|
355
|
+
[Default Value] None
|
356
|
+
|
357
|
+
|
358
|
+
===== -o|--output FORMAT
|
359
|
+
|
360
|
+
Format for --dump (json|yaml|raw)
|
361
|
+
|
362
|
+
[Default Value] yaml
|
363
|
+
[Must Match] (?-mix:^(?:y(?:aml)?|j(?:son)?|r(?:aw)?)$)
|
364
|
+
|
365
|
+
|
366
|
+
===== -d|--dump
|
367
|
+
Show a config key value based on arguments. Separate key paths with colons or dots, e.g. "export_templates.html". Empty arguments outputs the entire config.
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
===== -u|--update
|
372
|
+
Update config file with missing configuration options
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
===== -x
|
377
|
+
Use the config_editor_app defined in ~/.doingrc (config_editor_app not set)
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
==== Command: <tt>done|did ENTRY</tt>
|
382
|
+
Add a completed item with @done(date). No argument finishes last entry.
|
383
|
+
|
384
|
+
|
385
|
+
===== Options
|
386
|
+
===== --at DATE_STRING
|
387
|
+
|
388
|
+
Set finish date to specific date/time (natural langauge parsed, e.g. --at=1:30pm).
|
389
|
+
If used, ignores --back. Used with --took, backdates start date
|
390
|
+
|
391
|
+
[Default Value] None
|
392
|
+
|
393
|
+
|
394
|
+
===== -b|--back DATE_STRING
|
395
|
+
|
396
|
+
Backdate start date by interval [4pm|20m|2h|yesterday noon]
|
397
|
+
|
398
|
+
[Default Value] None
|
399
|
+
|
400
|
+
|
401
|
+
===== -n|--note TEXT
|
402
|
+
|
403
|
+
Include a note
|
404
|
+
|
405
|
+
[Default Value] None
|
406
|
+
|
407
|
+
|
408
|
+
===== -s|--section NAME
|
409
|
+
|
410
|
+
Section
|
411
|
+
|
412
|
+
[Default Value] None
|
413
|
+
|
414
|
+
|
415
|
+
===== -t|--took INTERVAL
|
416
|
+
|
417
|
+
Set completion date to start date plus interval (XX[mhd] or HH:MM).
|
418
|
+
If used without the --back option, the start date will be moved back to allow
|
419
|
+
the completion date to be the current time.
|
420
|
+
|
421
|
+
[Default Value] None
|
422
|
+
|
423
|
+
|
424
|
+
===== -a|--archive
|
425
|
+
Immediately archive the entry
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
===== --[no-]date
|
430
|
+
Include date
|
431
|
+
|
432
|
+
|
433
|
+
|
434
|
+
===== -e|--editor
|
435
|
+
Edit entry with vim (with no arguments, edits the last entry)
|
436
|
+
|
437
|
+
|
438
|
+
|
439
|
+
===== -r|--remove
|
440
|
+
Remove @done tag
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
===== -u|--unfinished
|
445
|
+
Finish last entry not already marked @done
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
==== Command: <tt>finish COUNT</tt>
|
450
|
+
Mark last X entries as @done
|
451
|
+
|
452
|
+
Marks the last X entries with a @done tag and current date. Does not alter already completed entries.
|
453
|
+
===== Options
|
454
|
+
===== --at DATE_STRING
|
455
|
+
|
456
|
+
Set finish date to specific date/time (natural langauge parsed, e.g. --at=1:30pm). If used, ignores --back.
|
457
|
+
|
458
|
+
[Default Value] None
|
459
|
+
|
460
|
+
|
461
|
+
===== -b|--back DATE_STRING
|
462
|
+
|
463
|
+
Backdate completed date to date string [4pm|20m|2h|yesterday noon]
|
464
|
+
|
465
|
+
[Default Value] None
|
466
|
+
|
467
|
+
|
468
|
+
===== --bool BOOLEAN
|
469
|
+
|
470
|
+
Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
471
|
+
|
472
|
+
[Default Value] AND
|
473
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
474
|
+
|
475
|
+
|
476
|
+
===== -s|--section NAME
|
477
|
+
|
478
|
+
Section
|
479
|
+
|
480
|
+
[Default Value] None
|
481
|
+
|
482
|
+
|
483
|
+
===== --search QUERY
|
484
|
+
|
485
|
+
Finish the last X entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
|
486
|
+
|
487
|
+
[Default Value] None
|
488
|
+
|
489
|
+
|
490
|
+
===== -t|--took INTERVAL
|
491
|
+
|
492
|
+
Set the completed date to the start date plus XX[hmd]
|
493
|
+
|
494
|
+
[Default Value] None
|
495
|
+
|
496
|
+
|
497
|
+
===== --tag TAG
|
498
|
+
|
499
|
+
Finish the last X entries containing TAG.
|
500
|
+
Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
|
501
|
+
|
502
|
+
[Default Value] None
|
503
|
+
|
504
|
+
|
505
|
+
===== -a|--archive
|
506
|
+
Archive entries
|
507
|
+
|
508
|
+
|
509
|
+
|
510
|
+
===== --auto
|
511
|
+
Auto-generate finish dates from next entry's start time.
|
512
|
+
Automatically generate completion dates 1 minute before next item (in any section) began.
|
513
|
+
--auto overrides the --date and --back parameters.
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
===== --[no-]date
|
518
|
+
Include date
|
519
|
+
|
520
|
+
|
521
|
+
|
522
|
+
===== -i|--interactive
|
523
|
+
Select item(s) to finish from a menu of matching entries
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
===== -r|--remove
|
528
|
+
Remove done tag
|
529
|
+
|
530
|
+
|
531
|
+
|
532
|
+
===== -u|--unfinished
|
533
|
+
Finish last entry (or entries) not already marked @done
|
534
|
+
|
535
|
+
|
536
|
+
|
537
|
+
==== Command: <tt>grep|search SEARCH_PATTERN</tt>
|
538
|
+
Search for entries
|
539
|
+
|
540
|
+
Search all sections (or limit to a single section) for entries matching text or regular expression. Normal strings are fuzzy matched.
|
541
|
+
|
542
|
+
To search with regular expressions, single quote the string and surround with slashes: `doing search '/\bm.*?x\b/'`
|
543
|
+
===== Options
|
544
|
+
===== --after DATE_STRING
|
545
|
+
|
546
|
+
Constrain search to entries newer than date
|
547
|
+
|
548
|
+
[Default Value] None
|
549
|
+
|
550
|
+
|
551
|
+
===== --before DATE_STRING
|
552
|
+
|
553
|
+
Constrain search to entries older than date
|
554
|
+
|
555
|
+
[Default Value] None
|
556
|
+
|
557
|
+
|
558
|
+
===== -o|--output FORMAT
|
559
|
+
|
560
|
+
Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
|
561
|
+
|
562
|
+
[Default Value] None
|
563
|
+
|
564
|
+
|
565
|
+
===== -s|--section NAME
|
566
|
+
|
567
|
+
Section
|
568
|
+
|
569
|
+
[Default Value] All
|
570
|
+
|
571
|
+
|
572
|
+
===== --tag_sort KEY
|
573
|
+
|
574
|
+
Sort tags by (name|time)
|
575
|
+
|
576
|
+
[Default Value] name
|
577
|
+
[Must Match] (?i-mx:^(?:name|time)$)
|
578
|
+
|
579
|
+
|
580
|
+
===== -i|--interactive
|
581
|
+
Display an interactive menu of results to perform further operations
|
582
|
+
|
583
|
+
|
584
|
+
|
585
|
+
===== --only_timed
|
586
|
+
Only show items with recorded time intervals
|
587
|
+
|
588
|
+
|
589
|
+
|
590
|
+
===== -t|--[no-]times
|
591
|
+
Show time intervals on @done tasks
|
592
|
+
|
593
|
+
|
594
|
+
|
595
|
+
===== --totals
|
596
|
+
Show intervals with totals at the end of output
|
597
|
+
|
598
|
+
|
599
|
+
|
600
|
+
==== Command: <tt>help command</tt>
|
601
|
+
Shows a list of commands or help for one command
|
602
|
+
|
603
|
+
Gets help for the application or its commands. Can also list the commands in a way helpful to creating a bash-style completion function
|
604
|
+
===== Options
|
605
|
+
===== -c
|
606
|
+
List commands one per line, to assist with shell completion
|
607
|
+
|
608
|
+
|
609
|
+
|
610
|
+
==== Command: <tt>import PATH</tt>
|
611
|
+
Import entries from an external source
|
612
|
+
|
613
|
+
Imports entries from other sources. Available plugins: calendar, doing, timing
|
614
|
+
===== Options
|
615
|
+
===== --after DATE_STRING
|
616
|
+
|
617
|
+
Import entries newer than date
|
618
|
+
|
619
|
+
[Default Value] None
|
620
|
+
|
621
|
+
|
622
|
+
===== --before DATE_STRING
|
623
|
+
|
624
|
+
Import entries older than date
|
625
|
+
|
626
|
+
[Default Value] None
|
627
|
+
|
628
|
+
|
629
|
+
===== -f|--from DATE_OR_RANGE
|
630
|
+
|
631
|
+
Date range to import. Date range argument should be quoted. Date specifications can be natural language.
|
632
|
+
To specify a range, use "to" or "through": `--from "monday to friday"` or `--from 10/1 to 10/31`.
|
633
|
+
Has no effect unless the import plugin has implemented date range filtering.
|
634
|
+
|
635
|
+
[Default Value] None
|
636
|
+
|
637
|
+
|
638
|
+
===== --prefix PREFIX
|
639
|
+
|
640
|
+
Prefix entries with
|
641
|
+
|
642
|
+
[Default Value] None
|
643
|
+
|
644
|
+
|
645
|
+
===== -s|--section NAME
|
646
|
+
|
647
|
+
Target section
|
648
|
+
|
649
|
+
[Default Value] None
|
650
|
+
|
651
|
+
|
652
|
+
===== --search QUERY
|
653
|
+
|
654
|
+
Only import items matching search. Surround with slashes for regex (/query/), start with single quote for exact match ("'query")
|
655
|
+
|
656
|
+
[Default Value] None
|
657
|
+
|
658
|
+
|
659
|
+
===== --tag TAGS
|
660
|
+
|
661
|
+
Tag all imported entries
|
662
|
+
|
663
|
+
[Default Value] None
|
664
|
+
|
665
|
+
|
666
|
+
===== --type TYPE
|
667
|
+
|
668
|
+
Import type (calendar|doing|timing)
|
669
|
+
|
670
|
+
[Default Value] doing
|
671
|
+
|
672
|
+
|
673
|
+
===== --[no-]autotag
|
674
|
+
Autotag entries
|
675
|
+
|
676
|
+
|
677
|
+
|
678
|
+
===== --only_timed
|
679
|
+
Only import items with recorded time intervals
|
680
|
+
|
681
|
+
|
682
|
+
|
683
|
+
===== --[no-]overlap
|
684
|
+
Allow entries that overlap existing times
|
685
|
+
|
686
|
+
|
687
|
+
|
688
|
+
==== Command: <tt>last </tt>
|
689
|
+
Show the last entry, optionally edit
|
690
|
+
|
691
|
+
|
692
|
+
===== Options
|
693
|
+
===== --bool BOOLEAN
|
694
|
+
|
695
|
+
Tag boolean
|
696
|
+
|
697
|
+
[Default Value] AND
|
698
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
699
|
+
|
700
|
+
|
701
|
+
===== -s|--section NAME
|
702
|
+
|
703
|
+
Specify a section
|
704
|
+
|
705
|
+
[Default Value] All
|
706
|
+
|
707
|
+
|
708
|
+
===== --search QUERY
|
709
|
+
|
710
|
+
Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
|
711
|
+
|
712
|
+
[Default Value] None
|
713
|
+
|
714
|
+
|
715
|
+
===== --tag TAG
|
716
|
+
|
717
|
+
Tag filter, combine multiple tags with a comma.
|
718
|
+
|
719
|
+
[Default Value] None
|
720
|
+
|
721
|
+
|
722
|
+
===== -e|--editor
|
723
|
+
Edit entry with vim
|
724
|
+
|
725
|
+
|
726
|
+
|
727
|
+
==== Command: <tt>later ENTRY</tt>
|
728
|
+
Add an item to the Later section
|
729
|
+
|
730
|
+
|
731
|
+
===== Options
|
732
|
+
===== -b|--back DATE_STRING
|
733
|
+
|
734
|
+
Backdate start time to date string [4pm|20m|2h|yesterday noon]
|
735
|
+
|
736
|
+
[Default Value] None
|
737
|
+
|
738
|
+
|
739
|
+
===== -n|--note TEXT
|
740
|
+
|
741
|
+
Note
|
742
|
+
|
743
|
+
[Default Value] None
|
744
|
+
|
745
|
+
|
746
|
+
===== -e|--editor
|
747
|
+
Edit entry with vim
|
748
|
+
|
749
|
+
|
750
|
+
|
751
|
+
==== Command: <tt>mark|flag </tt>
|
752
|
+
Mark last entry as flagged
|
753
|
+
|
754
|
+
|
755
|
+
===== Options
|
756
|
+
===== --bool BOOLEAN
|
757
|
+
|
758
|
+
Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
759
|
+
|
760
|
+
[Default Value] AND
|
761
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
762
|
+
|
763
|
+
|
764
|
+
===== -c|--count COUNT
|
765
|
+
|
766
|
+
How many recent entries to tag (0 for all)
|
767
|
+
|
768
|
+
[Default Value] 1
|
769
|
+
[Must Match] (?-mix:^\d+$)
|
770
|
+
|
771
|
+
|
772
|
+
===== -s|--section SECTION_NAME
|
773
|
+
|
774
|
+
Section
|
775
|
+
|
776
|
+
[Default Value] All
|
777
|
+
|
778
|
+
|
779
|
+
===== --search QUERY
|
780
|
+
|
781
|
+
Flag the last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
|
782
|
+
|
783
|
+
[Default Value] None
|
784
|
+
|
785
|
+
|
786
|
+
===== --tag TAG
|
787
|
+
|
788
|
+
Flag the last entry containing TAG.
|
789
|
+
Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
|
790
|
+
|
791
|
+
[Default Value] None
|
792
|
+
|
793
|
+
|
794
|
+
===== -d|--date
|
795
|
+
Include current date/time with tag
|
796
|
+
|
797
|
+
|
798
|
+
|
799
|
+
===== --force
|
800
|
+
Don't ask permission to flag all entries when count is 0
|
801
|
+
|
802
|
+
|
803
|
+
|
804
|
+
===== -i|--interactive
|
805
|
+
Select item(s) to flag from a menu of matching entries
|
806
|
+
|
807
|
+
|
808
|
+
|
809
|
+
===== -r|--remove
|
810
|
+
Remove flag
|
811
|
+
|
812
|
+
|
813
|
+
|
814
|
+
===== -u|--unfinished
|
815
|
+
Flag last entry (or entries) not marked @done
|
816
|
+
|
817
|
+
|
818
|
+
|
819
|
+
==== Command: <tt>meanwhile ENTRY</tt>
|
820
|
+
Finish any running @meanwhile tasks and optionally create a new one
|
821
|
+
|
822
|
+
|
823
|
+
===== Options
|
824
|
+
===== -b|--back DATE_STRING
|
825
|
+
|
826
|
+
Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
|
827
|
+
|
828
|
+
[Default Value] None
|
829
|
+
|
830
|
+
|
831
|
+
===== -n|--note TEXT
|
832
|
+
|
833
|
+
Note
|
834
|
+
|
835
|
+
[Default Value] None
|
836
|
+
|
837
|
+
|
838
|
+
===== -s|--section NAME
|
839
|
+
|
840
|
+
Section
|
841
|
+
|
842
|
+
[Default Value] None
|
843
|
+
|
844
|
+
|
845
|
+
===== -a|--archive
|
846
|
+
Archive previous @meanwhile entry
|
847
|
+
|
848
|
+
|
849
|
+
|
850
|
+
===== -e|--editor
|
851
|
+
Edit entry with vim
|
852
|
+
|
853
|
+
|
854
|
+
|
855
|
+
==== Command: <tt>note NOTE_TEXT</tt>
|
856
|
+
Add a note to the last entry
|
857
|
+
|
858
|
+
If -r is provided with no other arguments, the last note is removed.
|
859
|
+
If new content is specified through arguments or STDIN, any previous
|
860
|
+
note will be replaced with the new one.
|
861
|
+
|
862
|
+
Use -e to load the last entry in a text editor where you can append a note.
|
863
|
+
===== Options
|
864
|
+
===== --bool BOOLEAN
|
865
|
+
|
866
|
+
Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
867
|
+
|
868
|
+
[Default Value] AND
|
869
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
870
|
+
|
871
|
+
|
872
|
+
===== -s|--section NAME
|
873
|
+
|
874
|
+
Section
|
875
|
+
|
876
|
+
[Default Value] All
|
877
|
+
|
878
|
+
|
879
|
+
===== --search QUERY
|
880
|
+
|
881
|
+
Add/remove note from last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
|
882
|
+
|
883
|
+
[Default Value] None
|
884
|
+
|
885
|
+
|
886
|
+
===== --tag TAG
|
887
|
+
|
888
|
+
Add/remove note from last entry matching tag
|
889
|
+
|
890
|
+
[Default Value] None
|
891
|
+
|
892
|
+
|
893
|
+
===== -e|--editor
|
894
|
+
Edit entry with vim
|
895
|
+
|
896
|
+
|
897
|
+
|
898
|
+
===== -i|--interactive
|
899
|
+
Select item for new note from a menu of matching entries
|
900
|
+
|
901
|
+
|
902
|
+
|
903
|
+
===== -r|--remove
|
904
|
+
Replace/Remove last entry's note (default append)
|
905
|
+
|
906
|
+
|
907
|
+
|
908
|
+
==== Command: <tt>now|next ENTRY</tt>
|
909
|
+
Add an entry
|
910
|
+
|
911
|
+
Record what you're starting now, or backdate the start time using natural language.
|
912
|
+
|
913
|
+
A parenthetical at the end of the entry will be converted to a note.
|
914
|
+
|
915
|
+
Run with no argument to create a new entry using vim.
|
916
|
+
===== Options
|
917
|
+
===== -b|--back DATE_STRING
|
918
|
+
|
919
|
+
Backdate start time [4pm|20m|2h|yesterday noon]
|
920
|
+
|
921
|
+
[Default Value] None
|
922
|
+
|
923
|
+
|
924
|
+
===== -n|--note TEXT
|
925
|
+
|
926
|
+
Include a note
|
927
|
+
|
928
|
+
[Default Value] None
|
929
|
+
|
930
|
+
|
931
|
+
===== -s|--section NAME
|
932
|
+
|
933
|
+
Section
|
934
|
+
|
935
|
+
[Default Value] None
|
936
|
+
|
937
|
+
|
938
|
+
===== -e|--editor
|
939
|
+
Edit entry with vim
|
940
|
+
|
941
|
+
|
942
|
+
|
943
|
+
===== -f|--finish_last
|
944
|
+
Timed entry, marks last entry in section as @done
|
945
|
+
|
946
|
+
|
947
|
+
|
948
|
+
==== Command: <tt>on DATE_STRING</tt>
|
949
|
+
List entries for a date
|
950
|
+
|
951
|
+
Date argument can be natural language. "thursday" would be interpreted as "last thursday,"
|
952
|
+
and "2d" would be interpreted as "two days ago." If you use "to" or "through" between two dates,
|
953
|
+
it will create a range.
|
954
|
+
===== Options
|
955
|
+
===== -o|--output FORMAT
|
956
|
+
|
957
|
+
Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
|
958
|
+
|
959
|
+
[Default Value] None
|
960
|
+
|
961
|
+
|
962
|
+
===== -s|--section NAME
|
963
|
+
|
964
|
+
Section
|
965
|
+
|
966
|
+
[Default Value] All
|
967
|
+
|
968
|
+
|
969
|
+
===== --tag_sort KEY
|
970
|
+
|
971
|
+
Sort tags by (name|time)
|
972
|
+
|
973
|
+
[Default Value] name
|
974
|
+
[Must Match] (?i-mx:^(?:name|time)$)
|
975
|
+
|
976
|
+
|
977
|
+
===== -t|--[no-]times
|
978
|
+
Show time intervals on @done tasks
|
979
|
+
|
980
|
+
|
981
|
+
|
982
|
+
===== --totals
|
983
|
+
Show time totals at the end of output
|
984
|
+
|
985
|
+
|
986
|
+
|
987
|
+
==== Command: <tt>open </tt>
|
988
|
+
Open the "doing" file in an editor
|
989
|
+
|
990
|
+
`doing open` defaults to using the editor_app setting in /Users/ttscoff/.doingrc (not set).
|
991
|
+
===== Options
|
992
|
+
===== -a|--app APP_NAME
|
993
|
+
|
994
|
+
Open with app name
|
995
|
+
|
996
|
+
[Default Value] None
|
997
|
+
|
998
|
+
|
999
|
+
===== -b|--bundle_id BUNDLE_ID
|
1000
|
+
|
1001
|
+
Open with app bundle id
|
1002
|
+
|
1003
|
+
[Default Value] None
|
1004
|
+
|
1005
|
+
|
1006
|
+
==== Command: <tt>plugins </tt>
|
1007
|
+
List installed plugins
|
1008
|
+
|
1009
|
+
Lists available plugins, including user-installed plugins.
|
1010
|
+
|
1011
|
+
Export plugins are available with the `--output` flag on commands that support it.
|
1012
|
+
|
1013
|
+
Import plugins are available using `doing import --type PLUGIN`.
|
1014
|
+
===== Options
|
1015
|
+
===== -t|--type TYPE
|
1016
|
+
|
1017
|
+
List plugins of type (import, export)
|
1018
|
+
|
1019
|
+
[Default Value] all
|
1020
|
+
[Must Match] (?i-mx:^(?:[iea].*)$)
|
1021
|
+
|
1022
|
+
|
1023
|
+
===== -c|--column
|
1024
|
+
List in single column for completion
|
1025
|
+
|
1026
|
+
|
1027
|
+
|
1028
|
+
==== Command: <tt>recent COUNT</tt>
|
1029
|
+
List recent entries
|
1030
|
+
|
1031
|
+
|
1032
|
+
===== Options
|
1033
|
+
===== -s|--section NAME
|
1034
|
+
|
1035
|
+
Section
|
1036
|
+
|
1037
|
+
[Default Value] All
|
1038
|
+
|
1039
|
+
|
1040
|
+
===== --tag_sort KEY
|
1041
|
+
|
1042
|
+
Sort tags by (name|time)
|
1043
|
+
|
1044
|
+
[Default Value] name
|
1045
|
+
[Must Match] (?i-mx:^(?:name|time)$)
|
1046
|
+
|
1047
|
+
|
1048
|
+
===== -i|--interactive
|
1049
|
+
Select from a menu of matching entries to perform additional operations
|
1050
|
+
|
1051
|
+
|
1052
|
+
|
1053
|
+
===== -t|--[no-]times
|
1054
|
+
Show time intervals on @done tasks
|
1055
|
+
|
1056
|
+
|
1057
|
+
|
1058
|
+
===== --totals
|
1059
|
+
Show intervals with totals at the end of output
|
1060
|
+
|
1061
|
+
|
1062
|
+
|
1063
|
+
==== Command: <tt>reset|begin </tt>
|
1064
|
+
Reset the start time of an entry
|
1065
|
+
|
1066
|
+
|
1067
|
+
===== Options
|
1068
|
+
===== --bool BOOLEAN
|
1069
|
+
|
1070
|
+
Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
1071
|
+
|
1072
|
+
[Default Value] AND
|
1073
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
1074
|
+
|
1075
|
+
|
1076
|
+
===== -s|--section NAME
|
1077
|
+
|
1078
|
+
Set the start date of an item to now
|
1079
|
+
|
1080
|
+
[Default Value] All
|
1081
|
+
|
1082
|
+
|
1083
|
+
===== --search QUERY
|
1084
|
+
|
1085
|
+
Reset last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
|
1086
|
+
|
1087
|
+
[Default Value] None
|
1088
|
+
|
1089
|
+
|
1090
|
+
===== --tag TAG
|
1091
|
+
|
1092
|
+
Reset last entry matching tag
|
1093
|
+
|
1094
|
+
[Default Value] None
|
1095
|
+
|
1096
|
+
|
1097
|
+
===== -i|--interactive
|
1098
|
+
Select from a menu of matching entries
|
1099
|
+
|
1100
|
+
|
1101
|
+
|
1102
|
+
===== -r|--[no-]resume
|
1103
|
+
Resume entry (remove @done)
|
1104
|
+
|
1105
|
+
|
1106
|
+
|
1107
|
+
==== Command: <tt>rotate </tt>
|
1108
|
+
Move entries to archive file
|
1109
|
+
|
1110
|
+
|
1111
|
+
===== Options
|
1112
|
+
===== --before DATE_STRING
|
1113
|
+
|
1114
|
+
Rotate entries older than date
|
1115
|
+
(Flexible date format, e.g. 1/27/2021, 2020-07-19, or Monday 3pm)
|
1116
|
+
|
1117
|
+
[Default Value] None
|
1118
|
+
|
1119
|
+
|
1120
|
+
===== --bool BOOLEAN
|
1121
|
+
|
1122
|
+
Tag boolean (AND|OR|NOT)
|
1123
|
+
|
1124
|
+
[Default Value] AND
|
1125
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
1126
|
+
|
1127
|
+
|
1128
|
+
===== -k|--keep X
|
1129
|
+
|
1130
|
+
How many items to keep in each section (most recent)
|
1131
|
+
|
1132
|
+
[Default Value] None
|
1133
|
+
[Must Match] (?-mix:^\d+$)
|
1134
|
+
|
1135
|
+
|
1136
|
+
===== -s|--section SECTION_NAME
|
1137
|
+
|
1138
|
+
Section to rotate
|
1139
|
+
|
1140
|
+
[Default Value] All
|
1141
|
+
|
1142
|
+
|
1143
|
+
===== --search QUERY
|
1144
|
+
|
1145
|
+
Search filter
|
1146
|
+
|
1147
|
+
[Default Value] None
|
1148
|
+
|
1149
|
+
|
1150
|
+
===== --tag TAG
|
1151
|
+
|
1152
|
+
Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
|
1153
|
+
|
1154
|
+
[Default Value] None
|
1155
|
+
|
1156
|
+
|
1157
|
+
==== Command: <tt>sections </tt>
|
1158
|
+
List sections
|
1159
|
+
|
1160
|
+
|
1161
|
+
===== Options
|
1162
|
+
===== -c|--column
|
1163
|
+
List in single column
|
1164
|
+
|
1165
|
+
|
1166
|
+
|
1167
|
+
==== Command: <tt>select </tt>
|
1168
|
+
Display an interactive menu to perform operations
|
1169
|
+
|
1170
|
+
List all entries and select with typeahead fuzzy matching.
|
1171
|
+
|
1172
|
+
Multiple selections are allowed, hit tab to add the highlighted entry to the
|
1173
|
+
selection, and use ctrl-a to select all visible items. Return processes the
|
1174
|
+
selected entries.
|
1175
|
+
===== Options
|
1176
|
+
===== -m|--move SECTION
|
1177
|
+
|
1178
|
+
Move selected items to section
|
1179
|
+
|
1180
|
+
[Default Value] None
|
1181
|
+
|
1182
|
+
|
1183
|
+
===== -o|--output FORMAT
|
1184
|
+
|
1185
|
+
Output entries to format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
|
1186
|
+
|
1187
|
+
[Default Value] None
|
1188
|
+
|
1189
|
+
|
1190
|
+
===== -q|--query|--search QUERY
|
1191
|
+
|
1192
|
+
Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote, e.g. `--query "'search"
|
1193
|
+
|
1194
|
+
[Default Value] None
|
1195
|
+
|
1196
|
+
|
1197
|
+
===== -s|--section SECTION
|
1198
|
+
|
1199
|
+
Select from a specific section
|
1200
|
+
|
1201
|
+
[Default Value] None
|
1202
|
+
|
1203
|
+
|
1204
|
+
===== --save_to FILE
|
1205
|
+
|
1206
|
+
Save selected entries to file using --output format
|
1207
|
+
|
1208
|
+
[Default Value] None
|
1209
|
+
|
1210
|
+
|
1211
|
+
===== -t|--tag TAG
|
1212
|
+
|
1213
|
+
Tag selected entries
|
1214
|
+
|
1215
|
+
[Default Value] None
|
1216
|
+
|
1217
|
+
|
1218
|
+
===== -a|--archive
|
1219
|
+
Archive selected items
|
1220
|
+
|
1221
|
+
|
1222
|
+
|
1223
|
+
===== --again|--resume
|
1224
|
+
Copy selection as a new entry with current time and no @done tag. Only works with single selections. Can be combined with --editor.
|
1225
|
+
|
1226
|
+
|
1227
|
+
|
1228
|
+
===== -c|--cancel
|
1229
|
+
Cancel selected items (add @done without timestamp)
|
1230
|
+
|
1231
|
+
|
1232
|
+
|
1233
|
+
===== -d|--delete
|
1234
|
+
Delete selected items
|
1235
|
+
|
1236
|
+
|
1237
|
+
|
1238
|
+
===== -e|--editor
|
1239
|
+
Edit selected item(s)
|
1240
|
+
|
1241
|
+
|
1242
|
+
|
1243
|
+
===== -f|--finish
|
1244
|
+
Add @done with current time to selected item(s)
|
1245
|
+
|
1246
|
+
|
1247
|
+
|
1248
|
+
===== --flag
|
1249
|
+
Add flag to selected item(s)
|
1250
|
+
|
1251
|
+
|
1252
|
+
|
1253
|
+
===== --force
|
1254
|
+
Perform action without confirmation.
|
1255
|
+
|
1256
|
+
|
1257
|
+
|
1258
|
+
===== --[no-]menu
|
1259
|
+
Use --no-menu to skip the interactive menu. Use with --query to filter items and act on results automatically. Test with `--output doing` to preview matches.
|
1260
|
+
|
1261
|
+
|
1262
|
+
|
1263
|
+
===== -r|--remove
|
1264
|
+
Reverse -c, -f, --flag, and -t (remove instead of adding)
|
1265
|
+
|
1266
|
+
|
1267
|
+
|
1268
|
+
==== Command: <tt>show [SECTION|@TAGS]</tt>
|
1269
|
+
List all entries
|
1270
|
+
|
1271
|
+
The argument can be a section name, @tag(s) or both.
|
1272
|
+
"pick" or "choose" as an argument will offer a section menu.
|
1273
|
+
===== Options
|
1274
|
+
===== -a|--age AGE
|
1275
|
+
|
1276
|
+
Age (oldest|newest)
|
1277
|
+
|
1278
|
+
[Default Value] newest
|
1279
|
+
|
1280
|
+
|
1281
|
+
===== --after DATE_STRING
|
1282
|
+
|
1283
|
+
View entries newer than date
|
1284
|
+
|
1285
|
+
[Default Value] None
|
1286
|
+
|
1287
|
+
|
1288
|
+
===== -b|--bool BOOLEAN
|
1289
|
+
|
1290
|
+
Tag boolean (AND,OR,NOT)
|
1291
|
+
|
1292
|
+
[Default Value] OR
|
1293
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
1294
|
+
|
1295
|
+
|
1296
|
+
===== --before DATE_STRING
|
1297
|
+
|
1298
|
+
View entries older than date
|
1299
|
+
|
1300
|
+
[Default Value] None
|
1301
|
+
|
1302
|
+
|
1303
|
+
===== -c|--count MAX
|
1304
|
+
|
1305
|
+
Max count to show
|
1306
|
+
|
1307
|
+
[Default Value] 0
|
1308
|
+
|
1309
|
+
|
1310
|
+
===== -f|--from DATE_OR_RANGE
|
1311
|
+
|
1312
|
+
Date range to show, or a single day to filter date on.
|
1313
|
+
Date range argument should be quoted. Date specifications can be natural language.
|
1314
|
+
To specify a range, use "to" or "through": `doing show --from "monday to friday"`
|
1315
|
+
|
1316
|
+
[Default Value] None
|
1317
|
+
|
1318
|
+
|
1319
|
+
===== -o|--output FORMAT
|
1320
|
+
|
1321
|
+
Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
|
1322
|
+
|
1323
|
+
[Default Value] None
|
1324
|
+
|
1325
|
+
|
1326
|
+
===== -s|--sort ORDER
|
1327
|
+
|
1328
|
+
Sort order (asc/desc)
|
1329
|
+
|
1330
|
+
[Default Value] asc
|
1331
|
+
[Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
|
1332
|
+
|
1333
|
+
|
1334
|
+
===== --search QUERY
|
1335
|
+
|
1336
|
+
Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
|
1337
|
+
|
1338
|
+
[Default Value] None
|
1339
|
+
|
1340
|
+
|
1341
|
+
===== --tag TAG
|
1342
|
+
|
1343
|
+
Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
|
1344
|
+
|
1345
|
+
[Default Value] None
|
1346
|
+
|
1347
|
+
|
1348
|
+
===== --tag_order DIRECTION
|
1349
|
+
|
1350
|
+
Tag sort direction (asc|desc)
|
1351
|
+
|
1352
|
+
[Default Value] asc
|
1353
|
+
[Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
|
1354
|
+
|
1355
|
+
|
1356
|
+
===== --tag_sort KEY
|
1357
|
+
|
1358
|
+
Sort tags by (name|time)
|
1359
|
+
|
1360
|
+
[Default Value] name
|
1361
|
+
[Must Match] (?i-mx:^(?:name|time))
|
1362
|
+
|
1363
|
+
|
1364
|
+
===== -i|--interactive
|
1365
|
+
Select from a menu of matching entries to perform additional operations
|
1366
|
+
|
1367
|
+
|
1368
|
+
|
1369
|
+
===== --only_timed
|
1370
|
+
Only show items with recorded time intervals
|
1371
|
+
|
1372
|
+
|
1373
|
+
|
1374
|
+
===== -t|--[no-]times
|
1375
|
+
Show time intervals on @done tasks
|
1376
|
+
|
1377
|
+
|
1378
|
+
|
1379
|
+
===== --totals
|
1380
|
+
Show intervals with totals at the end of output
|
1381
|
+
|
1382
|
+
|
1383
|
+
|
1384
|
+
==== Command: <tt>since DATE_STRING</tt>
|
1385
|
+
List entries since a date
|
1386
|
+
|
1387
|
+
Date argument can be natural language and are always interpreted as being in the past. "thursday" would be interpreted as "last thursday,"
|
1388
|
+
and "2d" would be interpreted as "two days ago."
|
1389
|
+
===== Options
|
1390
|
+
===== -o|--output FORMAT
|
1391
|
+
|
1392
|
+
Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
|
1393
|
+
|
1394
|
+
[Default Value] None
|
1395
|
+
|
1396
|
+
|
1397
|
+
===== -s|--section NAME
|
1398
|
+
|
1399
|
+
Section
|
1400
|
+
|
1401
|
+
[Default Value] All
|
1402
|
+
|
1403
|
+
|
1404
|
+
===== --tag_sort KEY
|
1405
|
+
|
1406
|
+
Sort tags by (name|time)
|
1407
|
+
|
1408
|
+
[Default Value] name
|
1409
|
+
[Must Match] (?i-mx:^(?:name|time)$)
|
1410
|
+
|
1411
|
+
|
1412
|
+
===== -t|--[no-]times
|
1413
|
+
Show time intervals on @done tasks
|
1414
|
+
|
1415
|
+
|
1416
|
+
|
1417
|
+
===== --totals
|
1418
|
+
Show time totals at the end of output
|
1419
|
+
|
1420
|
+
|
1421
|
+
|
1422
|
+
==== Command: <tt>tag TAG...</tt>
|
1423
|
+
Add tag(s) to last entry
|
1424
|
+
|
1425
|
+
Add (or remove) tags from the last entry, or from multiple entries
|
1426
|
+
(with `--count`), entries matching a search (with `--search`), or entries
|
1427
|
+
containing another tag (with `--tag`).
|
1428
|
+
|
1429
|
+
When removing tags with `-r`, wildcards are allowed (`*` to match
|
1430
|
+
multiple characters, `?` to match a single character). With `--regex`,
|
1431
|
+
regular expressions will be interpreted instead of wildcards.
|
1432
|
+
|
1433
|
+
For all tag removals the match is case insensitive by default, but if
|
1434
|
+
the tag search string contains any uppercase letters, the match will
|
1435
|
+
become case sensitive automatically.
|
1436
|
+
|
1437
|
+
Tag name arguments do not need to be prefixed with @.
|
1438
|
+
===== Options
|
1439
|
+
===== --bool BOOLEAN
|
1440
|
+
|
1441
|
+
Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
1442
|
+
|
1443
|
+
[Default Value] AND
|
1444
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
1445
|
+
|
1446
|
+
|
1447
|
+
===== -c|--count COUNT
|
1448
|
+
|
1449
|
+
How many recent entries to tag (0 for all)
|
1450
|
+
|
1451
|
+
[Default Value] 1
|
1452
|
+
[Must Match] (?-mix:^\d+$)
|
1453
|
+
|
1454
|
+
|
1455
|
+
===== --rename ORIG_TAG
|
1456
|
+
|
1457
|
+
Replace existing tag with tag argument, wildcards (*,?) allowed, or use with --regex
|
1458
|
+
|
1459
|
+
[Default Value] None
|
1460
|
+
|
1461
|
+
|
1462
|
+
===== -s|--section SECTION_NAME
|
1463
|
+
|
1464
|
+
Section
|
1465
|
+
|
1466
|
+
[Default Value] All
|
1467
|
+
|
1468
|
+
|
1469
|
+
===== --search QUERY
|
1470
|
+
|
1471
|
+
Tag entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
|
1472
|
+
|
1473
|
+
[Default Value] None
|
1474
|
+
|
1475
|
+
|
1476
|
+
===== --tag TAG
|
1477
|
+
|
1478
|
+
Tag the last X entries containing TAG.
|
1479
|
+
Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
|
1480
|
+
|
1481
|
+
[Default Value] None
|
1482
|
+
|
1483
|
+
|
1484
|
+
===== -a|--autotag
|
1485
|
+
Autotag entries based on autotag configuration in ~/.doingrc
|
1486
|
+
|
1487
|
+
|
1488
|
+
|
1489
|
+
===== -d|--date
|
1490
|
+
Include current date/time with tag
|
1491
|
+
|
1492
|
+
|
1493
|
+
|
1494
|
+
===== --force
|
1495
|
+
Don't ask permission to tag all entries when count is 0
|
1496
|
+
|
1497
|
+
|
1498
|
+
|
1499
|
+
===== -i|--interactive
|
1500
|
+
Select item(s) to tag from a menu of matching entries
|
1501
|
+
|
1502
|
+
|
1503
|
+
|
1504
|
+
===== -r|--remove
|
1505
|
+
Remove given tag(s)
|
1506
|
+
|
1507
|
+
|
1508
|
+
|
1509
|
+
===== --regex
|
1510
|
+
Interpret tag string as regular expression (with --remove)
|
1511
|
+
|
1512
|
+
|
1513
|
+
|
1514
|
+
===== -u|--unfinished
|
1515
|
+
Tag last entry (or entries) not marked @done
|
1516
|
+
|
1517
|
+
|
1518
|
+
|
1519
|
+
==== Command: <tt>template TYPE</tt>
|
1520
|
+
Output HTML, CSS, and Markdown (ERB) templates for customization
|
1521
|
+
|
1522
|
+
Templates are printed to STDOUT for piping to a file.
|
1523
|
+
Save them and use them in the configuration file under html_template.
|
1524
|
+
|
1525
|
+
Example `doing template haml > ~/styles/my_doing.haml`
|
1526
|
+
===== Options
|
1527
|
+
===== -c
|
1528
|
+
List in single column for completion
|
1529
|
+
|
1530
|
+
|
1531
|
+
|
1532
|
+
===== -l|--list
|
1533
|
+
List all available templates
|
1534
|
+
|
1535
|
+
|
1536
|
+
|
1537
|
+
==== Command: <tt>test </tt>
|
1538
|
+
Test Stuff
|
1539
|
+
|
1540
|
+
This command is coming from /Users/ttscoff/.config/doing/commands/test.rb
|
1541
|
+
==== Command: <tt>today </tt>
|
1542
|
+
List entries from today
|
1543
|
+
|
1544
|
+
|
1545
|
+
===== Options
|
1546
|
+
===== --after TIME_STRING
|
1547
|
+
|
1548
|
+
View entries after specified time (e.g. 8am, 12:30pm, 15:00)
|
1549
|
+
|
1550
|
+
[Default Value] None
|
1551
|
+
|
1552
|
+
|
1553
|
+
===== --before TIME_STRING
|
1554
|
+
|
1555
|
+
View entries before specified time (e.g. 8am, 12:30pm, 15:00)
|
1556
|
+
|
1557
|
+
[Default Value] None
|
1558
|
+
|
1559
|
+
|
1560
|
+
===== -o|--output FORMAT
|
1561
|
+
|
1562
|
+
Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
|
1563
|
+
|
1564
|
+
[Default Value] None
|
1565
|
+
|
1566
|
+
|
1567
|
+
===== -s|--section NAME
|
1568
|
+
|
1569
|
+
Specify a section
|
1570
|
+
|
1571
|
+
[Default Value] All
|
1572
|
+
|
1573
|
+
|
1574
|
+
===== --tag_sort KEY
|
1575
|
+
|
1576
|
+
Sort tags by (name|time)
|
1577
|
+
|
1578
|
+
[Default Value] name
|
1579
|
+
[Must Match] (?i-mx:^(?:name|time)$)
|
1580
|
+
|
1581
|
+
|
1582
|
+
===== -t|--[no-]times
|
1583
|
+
Show time intervals on @done tasks
|
1584
|
+
|
1585
|
+
|
1586
|
+
|
1587
|
+
===== --totals
|
1588
|
+
Show time totals at the end of output
|
1589
|
+
|
1590
|
+
|
1591
|
+
|
1592
|
+
==== Command: <tt>undo </tt>
|
1593
|
+
Undo the last change to the doing_file
|
1594
|
+
|
1595
|
+
|
1596
|
+
===== Options
|
1597
|
+
===== -f|--file PATH
|
1598
|
+
|
1599
|
+
Specify alternate doing file
|
1600
|
+
|
1601
|
+
[Default Value] None
|
1602
|
+
|
1603
|
+
|
1604
|
+
==== Command: <tt>view VIEW_NAME</tt>
|
1605
|
+
Display a user-created view
|
1606
|
+
|
1607
|
+
Command line options override view configuration
|
1608
|
+
===== Options
|
1609
|
+
===== --after DATE_STRING
|
1610
|
+
|
1611
|
+
View entries newer than date
|
1612
|
+
|
1613
|
+
[Default Value] None
|
1614
|
+
|
1615
|
+
|
1616
|
+
===== -b|--bool BOOLEAN
|
1617
|
+
|
1618
|
+
Tag boolean (AND,OR,NOT)
|
1619
|
+
|
1620
|
+
[Default Value] OR
|
1621
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
1622
|
+
|
1623
|
+
|
1624
|
+
===== --before DATE_STRING
|
1625
|
+
|
1626
|
+
View entries older than date
|
1627
|
+
|
1628
|
+
[Default Value] None
|
1629
|
+
|
1630
|
+
|
1631
|
+
===== -c|--count COUNT
|
1632
|
+
|
1633
|
+
Count to display
|
1634
|
+
|
1635
|
+
[Default Value] None
|
1636
|
+
[Must Match] (?-mix:^\d+$)
|
1637
|
+
|
1638
|
+
|
1639
|
+
===== -o|--output FORMAT
|
1640
|
+
|
1641
|
+
Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
|
1642
|
+
|
1643
|
+
[Default Value] None
|
1644
|
+
|
1645
|
+
|
1646
|
+
===== -s|--section NAME
|
1647
|
+
|
1648
|
+
Section
|
1649
|
+
|
1650
|
+
[Default Value] None
|
1651
|
+
|
1652
|
+
|
1653
|
+
===== --search QUERY
|
1654
|
+
|
1655
|
+
Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
|
1656
|
+
|
1657
|
+
[Default Value] None
|
1658
|
+
|
1659
|
+
|
1660
|
+
===== --tag TAG
|
1661
|
+
|
1662
|
+
Tag filter, combine multiple tags with a comma.
|
1663
|
+
|
1664
|
+
[Default Value] None
|
1665
|
+
|
1666
|
+
|
1667
|
+
===== --tag_order DIRECTION
|
1668
|
+
|
1669
|
+
Tag sort direction (asc|desc)
|
1670
|
+
|
1671
|
+
[Default Value] None
|
1672
|
+
[Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
|
1673
|
+
|
1674
|
+
|
1675
|
+
===== --tag_sort KEY
|
1676
|
+
|
1677
|
+
Sort tags by (name|time)
|
1678
|
+
|
1679
|
+
[Default Value] None
|
1680
|
+
[Must Match] (?i-mx:^(?:name|time)$)
|
1681
|
+
|
1682
|
+
|
1683
|
+
===== --[no-]color
|
1684
|
+
Include colors in output
|
1685
|
+
|
1686
|
+
|
1687
|
+
|
1688
|
+
===== -i|--interactive
|
1689
|
+
Select from a menu of matching entries to perform additional operations
|
1690
|
+
|
1691
|
+
|
1692
|
+
|
1693
|
+
===== --only_timed
|
1694
|
+
Only show items with recorded time intervals (override view settings)
|
1695
|
+
|
1696
|
+
|
1697
|
+
|
1698
|
+
===== -t|--[no-]times
|
1699
|
+
Show time intervals on @done tasks
|
1700
|
+
|
1701
|
+
|
1702
|
+
|
1703
|
+
===== --totals
|
1704
|
+
Show intervals with totals at the end of output
|
1705
|
+
|
1706
|
+
|
1707
|
+
|
1708
|
+
==== Command: <tt>views </tt>
|
1709
|
+
List available custom views
|
1710
|
+
|
1711
|
+
|
1712
|
+
===== Options
|
1713
|
+
===== -c|--[no-]column
|
1714
|
+
List in single column
|
1715
|
+
|
1716
|
+
|
1717
|
+
|
1718
|
+
==== Command: <tt>wiki </tt>
|
1719
|
+
Output a tag wiki
|
1720
|
+
|
1721
|
+
|
1722
|
+
===== Options
|
1723
|
+
===== --after DATE_STRING
|
1724
|
+
|
1725
|
+
Include entries newer than date
|
1726
|
+
|
1727
|
+
[Default Value] None
|
1728
|
+
|
1729
|
+
|
1730
|
+
===== -b|--bool BOOLEAN
|
1731
|
+
|
1732
|
+
Tag boolean (AND,OR,NOT)
|
1733
|
+
|
1734
|
+
[Default Value] OR
|
1735
|
+
[Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
|
1736
|
+
|
1737
|
+
|
1738
|
+
===== --before DATE_STRING
|
1739
|
+
|
1740
|
+
Include entries older than date
|
1741
|
+
|
1742
|
+
[Default Value] None
|
1743
|
+
|
1744
|
+
|
1745
|
+
===== -f|--from DATE_OR_RANGE
|
1746
|
+
|
1747
|
+
Date range to include, or a single day to filter date on.
|
1748
|
+
Date range argument should be quoted. Date specifications can be natural language.
|
1749
|
+
To specify a range, use "to" or "through": `doing show --from "monday to friday"`
|
1750
|
+
|
1751
|
+
[Default Value] None
|
1752
|
+
|
1753
|
+
|
1754
|
+
===== -s|--section SECTION_NAME
|
1755
|
+
|
1756
|
+
Section to rotate
|
1757
|
+
|
1758
|
+
[Default Value] All
|
1759
|
+
|
1760
|
+
|
1761
|
+
===== --search QUERY
|
1762
|
+
|
1763
|
+
Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
|
1764
|
+
|
1765
|
+
[Default Value] None
|
1766
|
+
|
1767
|
+
|
1768
|
+
===== --tag TAG
|
1769
|
+
|
1770
|
+
Tag filter, combine multiple tags with a comma, use with --bool
|
1771
|
+
|
1772
|
+
[Default Value] None
|
1773
|
+
|
1774
|
+
|
1775
|
+
===== --only_timed
|
1776
|
+
Only show items with recorded time intervals
|
1777
|
+
|
1778
|
+
|
1779
|
+
|
1780
|
+
==== Command: <tt>yesterday </tt>
|
1781
|
+
List entries from yesterday
|
1782
|
+
|
1783
|
+
|
1784
|
+
===== Options
|
1785
|
+
===== --after TIME_STRING
|
1786
|
+
|
1787
|
+
View entries after specified time (e.g. 8am, 12:30pm, 15:00)
|
1788
|
+
|
1789
|
+
[Default Value] None
|
1790
|
+
|
1791
|
+
|
1792
|
+
===== --before TIME_STRING
|
1793
|
+
|
1794
|
+
View entries before specified time (e.g. 8am, 12:30pm, 15:00)
|
1795
|
+
|
1796
|
+
[Default Value] None
|
1797
|
+
|
1798
|
+
|
1799
|
+
===== -o|--output FORMAT
|
1800
|
+
|
1801
|
+
Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
|
1802
|
+
|
1803
|
+
[Default Value] None
|
1804
|
+
|
1805
|
+
|
1806
|
+
===== -s|--section NAME
|
1807
|
+
|
1808
|
+
Specify a section
|
1809
|
+
|
1810
|
+
[Default Value] All
|
1811
|
+
|
1812
|
+
|
1813
|
+
===== --tag_order DIRECTION
|
1814
|
+
|
1815
|
+
Tag sort direction (asc|desc)
|
1816
|
+
|
1817
|
+
[Default Value] asc
|
1818
|
+
[Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
|
1819
|
+
|
1820
|
+
|
1821
|
+
===== --tag_sort KEY
|
1822
|
+
|
1823
|
+
Sort tags by (name|time)
|
1824
|
+
|
1825
|
+
[Default Value] name
|
1826
|
+
[Must Match] (?i-mx:^(?:name|time)$)
|
1827
|
+
|
1828
|
+
|
1829
|
+
===== -t|--[no-]times
|
1830
|
+
Show time intervals on @done tasks
|
1831
|
+
|
1832
|
+
|
1833
|
+
|
1834
|
+
===== --totals
|
1835
|
+
Show time totals at the end of output
|
1836
|
+
|
1837
|
+
|
1838
|
+
|
1839
|
+
[Default Command] recent
|