tvi: _, +, and | motions - neatvi - [fork] simple vi-type editor with UTF-8 support
(HTM) git clone git://src.adamsgaard.dk/neatvi
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 1f17a310ce1b7e9b2ce95245e2ba8e4f39843478
(DIR) parent 0b878c42f286e746c004dbd23127ed0fda2bf553
(HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
Date: Sun, 3 May 2015 19:40:10 +0430
vi: _, +, and | motions
Diffstat:
M vi.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
---
(DIR) diff --git a/vi.c b/vi.c
t@@ -170,11 +170,15 @@ static int vi_motionln(int *row, int cmd, int pre1, int pre2)
int mark;
switch (c) {
case '\n':
+ case '+':
*row = MIN(*row + pre, lbuf_len(xb) - 1);
break;
case '-':
*row = MAX(*row - pre, 0);
break;
+ case '_':
+ *row = MIN(*row + pre - 1, lbuf_len(xb) - 1);
+ break;
case '\'':
if ((mark = vi_read()) > 0 && (isalpha(mark) || mark == '\''))
if (lbuf_markpos(xb, mark) >= 0)
t@@ -352,6 +356,9 @@ static int vi_motion(int *row, int *col, int pre1, int pre2)
lbuf_eol(xb, row, col, +1);
lbuf_lnnext(xb, row, col, -1);
break;
+ case '|':
+ *col = pre - 1;
+ break;
case 127:
case TERMCTRL('h'):
*col = ren_cursor(ln, *col);
t@@ -421,7 +428,7 @@ static void vc_motion(int c, int pre1)
lbuf_eol(xb, &r1, &c1, -1);
lbuf_eol(xb, &r2, &c2, +1);
} else if ((mv = vi_motion(&r2, &c2, pre1, pre2))) {
- if (strchr("^0bBhlwW ", mv))
+ if (!strchr("fFtTeE$", mv))
closed = 0;
} else {
return;