vi: support more commands for range selection
Add 'F', 'T' and '|' as commands that can be used to specify a range for change/delete/yank operations. function old new delta .rodata 105129 105135 +6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 6/0) Total: 6 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
15f4ac3ca9
commit
d4c46037a6
@ -3048,7 +3048,7 @@ static int find_range(char **start, char **stop, char c)
|
|||||||
buftype = WHOLE;
|
buftype = WHOLE;
|
||||||
if (--cmdcnt > 0)
|
if (--cmdcnt > 0)
|
||||||
do_cmd('j');
|
do_cmd('j');
|
||||||
} else if (strchr("^%$0bBeEfth\b\177", c)) {
|
} else if (strchr("^%$0bBeEfFtTh|\b\177", c)) {
|
||||||
// These cmds operate on char positions
|
// These cmds operate on char positions
|
||||||
buftype = PARTIAL;
|
buftype = PARTIAL;
|
||||||
do_cmd(c); // execute movement cmd
|
do_cmd(c); // execute movement cmd
|
||||||
@ -3090,8 +3090,8 @@ static int find_range(char **start, char **stop, char c)
|
|||||||
q = end_line(q);
|
q = end_line(q);
|
||||||
}
|
}
|
||||||
|
|
||||||
// backward char movements don't include start position
|
// movements which don't include end of range
|
||||||
if (q > p && strchr("^0bBh\b\177", c)) q--;
|
if (q > p && strchr("^0bBFTh|\b\177", c)) q--;
|
||||||
|
|
||||||
*start = p;
|
*start = p;
|
||||||
*stop = q;
|
*stop = q;
|
||||||
|
Loading…
Reference in New Issue
Block a user