summaryrefslogtreecommitdiff
path: root/docs/tags.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tags.md')
-rw-r--r--docs/tags.md60
1 files changed, 40 insertions, 20 deletions
diff --git a/docs/tags.md b/docs/tags.md
index f299c859..ecca046a 100644
--- a/docs/tags.md
+++ b/docs/tags.md
@@ -44,34 +44,54 @@ asks; there bare `Del` gives the rows to the nearest document above, as it
always has. A collapsed pane is never asked about, and collapsed neighbors
are passed over: they only keep a weight for later.
-Left-click a tag to place its caret; drag to select text, then type to
-replace it. Arrow keys, Home, End, Backspace and Delete edit the line.
-Tags reveal the caret horizontally when text is wider than their column.
-Escape returns to the body, keeping command-text edits. The existing Exec
-and Look gestures still apply; the workspace tag is no longer an inert
-left-click target. Pasted text goes to the focused tag, not to the file or
-embedded shell beneath it.
+A tag is a text like a pane's body: pane tags, column tags and the
+workspace tag all edit with the body's own normal and insert modes, undo
+included, and may hold more than one line. A tag with a newline in it takes
+a row per line, up to eight: a pane's tag leaves its body at least one row
+and a collapsed pane shows only the first line; the column and workspace
+tags take no more than a third of the screen, and the panes below move down
+to make room. The path, the dirty marker and a PDF's page at the start of a
+pane tag are computed, never stored: the tag's cursor, selections and undo
+live in the text after them, so a rename or a save never moves the cursor.
+The mouse still sees the whole line -- a sweep selects across the path and
+the commands, and Look and Exec work on either -- but the keyboard moves only
+in the tag's own text: `0` goes to its start, not the path's.
-Keyboard entry returns to the tag's last cursor position. The first entry into
-a pane tag starts at its commands; clicking always chooses a new position.
-Each pane, column and workspace tag remembers its own position during the
-session. Shortened text clamps the saved cursor to a valid character boundary.
+Left-click a tag or a header to type into it at the click, in insert mode;
+tags reveal the caret horizontally when text is wider than their column.
+Esc is normal mode, where everything a body's normal mode does works, and
+Enter looks up and Tab executes the word under the cursor (or an explicit
+selection), in either mode. Executing gives the keyboard back to the body
+first, so `Del`, `Kill` and `Restore` never return into a tag that is gone.
+Pasted text goes to the focused tag, not to the file or embedded shell
+beneath it.
-In normal mode, `h` and `l` move within the tag, `k` stays on the single line,
-and `j` returns to the panel like Escape. Uppercase `HJKL` move between pane
-tags. From the top pane's `:` tag, `K` reaches the column and another `K` reaches
-the workspace; `J` walks back down. Enter or Tab on a header command in
-normal mode executes it, as before. `i`/`a`/`I`/`A` switch to editing the
-header. In insert mode, letters type normally, Enter is Look and Tab is Exec,
-as in pane tags.
+`:` is the one key a tag and a body do not share: in the body's normal mode
+it focuses the pane's tag in normal mode, and in the tag's normal mode it
+goes back to the body; in a column or workspace tag it goes back to the
+active pane. Each pane, column and workspace tag remembers its own cursor
+during the session; the first `:` into a pane tag starts on its `Save`. A
+tag's text changing under it (a 9P write, a shorter tag) pulls the cursor
+back inside it.
+
+Moving between tags is the window keys' job, as it is between bodies
+(`Ctrl-w` or `SPC w` with `h/j/k/l`): they move to the neighbouring pane's
+body. Up from a pane with nothing above it reaches its column's tag, then
+the workspace's; Down comes back the same way, and Left and Right walk the
+column tags.
+
+Search (`/`), pipe (`|`) and Save's path prompt are not typed into the tag:
+each gets a line of its own on the pane's notice band, with the body's
+insert-mode keys, and leaves the tag as it was.
Pane filenames and commands now have a single separator space rather than
generated right-alignment padding. Intentionally customized spacing is kept.
## File names
-Editing a file pane's name creates a draft. Enter confirms the new buffer
-name; Escape or leaving the tag cancels the draft. Confirmation changes the
+Clicking a file pane's name starts a draft of it, typed into at the click.
+Enter or Tab confirms the new buffer name; Escape or leaving the pane
+cancels the draft. Confirmation changes the
buffer's save target and marks it unsaved. It does **not** rename, create or
overwrite a disk file. A subsequent explicit `Save` writes the buffer to its
committed name. Executing a pane-tag command confirms a valid name draft