▍ humdrum codex / glint v1.0.2
license AGPL-3.0

docs: refresh README keys (selection, copy/paste; drop terminal-config keys); add glint -h help

cff0fb479a3bb11cb778afdbb82e1df257626c77
humdrum <me@humdrum.me> · 2026-06-29 09:19

parent efa87207

docs: refresh README keys (selection, copy/paste; drop terminal-config keys); add glint -h help

- README keys table updated: adds Shift-arrow selection and Ctrl+C/X/V
  copy/cut/paste, lists Home/End; removes the Cmd+Delete terminal-mapping note
  so only out-of-the-box shortcuts are documented.
- glint -h / --h / -help / --help print a full reference of commands and editor
  keys (handled before flag parsing; --version unchanged).

2 files changed

README.md +6 −2
@@ -32,6 +32,7 @@ glint -d              # browse the daily-notes folder
 glint -v              # fuzzy picker over your vault, from anywhere
 glint -i              # fuzzy picker over your inbox
 glint -c              # interactive config walkthrough
+glint -h              # help: all commands and keys
 glint --version       # print version
 ```
 
@@ -43,11 +44,14 @@
 | Key | Action |
 | --- | --- |
 | type / arrows / `Enter` / `Backspace` / `Del` | edit and move (Up/Down move by visual line) |
-| mouse wheel | scroll the view (hold `Option`/`Shift` to select text while mouse mode is on) |
 | mouse click | move the cursor |
+| mouse wheel | scroll the view |
+| `Home` / `End` | start / end of line |
+| `Shift`+arrows · `Shift+Home/End` | select text (`Ctrl+Shift+←/→` selects by word) |
+| `Ctrl+C` / `Ctrl+X` / `Ctrl+V` | copy / cut / paste (system clipboard) |
 | `Alt+←` / `Alt+→` | move by word (also `Alt+b` / `Alt+f`) |
 | `Alt+Backspace` / `Ctrl+W` | delete the word before the cursor (`Alt+d` deletes the word after) |
-| `Ctrl+U` / `Ctrl+K` | delete to start / end of line (map `Cmd+Delete`→`Ctrl+U` in your terminal) |
+| `Ctrl+U` / `Ctrl+K` | delete to start / end of line |
 | `Ctrl+S` | save (an unnamed buffer prompts for a name → inbox) |
 | `Ctrl+P` | toggle the Glamour read preview |
 | `Ctrl+F` | fuzzy file picker (with live preview) |
main.go +49 −4
@@ -26,11 +26,56 @@ // version is the build version, overridden at release time via
 // -ldflags "-X main.version=<v>" (the Homebrew formula sets it).
 var version = "dev"
 
+const helpText = `glint — a modeless terminal markdown editor
+
+USAGE
+  glint [file]          open a file, or the fuzzy picker when no file is given
+  glint <command>
+
+COMMANDS  (each takes a short letter or the full word, one or two dashes:
+           -n / --n / -new / --new all work)
+  -n, --new [name]      new note in the current directory
+                        combine with -i or -v to target the inbox or vault
+  -t, --today           open today's daily note (in the vault)
+  -d, --daily           browse the daily-notes folder
+  -v, --vault           fuzzy picker over your vault, from anywhere
+  -i, --inbox           fuzzy picker over your inbox
+  -c, --config          interactive setup walkthrough (writes the config file)
+  -h, --help            show this help
+      --version         print the version
+
+EDITOR KEYS
+  Ctrl+S                save (an unnamed buffer prompts for a name)
+  Ctrl+P                toggle the read preview
+  Ctrl+F                fuzzy file picker
+  Ctrl+D                today's daily note
+  Ctrl+N                new note in the current directory
+  Ctrl+B                new note in the inbox
+  Ctrl+T                cycle theme (flexoki-light / flexoki-dark / charm)
+  Ctrl+C / Ctrl+X / Ctrl+V   copy / cut / paste (system clipboard)
+  Shift+arrows          select text (Ctrl+Shift+left/right by word)
+  Alt+left / Alt+right  move by word
+  Ctrl+U / Ctrl+K       delete to start / end of line
+  Ctrl+W                delete the word before the cursor
+  Ctrl+Q                quit (press twice if there are unsaved changes)
+  Esc                   back to the editor
+
+CONFIG
+  ~/.config/glint/config.toml   (run 'glint -c' to set it up)
+`
+
 func main() {
-	// Version is the one long-only flag (-v means --vault).
-	if len(os.Args) > 1 && (os.Args[1] == "--version" || os.Args[1] == "-version") {
-		fmt.Println("glint", version)
-		return
+	// Help and version short-circuit before flag parsing (-v means --vault, so
+	// version is long-only).
+	if len(os.Args) > 1 {
+		switch os.Args[1] {
+		case "-h", "--h", "-help", "--help":
+			fmt.Print(helpText)
+			return
+		case "--version", "-version":
+			fmt.Println("glint", version)
+			return
+		}
 	}
 
 	cfg, err := config.Load()