# `/` file search: the pattern types into the tag (persistent, no popup); # Enter searches the buffer in-core and writes `path:LINE:COL-ENDCOL text` into # a +Search OUTPUT BUFFER (a file pane with no file behind it — no Save in its # tag) — AND GOES TO THE FIRST HIT, which is the step `n` is and the look Enter # is, run for you in that buffer. From there n/N SELECT the next/prev row and # open nothing, and Enter — the look chord — is what scrolls the file pane to # the hit AND SELECTS IT: the row names the match's whole span, not just where # it starts. Esc abandons the input; a no-match search opens an EMPTY buffer # (every search gets its own, stacked under the pane) with nothing in it for n # to stop on, and goes nowhere. file g.txt l1\nMARK a\nl3\nl4\nl5\nMARK b\nl7\nl8\nl9\nMARK c\nl11\nl12 # Builtins announce themselves by default, and an announcement is a band at # the top of the body -- which moves every row this script clicks. What the # verbs do is what is under test, not the announcement. config Verbose off start 31 180 -n 3 wait 8000 g.txt stable 700 20000 # open g.txt: type the name in the shell, look it (as in look-file.snap) press left 5 9 release left 5 9 stable 400 5000 key i text g.txt key esc settle 100 stable 400 5000 press right 6 9 release right 6 9 wait 10000 MARK a stable 700 15000 snap opened # / starts the search input in the tag; the pattern is visible while typing key / stable 400 5000 text MARK stable 400 5000 snap typing key enter # Locations stack the target under its line now, so the two halves are # two rows: wait for both rather than for one joined line. wait 10000 g.txt:2:1-4 wait 10000 MARK a stable 700 10000 # ...and the submit already looked result 1: the file scrolled to line 2 and # the four cells the pattern matched there came up selected — the styles below # are what prove the second half of that. No `n` was pressed to get here. snap results snapstyle results # n/N walk on from there, one row of the list per press, Enter looking what # the step selected key n key enter stable 700 15000 snap second key n key enter stable 700 15000 snap third # N walks back up to result 2 (line 6), Enter looks it key N key enter stable 700 15000 snap back # Esc abandons the input: the tag tail is restored key / text zz key esc settle 100 stable 400 5000 snap cancel # a no-match search: nothing in the empty list for n to stop on, so the ring # carries it back into the list that has rows and it resumes there key / text zzqq key enter stable 700 10000 key n stable 400 5000 snap nomatch