# `/` search on a TERMINAL pane: the same tag input as a file pane, searching # the shell's own scrollback (the plain text view Look reads, prompt rows # hidden). Results land in a +Search OUTPUT BUFFER — a file pane with no file # behind it, so its tag has no Save — and point at `@p1:LINE:COL-ENDCOL` (the terminal's serial), the # look target that names a live pane, since a terminal has no path. n/N SELECT # the next/prev row in the buffer and open nothing; Enter — the look chord — # is what scrolls the terminal to that line of its scrollback and selects the # span the row names. # PLACEMENT, and this script is the proof: an output buffer is NOT a document # — it is the result list of the pane that asked for it — so even here, with no # doc pane in the session for it to join, it does NOT take a column of its own. # It splits BELOW the shell it came from: every snap below stays ONE column, # the shell's tag and the +Search tag both starting at x=0, thirty rows split # between them, and nothing shifts sideways. start 31 140 wait 8000 Newcol Joincol stable 700 20000 # print something to search (a bare boot starts in tty mode; the marker is # split so the echoed command line, which normal mode hides anyway, can never # be the thing that matched) text printf 'x MA''RK a\nzz\nx MA''RK b\nzz\nx MA''RK c\n' key enter wait 10000 MARK c stable 700 10000 key c-b stable 600 8000 snap output # / types the pattern into the terminal's tag exactly as on a file pane key / stable 400 5000 text MARK stable 400 5000 snap typing # Enter opens the results buffer — three @p1:LINE:COL rows — and goes to the # first of them: the terminal's cursor lands on that scrollback line, on the # matched SPAN (cols 3..6, past the leading "x ") — not the start of the line, # and selected rather than merely parked on. No `n` was pressed to get here. key enter wait 10000 @p1:2:3 stable 700 15000 snap results snapstyle results # n walks on to the next row, Enter looks it key n key enter stable 700 15000 snap second # N walks back one row, Enter looks it key N key enter stable 700 15000 snap back # a no-match search opens an empty buffer of its own — and n does not stop # there. The walk is a RING across panes, not one buffer's rows, so with # nothing look-able in the empty list it carries on into the one that does # have rows and resumes it a row past where the N above left off. key / text zzqq key enter stable 700 10000 key n stable 400 5000 snap nomatch # right-clicking a word that names no file is the same search (acme button 3), # but NOT in tty mode: there the click belongs to the program on the other end, # so the buffer stays empty. Col 5 row 4 is the `M` of the first `x MARK a`, # in the shell's body in both modes (normal hides the prompt row, leaving it # blank, so the output rows sit at the same place either way). # The left click first is the price of the step above: it left the cursor in # the results buffer, and c-b is read by the ACTIVE pane — there is no tty # behind a +Search to toggle. press left 5 5 release left 5 5 stable 400 5000 key c-b stable 600 8000 press right 5 5 release right 5 5 stable 700 10000 snap ttyinert # back in normal mode the same click searches for MARK key c-b stable 600 8000 press right 5 5 release right 5 5 wait 10000 @p1:2:3 stable 700 15000 snap rightsearch