: setpos POS @ 64 /MOD 1+ ( status line ) SWAP 3 + ( gutter ) SWAP AT-XY ; : pos+ POS @ + 1024 MOD POS ! ; : cmv ( n -- , char movement ) acc@ * pos+ ; : $; 0acc ; : $g ACC @ selblk 0acc ; : $[ BLK> @ acc@ - selblk ; : $] BLK> @ acc@ + selblk ; : $h -1 cmv ; : $l 1 cmv ; : $k -64 cmv ; : $j 64 cmv ; : $w POS @ BLK( + BEGIN C@+ WS? UNTIL BEGIN C@+ WS? NOT UNTIL 1- BLK( - 1023 MIN POS ! ; : $W POS @ BLK( + BEGIN C@- WS? UNTIL BEGIN C@- WS? NOT UNTIL 1+ BLK( - DUP 0< IF DROP 0 THEN POS ! ;