ed: Improve F with repeated searches

Make F search from curpos+1 so that it's possible to search the
same word we've just found a second time. Previously, it would find
the word under the cursor.

Also, improve docs a bit.
This commit is contained in:
Virgil Dupras 2020-06-09 21:14:16 -04:00
parent 54bc2e4b96
commit 64ce8ab3e9
2 changed files with 15 additions and 16 deletions

29
blk/101
View File

@ -1,16 +1,15 @@
There are two buffers, IBUF (insert buffer) and FBUF (find
buffer). They are used as a typing target for the actions
described below. They both have a peculiar logic: when typing
is expected to fill a buffer, an empty value means "reuse
previous value". For example, typing "I foo I " inserts
"foofoo".
T ( n -- ): select line n for editing. T ( n -- ): select line n for editing.
P xxx: put typed line on selected line. P xxx: put typed IBUF on selected line.
U xxx: insert typed line on selected line. U xxx: insert typed IBUF on selected line.
F xxx: find typed string in block. F xxx: find typed FBUF in block, starting from current
I xxx: insert typed string at cursor. position+1. If not found, don't move.
E: Delete previously found string. I xxx: insert typed IBUF at cursor. "I" shadows core word. Use
"i" to access it.
Note that "I" shadows core word. Use "i" to access core word. E: From cursor, delete X characters, X = length of FBUF.

View File

@ -1,5 +1,5 @@
: _F ( F without _type and _pln. used in VE ) : _F ( F without _type and _pln. used in VE )
FBUF EDPOS @ _cpos ( a1 a2 ) FBUF EDPOS @ _cpos 1+ ( a1 a2 )
BEGIN BEGIN
C@+ ROT ( a2+1 c2 a1 ) C@+ ROT ( a2+1 a1+1 c1 c2 ) C@+ ROT ( a2+1 c2 a1 ) C@+ ROT ( a2+1 a1+1 c1 c2 )
= NOT IF DROP FBUF THEN ( a2 a1 ) = NOT IF DROP FBUF THEN ( a2 a1 )