doing 1.0.92 → 2.0.5.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHORS +19 -0
  3. data/CHANGELOG.md +596 -0
  4. data/COMMANDS.md +1181 -0
  5. data/Gemfile +2 -0
  6. data/Gemfile.lock +110 -0
  7. data/LICENSE +23 -0
  8. data/README.md +15 -699
  9. data/Rakefile +79 -0
  10. data/_config.yml +1 -0
  11. data/bin/doing +1012 -486
  12. data/doing.fish +278 -0
  13. data/doing.gemspec +34 -0
  14. data/doing.rdoc +1759 -0
  15. data/example_plugin.rb +209 -0
  16. data/generate_completions.sh +4 -0
  17. data/img/doing-colors.jpg +0 -0
  18. data/img/doing-printf-wrap-800.jpg +0 -0
  19. data/img/doing-show-note-formatting-800.jpg +0 -0
  20. data/lib/completion/_doing.zsh +151 -0
  21. data/lib/completion/doing.bash +416 -0
  22. data/lib/completion/doing.fish +278 -0
  23. data/lib/doing/array.rb +8 -0
  24. data/lib/doing/cli_status.rb +66 -0
  25. data/lib/doing/colors.rb +136 -0
  26. data/lib/doing/configuration.rb +312 -0
  27. data/lib/doing/errors.rb +102 -0
  28. data/lib/doing/hash.rb +31 -0
  29. data/lib/doing/hooks.rb +59 -0
  30. data/lib/doing/item.rb +155 -0
  31. data/lib/doing/log_adapter.rb +342 -0
  32. data/lib/doing/markdown_document_listener.rb +174 -0
  33. data/lib/doing/note.rb +59 -0
  34. data/lib/doing/pager.rb +95 -0
  35. data/lib/doing/plugin_manager.rb +208 -0
  36. data/lib/doing/plugins/export/csv_export.rb +48 -0
  37. data/lib/doing/plugins/export/html_export.rb +83 -0
  38. data/lib/doing/plugins/export/json_export.rb +140 -0
  39. data/lib/doing/plugins/export/markdown_export.rb +85 -0
  40. data/lib/doing/plugins/export/taskpaper_export.rb +34 -0
  41. data/lib/doing/plugins/export/template_export.rb +141 -0
  42. data/lib/doing/plugins/import/cal_to_json.scpt +0 -0
  43. data/lib/doing/plugins/import/calendar_import.rb +76 -0
  44. data/lib/doing/plugins/import/doing_import.rb +144 -0
  45. data/lib/doing/plugins/import/timing_import.rb +78 -0
  46. data/lib/doing/string.rb +347 -0
  47. data/lib/doing/symbol.rb +16 -0
  48. data/lib/doing/time.rb +18 -0
  49. data/lib/doing/util.rb +186 -0
  50. data/lib/doing/version.rb +1 -1
  51. data/lib/doing/wwid.rb +1868 -2356
  52. data/lib/doing/wwidfile.rb +117 -0
  53. data/lib/doing.rb +44 -4
  54. data/lib/examples/commands/wiki.rb +81 -0
  55. data/lib/examples/plugins/hooks.rb +22 -0
  56. data/lib/examples/plugins/say_export.rb +202 -0
  57. data/lib/examples/plugins/templates/wiki.css +169 -0
  58. data/lib/examples/plugins/templates/wiki.haml +27 -0
  59. data/lib/examples/plugins/templates/wiki_index.haml +18 -0
  60. data/lib/examples/plugins/wiki_export.rb +87 -0
  61. data/lib/templates/doing-markdown.erb +5 -0
  62. data/man/doing.1 +964 -0
  63. data/man/doing.1.html +711 -0
  64. data/man/doing.1.ronn +600 -0
  65. data/package-lock.json +3 -0
  66. data/rdoc_to_mmd.rb +42 -0
  67. data/rdocfixer.rb +13 -0
  68. data/scripts/generate_bash_completions.rb +210 -0
  69. data/scripts/generate_fish_completions.rb +201 -0
  70. data/scripts/generate_zsh_completions.rb +164 -0
  71. metadata +82 -7
  72. data/lib/doing/helpers.rb +0 -191
  73. data/lib/doing/markdown_export.rb +0 -16
