hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/todo.1
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-10-03 19:38:22 +0200
committerhachem <im@hachem.wtf>2026-10-03 19:38:22 +0200
commit419700c1bab1e37993260bd86ffe6fddc7d5df49 (patch)
tree820c9eeff98827c2e4f8206d5bf026b6d011c92e /todo.1
parent41005a0d4102843cefeed911a0fa8bd5774d998c (diff)
feat: archive + important
Diffstat (limited to 'todo.1')
-rw-r--r--todo.188
1 files changed, 84 insertions, 4 deletions
diff --git a/todo.1 b/todo.1
index ce630c6..107bd50 100644
--- a/todo.1
+++ b/todo.1
@@ -49,6 +49,12 @@ instead of a checkbox.
.BI > " text"
A note on the task above it: extra description, shown indented and dimmed with
no checkbox. Notes move with their task.
+.TP
+.BI ! " name"
+An important task, shown bold and in capitals with the leading
+.B !
+kept and a trailing one added
+.RB ( "!NAME!" ).
.PP
Within each section, items are grouped \(em required, then optional, then done
\(em with a blank line between the groups.
@@ -165,6 +171,53 @@ and notes as one block.
.BR J ", " K
Move the item down or up. A task moves with its subtasks and notes; a section
heading moves the whole section.
+.TP
+.BR >> ", " <<
+Demote or promote the item.
+.B >>
+turns a task into a subtask and deepens a section
+.RB ( = " to " == );
+.B <<
+turns a subtask back into a task and shallows a section
+.RB ( == " to " = ).
+.TP
+.B .
+Repeat the last change, such as a
+.BR dd ", " x ", " p ", " >> ", "
+a state toggle, or an insert started with
+.BR o ", " i ", " A ", or " c
+through to the
+.B escape
+that ended it. The count is not repeated.
+.SS "Visual mode"
+.TP
+.B V
+Start a line-wise selection anchored at the cursor.
+.B j
+and
+.B k
+extend it. Then
+.B d
+cuts the selected items (also yanking them),
+.B y
+yanks them, and
+.B space
+cycles the state of each selected task.
+.B escape
+cancels.
+.SS Folding
+.TP
+.BR za ", " zo ", " zc
+Fold the section at the cursor:
+.B za
+toggles it,
+.B zo
+opens it, and
+.B zc
+closes it. A folded heading hides its contents and is marked as collapsed. Each heading
+also shows a
+.RB ( done / total )
+count of the tasks within it.
.SS Other
.TP
.BR / ", " n ", " N
@@ -179,9 +232,6 @@ is pressed in normal mode.
.TP
.BR u ", " "ctrl-r"
Undo and redo.
-.TP
-.B ?
-Show the key bindings on screen; any key returns.
.SH "INSERT MODE"
Type to insert at the cursor.
.B enter
@@ -203,11 +253,17 @@ completes the command name, or the theme name after
Write the list to its file.
.TP
.B :q
-Quit, discarding changes since the last write.
+Quit. Refuses if there are unsaved changes.
+.TP
+.B :q!
+Quit, discarding any unsaved changes.
.TP
.BR :wq ", " :x
Write and quit.
.TP
+.BR :help ", " :?
+Show the key bindings on screen; any key returns.
+.TP
.B :reset
Set every item back to todo, clearing all done and doing states.
.TP
@@ -218,6 +274,13 @@ Remove every item, emptying the list.
Re-sort the list, regrouping items (required, optional, done) within each
section. Useful after reordering or hand-editing.
.TP
+.B :archive
+Move every done item out of the list, appending it to the archive file. Unlike
+.BR D ,
+which discards them, this keeps a record you can revisit. The archive is itself
+a valid list, so it can be opened with
+.BR todo .
+.TP
.BI :theme " name"
Switch the colour theme to
.I name
@@ -245,12 +308,29 @@ or a note
.RB ( "> text" ).
Override the location with
.BR $TODO_FILE .
+.TP
+.B ~/.todo.archive.txt
+Where
+.B :archive
+appends done items. It is the list file's name with
+.I .txt
+replaced by
+.IR .archive.txt ,
+or the list file's name with
+.I .archive
+appended. Override it with
+.BR $TODO_ARCHIVE .
.SH ENVIRONMENT
.TP
.B TODO_FILE
Path to the list file, used instead of
.BR ~/.todo.txt .
.TP
+.B TODO_ARCHIVE
+Path to the archive file for
+.BR :archive ,
+used instead of the name derived from the list file.
+.TP
.B LC_TIME
Sets the locale for the date and time in the header.
.SH "EXIT STATUS"