# THE PATH IN A TAG IS SELECTABLE, NOT EDITABLE. # tag_col/tag_anchor index the WHOLE rendered tag (prefix ++ tail) — one # coordinate space, no conversions: the renderer prints the cursor at tag_col # verbatim and a mouse column IS a tag column. So motions and sweeps reach the # mode indicator and the path, a selection over them yanks and executes like # any other text, and the ONLY thing fenced off is EDITING: every edit op # measures from the first editable column (tagPrefix().len) and does nothing to # the left of it. lines c.txt 4 start 30 100 c.txt wait 8000 Kill Newcol wait 8000 c.txt stable 700 20000 snap start # --- keyboard: select part of the PATH --- # `:` parks at the tail's start (the first EDITABLE column) — unchanged, that # is what makes `:w` the same two keystrokes every time key : stable 400 5000 snap colon # 0 goes to column 0 of the RENDERED tag: the "N" of NOR, a column the keyboard # could not name at all before key 0 stable 400 5000 snap col0 # W: the long word it traverses, landing the cursor on the space after "NOR" key W stable 400 5000 snap sel-nor # E: extend to the end of the next long word — the style capture shows ONE # highlighted run from that space through the last char of the path key E stable 400 5000 snap sel-path snapstyle sel-path # y yanks the selection. Esc hands the body back; p pastes the register into # the file, which is the only way a snapshot can see what was yanked. key y key esc settle 100 stable 400 5000 key p stable 400 5000 snap yanked-path # --- mouse: a sweep across the prefix/tail boundary --- # a left press on a tagline anchors a TAG sweep (not the body's block # selection), so the drag paints one run of the tag row. Press at col 12 # (inside the path), release at col 46 (just past "Save" in the tail): the # highlight crosses the boundary — screen col 40, where the tail starts — in # one piece, which is the whole point of there being one coordinate space. press left 12 2 drag left 30 2 drag left 46 2 release left 46 2 stable 400 5000 snap drag-cross snapstyle drag-cross # --- the path is inert to editing --- # a plain click INSIDE the path leaves the cursor there (no clamp into the # tail), in insert mode like any tag click — and then typing and backspace do # NOTHING: the tag row below is byte-identical to the one in `yanked-path`. press left 12 2 release left 12 2 stable 400 5000 text ZZNOPE key bs key bs stable 400 5000 snap path-inert