data/man/doing.1 ADDED
@@ -0,0 +1,964 @@
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "DOING" "1" "October 2021" "" ""
5
+ .
6
+ .SH "SYNOPSIS"
7
+ \fBdoing [global options] command [command options] [arguments\.\.\.]\fR
8
+ .
9
+ .SH "DESCRIPTION"
10
+ \fIA command line tool for remembering what you were doing and tracking what you\'ve done\.\fR
11
+ .
12
+ .P
13
+ \fBdoing\fR is a basic CLI for adding and listing "what was I doing" reminders in a TaskPaper\-formatted \fIhttps://www\.taskpaper\.com\fR text file\. It allows for multiple sections/categories, tag\-based time tracking, and flexible output formatting\.
14
+ .
15
+ .SH "USAGE"
16
+ .
17
+ .nf
18
+
19
+ doing [global options] command [command options] [arguments\.\.\.]
20
+ .
21
+ .fi
22
+ .
23
+ .SS "GLOBAL OPTIONS:"
24
+ .
25
+ .nf
26
+
27
+ \-f, \-\-doing_file=arg \- Specify a different doing_file (default: none)
28
+ \-\-help \- Show this message
29
+ \-\-[no\-]notes \- Output notes if included in the template (default: enabled)
30
+ \-\-stdout \- Send results report to STDOUT instead of STDERR
31
+ \-\-version \- Display the program version
32
+ \-x, \-\-[no\-]noauto \- Exclude auto tags and default tags
33
+ .
34
+ .fi
35
+ .
36
+ .SS "COMMANDS:"
37
+ .
38
+ .nf
39
+
40
+ help \- Shows a list of commands and global options
41
+ help [command] \- Shows help for any command (`doing help now`)
42
+
43
+
44
+ add_section \- Add a new section to the "doing" file
45
+ again, resume \- Repeat last entry as new entry
46
+ archive \- Move entries between sections
47
+ cancel \- End last X entries with no time tracked
48
+ choose \- Select a section to display from a menu
49
+ colors \- List available color variables for configuration templates and views
50
+ config \- Edit the configuration file
51
+ done, did \- Add a completed item with @done(date)\. No argument finishes last entry\.
52
+ finish \- Mark last X entries as @done
53
+ grep, search \- Search for entries
54
+ import \- Import entries from an external source
55
+ last \- Show the last entry, optionally edit
56
+ later \- Add an item to the Later section
57
+ mark, flag \- Mark last entry as highlighted
58
+ meanwhile \- Finish any running @meanwhile tasks and optionally create a new one
59
+ note \- Add a note to the last entry
60
+ now, next \- Add an entry
61
+ on \- List entries for a date
62
+ open \- Open the "doing" file in an editor
63
+ recent \- List recent entries
64
+ sections \- List sections
65
+ select \- Display an interactive menu to perform operations (requires fzf)
66
+ show \- List all entries
67
+ since \- List entries since a date
68
+ tag \- Add tag(s) to last entry
69
+ template \- Output HTML and CSS templates for customization
70
+ today \- List entries from today
71
+ undo \- Undo the last change to the doing_file
72
+ view \- Display a user\-created view
73
+ views \- List available custom views
74
+ yesterday \- List entries from yesterday
75
+ .
76
+ .fi
77
+ .
78
+ .SH "CONFIGURATION"
79
+ Run \fBdoing config\fR to open your \fB~/\.doingrc\fR file in the editor defined in the \fB$EDITOR\fR environment variable\. Set up your \fBdoing_file\fR right away (where you want entries to be stored), and cover the rest after you\'ve read the docs\.
80
+ .
81
+ .P
82
+ See the \fISUPPORT\fR section below for troubleshooting details\.
83
+ .
84
+ .SS "THE DOING FILE"
85
+ The file that stores all of your entries is generated the first time you add an entry (with \fBdoing now\fR or \fBdoing later\fR)\. By default, the file is created in \fB~/what_was_i_doing\.md\fR, but you can modify this in the config file\.
86
+ .
87
+ .P
88
+ The format of the "doing" file is TaskPaper\-compatible\. You can edit it by hand at any time (in TaskPaper or any text editor), but it uses a specific format for parsing, so be sure to maintain the dates and pipe characters\.
89
+ .
90
+ .P
91
+ Notes are anything in the list without a leading hyphen and date\. They belong to the entry directly before them, and they should be indented one level beyond the parent item\.
92
+ .
93
+ .P
94
+ When using the \fBnow\fR and \fBlater\fR commands on the command line, you can start the entry with a quote and hit return, then type the note and close the quote\. Anything after the first line will be turned into a TaskPaper\-compatible note for the task and can be displayed in templates using \fB%note\fR\.
95
+ .
96
+ .P
97
+ Notes can be prevented from ever appearing in output with the global option \fB\-\-no\-notes\fR: \fBdoing \-\-no\-notes show all\fR\.
98
+ .
99
+ .P
100
+ Auto tagging (adding tags listed in \.doingrc under \fBautotag\fR and \fBdefault_tags\fR) can be skipped for an entry with the \fB\-x\fR global option: \fBdoing \-x done skipping some automatic tagging\fR\.
101
+ .
102
+ .SS "CONFIGURATION OPTIONS"
103
+ A basic configuration looks like this:
104
+ .
105
+ .IP "" 4
106
+ .
107
+ .nf
108
+
109
+ \-\-\-
110
+ doing_file: /Users/username/Dropbox/doing\.taskpaper
111
+ current_section: Currently
112
+ default_template: \'%date: %title%note\'
113
+ default_date_format: \'%Y\-%m\-%d %H:%M\'
114
+ marker_tag: flagged
115
+ marker_color: yellow
116
+ tags_color: boldcyan
117
+ default_tags: []
118
+ editor_app: TaskPaper
119
+ config_editor_app: Sublime Text
120
+ :include_notes: true
121
+ views:
122
+ color:
123
+ date_format: \'%F %_I:%M%P\'
124
+ section: Currently
125
+ count: 10
126
+ wrap_width: 0
127
+ template: \'%boldblack%date %boldgreen| %boldwhite%title%default%note\'
128
+ order: desc
129
+ templates:
130
+ default:
131
+ date_format: \'%Y\-%m\-%d %H:%M\'
132
+ template: \'%date | %title%note\'
133
+ wrap_width: 0
134
+ today:
135
+ date_format: \'%_I:%M%P\'
136
+ template: \'%date: %title%odnote\'
137
+ wrap_width: 0
138
+ last:
139
+ date_format: \'%_I:%M%P on %a\'
140
+ template: \'%title (at %date)%odnote\'
141
+ wrap_width: 0
142
+ recent:
143
+ date_format: \'%_I:%M%P\'
144
+ template: \'%date > %title%odnote\'
145
+ wrap_width: 50
146
+ autotag:
147
+ whitelist:
148
+ \- coding
149
+ \- design
150
+ synonyms:
151
+ brainstorming:
152
+ \- thinking
153
+ \- idea
154
+ html_template:
155
+ haml:
156
+ css:
157
+ .
158
+ .fi
159
+ .
160
+ .IP "" 0
161
+ .
162
+ .P
163
+ The config file is stored in \fB~/\.doingrc\fR, and a skeleton file is created on the first run\. Just run \fBdoing\fR on its own to create the file\.
164
+ .
165
+ .SS "PER\-FOLDER CONFIGURATION"
166
+ Any options found in a \fB\.doingrc\fR anywhere in the hierarchy between your current folder and your home folder will be appended to the base configuration, overriding or extending existing options\. This allows you to put a \fB\.doingrc\fR file into the base of a project and add specific configurations (such as default tags) when working in that project on the command line\. These can be cascaded, with the closest \fB\.doingrc\fR to your current directory taking precedence, though I\'m not sure why you\'d want to deal with that\.
167
+ .
168
+ .P
169
+ Possible uses:
170
+ .
171
+ .IP "\(bu" 4
172
+ Define custom HTML output on a per\-project basis using the html_template option for custom templates\. Customize time tracking reports based on project or client\.
173
+ .
174
+ .IP "\(bu" 4
175
+ Define \fBdefault_tags\fR for a project so that every time you \fBdoing now\fR from within that project directory or its subfolders, it gets tagged with that project automatically\.
176
+ .
177
+ .IP "" 0
178
+ .
179
+ .P
180
+ Any part of the configuration can be copied into these local files and modified\. You only need to include the parts you want to change or add\.
181
+ .
182
+ .SS "DOING FILE LOCATION"
183
+ The one thing you\'ll probably want to adjust is the file that the notes are stored in\. That\'s the \fBdoing_file\fR key:
184
+ .
185
+ .IP "" 4
186
+ .
187
+ .nf
188
+
189
+ doing_file: /Users/username/Dropbox/nvALT2\.2/?? What was I doing\.md
190
+ .
191
+ .fi
192
+ .
193
+ .IP "" 0
194
+ .
195
+ .P
196
+ I keep mine in my nvALT folder for quick access and syncing between machines\. If desired, you can give it a \fB\.taskpaper\fR extension to make it more recognizable to other applications\. (If you do that in nvALT, make sure to add \fBtaskpaper\fR as a recognized extension in preferences)\.
197
+ .
198
+ .SS "CURRENT ACTIONS SECTION"
199
+ You can rename the section that holds your current tasks\. By default, this is \fBCurrently\fR, but if you have some other bright idea, feel free:
200
+ .
201
+ .IP "" 4
202
+ .
203
+ .nf
204
+
205
+ current_section: Currently
206
+ .
207
+ .fi
208
+ .
209
+ .IP "" 0
210
+ .
211
+ .SS "DEFAULT EDITORS"
212
+ The setting \fBeditor_app\fR only applies to Mac OS X users\. It\'s the default application that the command \fBdoing open\fR will open your WWID file in\. Personally, I use \fBeditor_app: TaskPaper\fR\. If this is blank, it will be opened by whatever the system default is for the doing file extension (default is \fB\.md\fR), or you can use \fB\-a app_name\fR or \fB\-b bundle_id\fR to override\.
213
+ .
214
+ .P
215
+ You can define a separate app to open the config file in when running \fBdoing config\fR\. The key for this is \fBconfig_editor_app\fR\.
216
+ .
217
+ .P
218
+ In the case of the \fBdoing now \-e\fR command, your \fB$EDITOR\fR environment variable will be used to complete the entry text and notes\. Set it in your \fB~/\.bash_profile\fR or whatever is appropriate for your system:
219
+ .
220
+ .IP "" 4
221
+ .
222
+ .nf
223
+
224
+ export EDITOR="mate \-w"
225
+ .
226
+ .fi
227
+ .
228
+ .IP "" 0
229
+ .
230
+ .P
231
+ The only requirements are that your editor be launchable from the command line and able to "wait\." In the case of Sublime Text and TextMate, just use \fB\-w\fR like this: \fBexport EDITOR="subl \-w"\fR\.
232
+ .
233
+ .SS "TEMPLATES"
234
+ The config also contains templates for various command outputs\. Include placeholders by placing a % before the keyword\. The available tokens are:
235
+ .
236
+ .IP "\(bu" 4
237
+ \fB%title\fR: the "what was I doing" entry line
238
+ .
239
+ .IP "\(bu" 4
240
+ \fB%date\fR: the date based on the template\'s \fBdate_format\fR setting
241
+ .
242
+ .IP "\(bu" 4
243
+ \fB%shortdate\fR: a custom date formatter that removes the day/month/year from the entry if they match the current day/month/year
244
+ .
245
+ .IP "\(bu" 4
246
+ \fB%note\fR: Any note in the entry will be included here, a newline and tabs are automatically added\.
247
+ .
248
+ .IP "\(bu" 4
249
+ \fB%odnote\fR: The notes with a leading tab removed (outdented note)
250
+ .
251
+ .IP "\(bu" 4
252
+ \fB%chompnote\fR: Notes on one line, beginning and trailing whitespace removed\.
253
+ .
254
+ .IP "\(bu" 4
255
+ \fB%section\fR: The section/project the entry is currently in
256
+ .
257
+ .IP "\(bu" 4
258
+ \fB%hr\fR: a horizontal rule (\fB\-\fR) the width of the terminal
259
+ .
260
+ .IP "\(bu" 4
261
+ \fB%hr_under\fR: a horizontal rule (\fB_\fR) the width of the terminal
262
+ .
263
+ .IP "\(bu" 4
264
+ \fB%n\fR: inserts a newline
265
+ .
266
+ .IP "\(bu" 4
267
+ \fB%t\fR: inserts a tab
268
+ .
269
+ .IP "\(bu" 4
270
+ .
271
+ .IP "\(bu" 4
272
+ you can prefix \fBbg\fR to affect background colors (\fB%bgyellow\fR)
273
+ .
274
+ .IP "\(bu" 4
275
+ prefix \fBbold\fR and \fBboldbg\fR for strong colors (\fB%boldgreen\fR, \fB%boldbgblue\fR)
276
+ .
277
+ .IP "\(bu" 4
278
+ there are some random special combo colors\. Use \fBdoing colors\fR to see the list
279
+ .
280
+ .IP "" 0
281
+
282
+ .
283
+ .IP "\(bu" 4
284
+ \fB%interval\fR: when used with the \fB\-t\fR switch on the \fBshow\fR command, it will display the time between a timestamp or \fI@start(date)\fR tag and the \fI@done(date)\fR tag, if it exists\. Otherwise, it will remain empty\.
285
+ .
286
+ .IP "" 0
287
+ .
288
+ .P
289
+ Date formats are based on Ruby \fBstrftime\fR \fIhttp://www\.ruby\-doc\.org/stdlib\-2\.1\.1/libdoc/date/rdoc/Date\.html#method\-i\-strftime\fR formatting\.
290
+ .
291
+ .P
292
+ My normal template for the \fBrecent\fR command looks like this:
293
+ .
294
+ .IP "" 4
295
+ .
296
+ .nf
297
+
298
+ recent:
299
+ date_format: \'%_I:%M%P\'
300
+ template: \'%date > %title%odnote\'
301
+ wrap_width: 88
302
+ .
303
+ .fi
304
+ .
305
+ .IP "" 0
306
+ .
307
+ .P
308
+ And it outputs:
309
+ .
310
+ .IP "" 4
311
+ .
312
+ .nf
313
+
314
+ $ doing recent 3
315
+ 4:30am > Made my `console` script smarter\.\.\.
316
+ Checks first argument to see if it\'s a file, if it is, that\'s the log
317
+
318
+ Else, it checks the first argument for a "\.log" suffix and does a search in the user
319
+ application logs with `find` for it\.
320
+
321
+ Otherwise, system\.log\.
322
+
323
+ I also made an awesome Cope wrapper for it\.\.\.
324
+ 12:00pm > Working on `doing` again\.
325
+ 12:45pm > I think this thing (doing) is ready to document and distribute
326
+ $
327
+ .
328
+ .fi
329
+ .
330
+ .IP "" 0
331
+ .
332
+ .P
333
+ You can get pretty clever and include line breaks and other formatting inside of double quotes\. If you want multiline templates, just use \fB\en\fR in the template line, and after the next run it will be rewritten as proper YAML automatically\.
334
+ .
335
+ .P
336
+ For example, this block:
337
+ .
338
+ .IP "" 4
339
+ .
340
+ .nf
341
+
342
+ recent:
343
+ date_format: \'%_I:%M%P\'
344
+ template: "\en%hr\en%date\en > %title%odnote\en%hr_under"
345
+ wrap_width: 100
346
+ .
347
+ .fi
348
+ .
349
+ .IP "" 0
350
+ .
351
+ .P
352
+ will rewrite to:
353
+ .
354
+ .IP "" 4
355
+ .
356
+ .nf
357
+
358
+ recent:
359
+ date_format: \'%_I:%M%P\'
360
+ template: |2\-
361
+
362
+ %hr
363
+ %date
364
+ > %title%odnote
365
+ %hr_under
366
+ wrap_width: 100
367
+ .
368
+ .fi
369
+ .
370
+ .IP "" 0
371
+ .
372
+ .P
373
+ and output my recent entries like this:
374
+ .
375
+ .IP "" 4
376
+ .
377
+ .nf
378
+
379
+ $ doing recent 3
380
+ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
381
+ 4:30am
382
+ > Made my `console` script smarter\.\.\.
383
+ Checks first argument to see if it\'s a file, if it is, that\'s the log
384
+
385
+ Else, it checks the first argument for a "\.log" suffix and does a search in the user application
386
+ logs with `find` for it\.
387
+
388
+ Otherwise, system\.log\.
389
+
390
+ I also made an awesome Cope wrapper for it\.\.\.
391
+ _______________________________________________________________________
392
+
393
+ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
394
+ 12:00pm
395
+ > Working on `doing` again\.
396
+ _______________________________________________________________________
397
+
398
+ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
399
+ 12:45pm
400
+ > I think this thing (doing) is ready to document and distribute
401
+ _______________________________________________________________________
402
+
403
+ $
404
+ .
405
+ .fi
406
+ .
407
+ .IP "" 0
408
+ .
409
+ .SS "CUSTOM VIEWS"
410
+ You can create your own "views" in the \fB~/\.doingrc\fR file and view them with \fBdoing view view_name\fR\. Just add a section like this:
411
+ .
412
+ .IP "" 4
413
+ .
414
+ .nf
415
+
416
+ views:
417
+ old:
418
+ section: Old
419
+ count: 5
420
+ wrap_width: 0
421
+ date_format: \'%F %_I:%M%P\'
422
+ template: \'%date | %title%note\'
423
+ order: asc
424
+ tags: done finished cancelled
425
+ tags_bool: ANY
426
+ .
427
+ .fi
428
+ .
429
+ .IP "" 0
430
+ .
431
+ .P
432
+ You can add additional custom views\. Just nest them under the \fBviews\fR key (indented two spaces from the edge)\. Multiple views would look like this:
433
+ .
434
+ .IP "" 4
435
+ .
436
+ .nf
437
+
438
+ views:
439
+ later:
440
+ section: Later
441
+ count: 5
442
+ wrap_width: 60
443
+ date_format: \'%F %_I:%M%P\'
444
+ template: \'%date | %title%note\'
445
+ old:
446
+ section: Old
447
+ count: 5
448
+ wrap_width: 0
449
+ date_format: \'%F %_I:%M%P\'
450
+ template: \'%date | %title%note\'
451
+ .
452
+ .fi
453
+ .
454
+ .IP "" 0
455
+ .
456
+ .P
457
+ The \fBsection\fR key is the default section to pull entries from\. Count and section can be overridden at runtime with the \fB\-c\fR and \fB\-s\fR flags\. Setting \fBsection\fR to \fBAll\fR will combine all sections in the output\.
458
+ .
459
+ .P
460
+ You can add new sections with \fBdoing add_section section_name\fR\. You can also create them on the fly by using the \fB\-s section_name\fR flag when running \fBdoing now\fR\. For example, \fBdoing now \-s Misc just a random side note\fR would create the "just a random side note" entry in a new section called "Misc," if Misc didn\'t already exist\.
461
+ .
462
+ .P
463
+ The \fBtags\fR and \fBtags_bool\fR keys allow you to specify tags that the view is filtered by\. You can list multiple tags separated by spaces, and then use \fBtags_bool\fR to specify \fBALL\fR, \fBANY\fR, or \fBNONE\fR to determine how it handles the multiple tags\.
464
+ .
465
+ .P
466
+ The \fBorder\fR key defines the sort order of the output\. This is applied \fIafter\fR the tasks are retrieved and cut off at the maximum number specified in \fBcount\fR\.
467
+ .
468
+ .P
469
+ Regarding colors, you can use them to create very nice displays if you\'re outputting to a color terminal\. Example:
470
+ .
471
+ .IP "" 4
472
+ .
473
+ .nf
474
+
475
+ color:
476
+ date_format: \'%F %_I:%M%P\'
477
+ section: Currently
478
+ count: 10
479
+ wrap_width: 0
480
+ template: \'%boldblack%date %boldgreen| %boldwhite%title%default%note\'
481
+ .
482
+ .fi
483
+ .
484
+ .IP "" 0
485
+ .
486
+ .P
487
+ You can also specify a default output format for a view\. Most of the optional output formats override the template specification (\fBhtml\fR, \fBcsv\fR, \fBjson\fR)\. If the \fBview\fR command is used with the \fB\-o\fR flag, it will override what\'s specified in the file\.
488
+ .
489
+ .SS "COLORS"
490
+ You can use the following colors in view templates\. Set a foreground color with a named color:
491
+ .
492
+ .IP "" 4
493
+ .
494
+ .nf
495
+
496
+ %black
497
+ %red
498
+ %green
499
+ %yellow
500
+ %blue
501
+ %magenta
502
+ %cyan
503
+ %white
504
+ .
505
+ .fi
506
+ .
507
+ .IP "" 0
508
+ .
509
+ .P
510
+ You can also add a background color (\fB%bg[color]\fR) by placing one after the foreground color:
511
+ .
512
+ .IP "" 4
513
+ .
514
+ .nf
515
+
516
+ %white%bgblack
517
+ %black%bgred
518
+ \.\.\.etc\.
519
+ .
520
+ .fi
521
+ .
522
+ .IP "" 0
523
+ .
524
+ .P
525
+ There are bold variants for both foreground and background colors
526
+ .
527
+ .IP "" 4
528
+ .
529
+ .nf
530
+
531
+ %boldblack
532
+ %boldred
533
+ \.\.\. etc\.
534
+
535
+ %boldbgblack
536
+ %boldbgred
537
+ \.\.\. etc\.
538
+ .
539
+ .fi
540
+ .
541
+ .IP "" 0
542
+ .
543
+ .P
544
+ And a few special colors you\'ll just have to try out to see (or just run \fBdoing colors\fR):
545
+ .
546
+ .IP "" 4
547
+ .
548
+ .nf
549
+
550
+ %softpurple
551
+ %hotpants
552
+ %knightrider
553
+ %flamingo
554
+ %yeller
555
+ %whiteboard
556
+ .
557
+ .fi
558
+ .
559
+ .IP "" 0
560
+ .
561
+ .P
562
+ Any time you use one of the foreground colors it will reset the bold and background settings to their default automatically\. You can force a reset to default terminal colors using \fB%default\fR\.
563
+ .
564
+ .SS "HTML TEMPLATES"
565
+ For commands that provide an HTML output option, you can customize the templates used for markup and CSS\. The markup uses HAML \fIhttp://haml\.info/\fR, and the styles are pure CSS\.
566
+ .
567
+ .P
568
+ To export the default configurations for customization, use \fBdoing templates \-\-type=[HAML|CSS]\fR\. This will output to STDOUT where you can pipe it to a file, e\.g\. \fBdoing templates \-\-type=HAML > my_template\.haml\fR\. You can modify the markup, the CSS, or both\.
569
+ .
570
+ .P
571
+ Once you have either or both of the template files, edit \fB\.doingrc\fR and look for the \fBhtml_template:\fR section\. There are two subvalues, \fBhaml:\fR and \fBcss:\fR\. Add the path to the templates you want to use\. A tilde may be substituted for your home directory, e\.g\. \fBcss: ~/styles/doing\.css\fR\.
572
+ .
573
+ .SS "AUTOTAGGING"
574
+ Keywords in your entries can trigger automatic tagging, just to make life easier\. There are three tools available: default tags, whitelisting, and synonym tagging\.
575
+ .
576
+ .P
577
+ Default tags are tags that are applied to every entry\. You probably don\'t want to add these in the root configuration, but using a local \fB\.doingrc\fR in a project directory that defines default tags for that project allows anything added from that directory to be tagged automatically\. A local \fB\.doingrc\fR in my Marked development directory might contain:
578
+ .
579
+ .IP "" 4
580
+ .
581
+ .nf
582
+
583
+ \-\-\-
584
+ default_tags: [marked,coding]
585
+ .
586
+ .fi
587
+ .
588
+ .IP "" 0
589
+ .
590
+ .P
591
+ And anything I enter while in the directory gets tagged with \fI@marked\fR and \fI@coding\fR\.
592
+ .
593
+ .P
594
+ A whitelist is a list of words that should be converted directly into \fI@tags\fR\. If my whitelist contains "design" and I type \fBdoing now working on site design\fR, that\'s automatically converted to "working on site @design\."
595
+ .
596
+ .P
597
+ Synonyms allow you to define keywords that will trigger their parent tag\. If I have a tag called \fI@design\fR, I can add "typography" as a synonym\. Then entering \fBdoing now working on site typography\fR will become "working on site typography @design\."
598
+ .
599
+ .P
600
+ White lists and synonyms are defined like this:
601
+ .
602
+ .IP "" 4
603
+ .
604
+ .nf
605
+
606
+ autotag:
607
+ synonyms:
608
+ design:
609
+ \- typography
610
+ \- layout
611
+ brainstorming
612
+ \- thinking
613
+ \- idea
614
+ whitelist:
615
+ \- brainstorming
616
+ \- coding
617
+ .
618
+ .fi
619
+ .
620
+ .IP "" 0
621
+ .
622
+ .P
623
+ Note that you can include a tag with synonyms in the whitelist as well to tag it directly when used\.
624
+ .
625
+ .P
626
+ \fI\fBAdding entries:\fR\fR
627
+ .
628
+ .IP "" 4
629
+ .
630
+ .nf
631
+
632
+ now, did \- Add an entry
633
+ later \- Add an item to the Later section
634
+ done \- Add a completed item with @done(date)\. No argument finishes last entry\.
635
+ meanwhile \- Finish any @meanwhile tasks and optionally create a new one
636
+ again, resume \- Duplicate the last entry as new entry (without @done tag)
637
+ .
638
+ .fi
639
+ .
640
+ .IP "" 0
641
+ .
642
+ .P
643
+ The \fBdoing now\fR command can accept \fB\-s section_name\fR to send the new entry straight to a non\-default section\. It also accepts \fB\-\-back=AMOUNT\fR to let you specify a start date in the past using "natural language\." For example, \fBdoing now \-\-back=25m ENTRY\fR or \fBdoing now \-\-back="yesterday 3:30pm" ENTRY\fR\.
644
+ .
645
+ .P
646
+ If you want to use \fB\-\-back\fR with \fBdoing done\fR but want the end time to be different than the start time, you can either use \fB\-\-took\fR in addition, or just use \fB\-\-took\fR on its own as it will backdate the start time such that the end time is now and the duration is equal to the value of the \fB\-\-took\fR argument\.
647
+ .
648
+ .P
649
+ You can finish the last unfinished task when starting a new one using \fBdoing now\fR with the \fB\-f\fR switch\. It will look for the last task not marked \fI@done\fR and add the \fI@done\fR tag with the start time of the new task (either the current time or what you specified with \fB\-\-back\fR)\.
650
+ .
651
+ .P
652
+ \fBdoing done\fR is used to add an entry that you\'ve already completed\. Like \fBnow\fR, you can specify a section with \fB\-s section_name\fR\. You can also skip straight to Archive with \fB\-a\fR\.
653
+ .
654
+ .P
655
+ \fBdoing done\fR can also backdate entries using natural language with \fB\-\-back 15m\fR or \fB\-\-back "3/15 3pm"\fR\. That will modify the starting timestamp of the entry\. You can also use \fB\-\-took 1h20m\fR or \fB\-\-took 1:20\fR to set the finish date based on a "natural language" time interval\. If \fB\-\-took\fR is used without \fB\-\-back\fR, then the start date is adjusted (\fB\-\-took\fR interval is subtracted) so that the completion date is the current time\.
656
+ .
657
+ .P
658
+ When used with \fBdoing done\fR, \fB\-\-back\fR and \fB\-\-took\fR allow time intervals to be accurately counted when entering items after the fact\. \fB\-\-took\fR is also available for the \fBdoing finish\fR command, but cannot be used in conjunction with \fB\-\-back\fR\. (In \fBfinish\fR they both set the end date, and neither has priority\. \fB\-\-back\fR allows specific days/times, \fB\-\-took\fR uses time intervals\.)
659
+ .
660
+ .P
661
+ All of these commands accept a \fB\-e\fR argument\. This opens your command line editor (as defined in the environment variable \fB$EDITOR\fR)\. Add your entry, save the temp file, and close it\. The new entry is added\. Anything after the first line is included as a note on the entry\.
662
+ .
663
+ .P
664
+ \fBdoing again\fR (or \fBdoing resume\fR) will duplicate the last @done entry (most recently completed) with a new start date (and without the @done tag)\. To resume the last entry matching specific tags, use \fB\-\-tag=TAG\fR\. You can specify multiple tags by separating with a comma\. Multiple tags are combined with \'AND\' by default (all tags must exist on the entry to match), but you can use \fB\-\-bool=\fR to set it to \'OR\' or \'NOT\'\. By default the new entry will be added to the same section as the matching entry, but you can specify a section with \fB\-\-in=SECTION\fR\.
665
+ .
666
+ .P
667
+ \fBdoing meanwhile\fR is a special command for creating and finishing tasks that may have other entries come before they\'re complete\. When you create an entry with \fBdoing meanwhile [entry text]\fR, it will automatically complete the last \fI@meanwhile\fR item (dated \fI@done\fR tag) and add the \fI@meanwhile\fR tag to the new item\. This allows time tracking on a more general basis, and still lets you keep track of the smaller things you do while working on an overarching project\. The \fBmeanwhile\fR command accepts \fB\-\-back [time]\fR and will backdate the \fI@done\fR tag and start date of the new task at the same time\. Running \fBmeanwhile\fR with no arguments will simply complete the last \fI@meanwhile\fR task\.
668
+ .
669
+ .P
670
+ See \fBdoing help meanwhile\fR for more options\.
671
+ .
672
+ .P
673
+ \fI\fBModifying entries:\fR\fR
674
+ .
675
+ .IP "" 4
676
+ .
677
+ .nf
678
+
679
+ finish \- Mark last X entries as @done
680
+ cancel \- Mark last X entries as @done without completion date
681
+ tag \- Tag last entry
682
+ note \- Add a note to the last entry
683
+ .
684
+ .fi
685
+ .
686
+ .IP "" 0
687
+ .
688
+ .P
689
+ \fI\fBFinishing\fR\fR
690
+ .
691
+ .P
692
+ \fBdoing finish\fR by itself is the same as \fBdoing done\fR by itself\. It adds \fI@done(timestamp)\fR to the last entry\. It also accepts a numeric argument to complete X number of tasks back in history\. Add \fB\-a\fR to also archive the affected entries\.
693
+ .
694
+ .P
695
+ \fBdoing finish\fR also provides an \fB\-\-auto\fR flag, which you can use to set the end time of any entry to 1 minute before the start time of the next\. Running a command such as \fBdoing finish \-\-auto 10\fR will go through the last 10 entries and sequentially update any without a \fI@done\fR tag with one set to the time just before the next entry in the list\.
696
+ .
697
+ .P
698
+ As mentioned above, \fBfinish\fR also accepts \fB\-\-back "2 hours"\fR (sets the finish date from time now minus interval) or \fB\-\-took 30m\fR (sets the finish date to time started plus interval) so you can accurately add times to completed tasks, even if you don\'t do it in the moment\.
699
+ .
700
+ .P
701
+ Both \fBdone\fR and \fBfinish\fR accept an \fB\-\-archive\fR switch which immediately moves the completed entries to the Archive section with a \fB@from(Project)\fR tag\.
702
+ .
703
+ .P
704
+ You can finish the last entry containing a specific tag or combination of tags using the \fB\-\-tag\fR flag\. Multiple tags are separated by commas\. By default tags are combined with an AND boolean, meaning the entry must contain all specified tags to be considered\. For example, to finish the last entry containing both "@work" and "@project1", you would use:
705
+ .
706
+ .IP "" 4
707
+ .
708
+ .nf
709
+
710
+ doing finish \-\-tag=work,project1
711
+ .
712
+ .fi
713
+ .
714
+ .IP "" 0
715
+ .
716
+ .P
717
+ You can change the boolean using \fB\-\-bool=OR\fR (last entry containing any of the specified tags) or \fB\-\-bool=NOT\fR (last entry containing none of the tags)\.
718
+ .
719
+ .P
720
+ You can also include a \fB\-\-no\-date\fR switch to add \fB@done\fR without a finish date, meaning no time is tracked for the task\. \fBdoing cancel\fR is an alias for this\. Like \fBfinish\fR, \fBcancel\fR accepts a count to act on the last X entries, as well as \fB\-\-archive\fR and \fB\-\-section\fR options\. \fBcancel\fR also accepts the \fB\-\-tag\fR and \fB\-\-bool\fR flags for tag filtering\.
721
+ .
722
+ .P
723
+ \fI\fBTagging and Autotagging\fR\fR
724
+ .
725
+ .P
726
+ \fBtag\fR adds one or more tags to the last entry, or specify a count with \fB\-c X\fR\. Tags are specified as basic arguments, separated by spaces\. For example:
727
+ .
728
+ .IP "" 4
729
+ .
730
+ .nf
731
+
732
+ doing tag \-c 3 client cancelled
733
+ .
734
+ .fi
735
+ .
736
+ .IP "" 0
737
+ .
738
+ .P
739
+ \&\.\.\. will mark the last three entries as \fI@client @cancelled\fR\. Add \fB\-r\fR as a switch to remove the listed tags instead\.
740
+ .
741
+ .P
742
+ You can optionally define keywords for common tasks and projects in your \fB\.doingrc\fR file\. When these keywords appear in an item title, they\'ll automatically be converted into @tags\. The \fBwhitelist\fR tags are exact (but case insensitive) matches\.
743
+ .
744
+ .P
745
+ You can also define \fBsynonyms\fR, which will add a tag at the end based on keywords associated with it\. When defining \fBsynonym\fR keys, be sure to indent but \fInot\fR hyphenate the keys themselves, while hyphenating the list of synonyms at the same indent level as their key\. See \fBplaying\fR and \fBwriting\fR in the example below for illustration\. Follow standard YAML syntax\.
746
+ .
747
+ .P
748
+ To add autotagging, include a section like this in your \fB~/\.doingrc\fR file:
749
+ .
750
+ .IP "" 4
751
+ .
752
+ .nf
753
+
754
+ autotag:
755
+ whitelist:
756
+ \- doing
757
+ \- mindmeister
758
+ \- marked
759
+ \- playing
760
+ \- working
761
+ \- writing
762
+ synonyms:
763
+ playing:
764
+ \- hacking
765
+ \- tweaking
766
+ \- toying
767
+ \- messing
768
+ writing:
769
+ \- blogging
770
+ \- posting
771
+ \- publishing
772
+ .
773
+ .fi
774
+ .
775
+ .IP "" 0
776
+ .
777
+ .P
778
+ \fI\fBTag transformation\fR\fR
779
+ .
780
+ .P
781
+ You can include a \fBtransform\fR section in the autotag config which contains pairs of regular expressions and replacement patterns separated by a colon\. These will be used to look at existing tags in the text and generate additional tags from them\. For example:
782
+ .
783
+ .P
784
+ autotag: transform: \- (\ew+)\-\ed+:$1
785
+ .
786
+ .P
787
+ This creates a search pattern looking for a string of word characters followed by a hyphen and one or more digits, e\.g\. \fB@projecttag\-12\fR\. Do not include the @ symbol in the pattern\. The replacement (\fB$1\fR) indicates that the first matched group (in parenthesis) should be used to generate the new tag, resulting in \fB@projecttag\fR being added to the entry\.
788
+ .
789
+ .P
790
+ \fI\fBAnnotating\fR\fR
791
+ .
792
+ .P
793
+ \fBnote\fR lets you append a note to the last entry\. You can specify a section to grab the last entry from with \fB\-s section_name\fR\. \fB\-e\fR will open your \fB$EDITOR\fR for typing the note, but you can also just include it on the command line after any flags\. You can also pipe a note in on STDIN (\fBecho "fun stuff"|doing note\fR)\. If you don\'t use the \fB\-r\fR switch, new notes will be appended to the existing notes, and using the \fB\-e\fR switch will let you edit and add to an existing note\. The \fB\-r\fR switch will remove/replace a note; if there\'s new note text passed when using the \fB\-r\fR switch, it will replace any existing note\. If the \fB\-r\fR switch is used alone, any existing note will be removed\.
794
+ .
795
+ .P
796
+ You can also add notes at the time of entry by using the \fB\-n\fR or \fB\-\-note\fR flag with \fBdoing now\fR, \fBdoing later\fR, or \fBdoing done\fR\. If you pass text to any of the creation commands which has multiple lines, everything after the first line break will become the note\.
797
+ .
798
+ .P
799
+ If a string passed to \fBnow\fR, \fBlater\fR, or \fBdone\fR has a parenthetical at the end, the parenthetical will be removed from the title and its contents added as a note\. So \fBdoing now Working on @project1 (Adding some unit tests)\fR would create an entry titled "Working on @project1" with a note "Adding some unit tests\." This is the equivalent of \fBdoing now Working on @project1 \-n "Adding some unit tests"\fR\.
800
+ .
801
+ .P
802
+ \fI\fBDisplaying entries:\fR\fR
803
+ .
804
+ .IP "" 4
805
+ .
806
+ .nf
807
+
808
+ show \- List all entries
809
+ recent \- List recent entries
810
+ today \- List entries from today
811
+ yesterday \- List entries from yesterday
812
+ last \- Show the last entry
813
+ grep \- Show entries matching text or pattern
814
+ .
815
+ .fi
816
+ .
817
+ .IP "" 0
818
+ .
819
+ .P
820
+ \fBdoing show\fR on its own will list all entries in the "Currently" section\. Add a section name as an argument to display that section instead\. Use "all" to display all entries from all sections\.
821
+ .
822
+ .P
823
+ You can filter the \fBshow\fR command by tags\. Simply list them after the section name (or \fBall\fR)\. The boolean defaults to \fBANY\fR, meaning any entry that contains any of the listed tags will be shown\. You can use \fB\-b ALL\fR or \fB\-b NONE\fR to change the filtering behavior: \fBdoing show all done cancelled \-b NONE\fR will show all tasks from all sections that do not have either \fI@done\fR or \fI@cancelled\fR tags\.
824
+ .
825
+ .P
826
+ Use \fB\-c X\fR to limit the displayed results\. Combine it with \fB\-a newest\fR or \fB\-a oldest\fR to choose which chronological end it trims from\. You can also set the sort order of the output with \fB\-s asc\fR or \fB\-s desc\fR\.
827
+ .
828
+ .P
829
+ The \fBshow\fR command can also show the time spent on a task if it has a \fI@done(date)\fR tag with the \fB\-t\fR option\. This requires that you include a \fB%interval\fR token in template \-> default in the config\. You can also include \fI@start(date)\fR tags, which override the timestamp when calculating the intervals\.
830
+ .
831
+ .P
832
+ If you have a use for it, you can use \fB\-o csv\fR on the show or view commands to output the results as a comma\-separated CSV to STDOUT\. Redirect to a file to save it: \fBdoing show all done \-o csv > ~/Desktop/done\.csv\fR\. You can do the same with \fB\-o json\fR\.
833
+ .
834
+ .P
835
+ \fBdoing yesterday\fR is great for stand\-ups (thanks to Sean Collins \fIhttps://github\.com/sc68cal\fR for that!)\. Note that you can show yesterday\'s activity from an alternate section by using the section name as an argument (e\.g\. \fBdoing yesterday archive\fR)\.
836
+ .
837
+ .P
838
+ \fBdoing on\fR allows for full date ranges and filtering\. \fBdoing on saturday\fR, or \fBdoing on one month to today\fR will give you ranges\. You can use the same terms with the \fBshow\fR command by adding the \fB\-f\fR or \fB\-\-from\fR flag\. \fBdoing show @done \-\-from "monday to friday"\fR will give you all of your completed items for the last week (assuming it\'s the weekend)\.
839
+ .
840
+ .P
841
+ You can also show entries matching a search string with \fBdoing grep\fR (synonym \fBdoing search\fR)\. If you want to search with regular expressions or for an exact match, surround your search query with forward slashes, e\.g\. \fBdoing search /project name/\fR\. If you pass a search string without slashes, it\'s treated as a fuzzy search string, meaning matches can be found as long as the characters in the search string are in order and with no more than three other characters between each\. By default searches are across all sections, but you can limit it to one with the \fB\-s SECTION_NAME\fR flag\. Searches can be displayed with the default template, or output as HTML, CSV, or JSON\.
842
+ .
843
+ .P
844
+ \fI\fBModifying the last entry\fR\fR
845
+ .
846
+ .P
847
+ If you want to make a change to the last entry added, use \fBdoing last \-e\fR\. The \fB\-e\fR flag opens the last entry (including note) in your editor, and when you close your editor, your doing file will be updated with any changes you made to the entry\.
848
+ .
849
+ .P
850
+ You can choose the last entry in a specific section by including the \fB\-s\fR flag, so \fBdoing last \-s Later \-e\fR would edit the most recent entry in the Later section\.
851
+ .
852
+ .P
853
+ You can also use text search or a tag filter to get an entry earlier than the most recent one\. A tag search with \fBdoing last \-\-tag=project1 \-e\fR will edit the last entry tagged \fB@project1\fR\. Multiple tags can be combined with commas, and you can use \fB\-\-bool\fR to specify whether the search is \fBAND\fR (matches all tags given), \fBOR\fR (matches any tag given), or \fBNOT\fR (matches none of the tags)\.
854
+ .
855
+ .P
856
+ You can edit the last entry that matches a search string with \fB\-\-search=QUERY\fR\. \fBQUERY\fR can either be a raw string, or you can surround it with slashes to search by regex (\fBdoing last \-\-search="/project\./" \-e\fR)\. If the string is raw text, fuzzy matching will be used, so the characters must be in order but can be separated by up to three other characters\.
857
+ .
858
+ .P
859
+ Both \fB\-\-tag\fR and \fB\-\-search\fR can be constrained to a single section with \fB\-s SECTION\fR\.
860
+ .
861
+ .P
862
+ \fI\fBViews\fR\fR
863
+ .
864
+ .IP "" 4
865
+ .
866
+ .nf
867
+
868
+ view \- Display a user\-created view
869
+ views \- List available custom views
870
+ .
871
+ .fi
872
+ .
873
+ .IP "" 0
874
+ .
875
+ .P
876
+ Display any of the custom views you make in \fB~/\.doingrc\fR with the \fBview\fR command\. Use \fBdoing views\fR to get a list of available views\. Any time a section or view is specified on the command line, fuzzy matching will be used to find the closest match\. Thus, \fBlat\fR will match \fBLater\fR, etc\.\.
877
+ .
878
+ .P
879
+ \fI\fBSections\fR\fR
880
+ .
881
+ .IP "" 4
882
+ .
883
+ .nf
884
+
885
+ sections \- List sections
886
+ choose \- Select a section to display from a menu
887
+ add_section \- Add a new section to the "doing" file
888
+ .
889
+ .fi
890
+ .
891
+ .IP "" 0
892
+ .
893
+ .P
894
+ \fI\fBUtilities\fR\fR
895
+ .
896
+ .IP "" 4
897
+ .
898
+ .nf
899
+
900
+ archive \- Move entries between sections
901
+ open \- Open the "doing" file in an editor (OS X)
902
+ config \- Edit the default configuration
903
+ .
904
+ .fi
905
+ .
906
+ .IP "" 0
907
+ .
908
+ .P
909
+ \fI\fBArchiving\fR\fR
910
+ .
911
+ .IP "" 4
912
+ .
913
+ .nf
914
+
915
+ COMMAND OPTIONS
916
+ \-k, \-\-keep=arg \- Count to keep (ignored if archiving by tag) (default: 5)
917
+ \-t, \-\-to=arg \- Move entries to (default: Archive)
918
+ \-b, \-\-bool=arg \- Tag boolean (default: AND)
919
+ .
920
+ .fi
921
+ .
922
+ .IP "" 0
923
+ .
924
+ .P
925
+ The \fBarchive\fR command will move entries from one section (default: \fBCurrently\fR) to another section (default: \fBArchive\fR)\.
926
+ .
927
+ .P
928
+ \fBdoing archive\fR on its own will move all but the most recent 5 entries from \fBcurrently\fR into the archive\.
929
+ .
930
+ .P
931
+ \fBdoing archive other_section\fR will archive from \fBother_section\fR to \fBArchive\fR\.
932
+ .
933
+ .P
934
+ \fBdoing archive other_section \-t alternate\fR will move from \fBother_section\fR to \fBalternate\fR\. You can use the \fB\-k\fR flag on any of these to change the number of items to leave behind\. To move everything, use \fB\-k 0\fR\.
935
+ .
936
+ .P
937
+ You can also use tags to archive\. You define the section first, and anything following it is treated as tags\. If your first argument starts with \fB@\fR, it will assume all sections and assume any following arguments are tags\.
938
+ .
939
+ .P
940
+ By default, tag archiving uses an \fBAND\fR boolean, meaning all the tags listed must exist on the entry for it to be moved\. You can change this behavior with \fB\-b OR\fR or \fB\-b NONE\fR (\fBALL\fR and \fBANY\fR also work)\.
941
+ .
942
+ .P
943
+ Example: Archive all Currently items for \fI@client\fR that are marked \fI@done\fR
944
+ .
945
+ .IP "" 4
946
+ .
947
+ .nf
948
+
949
+ doing archive @client @done
950
+ .
951
+ .fi
952
+ .
953
+ .IP "" 0
954
+ .
955
+ .SH "EXTRAS"
956
+ .
957
+ .SS "SHELL COMPLETION"
958
+ \fBBash:\fR See the file \fBdoing\.completion\.bash\fR \fIhttps://github\.com/ttscoff/doing/blob/master/doing\.completion\.bash\fR in the git repository for full bash completion\. Thanks to fcrespo82 \fIhttps://github\.com/fcrespo82\fR for getting it started \fIhttps://gist\.github\.com/fcrespo82/9609318\fR\.
959
+ .
960
+ .P
961
+ \fBZsh:\fR See the file \fBdoing\.completion\.zsh\fR \fIhttps://github\.com/ttscoff/doing/blob/master/doing\.completion\.zsh\fR in the git repository for zsh completion\. Courtesy of Gabe Anzelini \fIhttps://github\.com/gabeanzelini\fR\.
962
+ .
963
+ .P
964
+ \fBFish:\fR See the file \fBdoing\.fish\fR \fIhttps://github\.com/ttscoff/doing/blob/master/doing\.fish\fR in the git repository for Fish completion\. This is the least complete of all of the completions, but it will autocomplete the first level of subcommands, and your custom sections and views for the \fBdoing show\fR and \fBdoing view\fR commands\.