Introduction
Introduction Statistics Contact Development Disclaimer Help
tvi: ^E and ^Y commands - neatvi - [fork] simple vi-type editor with UTF-8 supp…
git clone git://src.adamsgaard.dk/neatvi
Log
Files
Refs
README
---
commit 1211e16126a16bac24629d9810462a22a722e75c
parent bc9dd7dfbc434e6260ca5002cbc6501ced9adcb6
Author: Ali Gholami Rudi <[email protected]>
Date: Tue, 12 May 2015 18:11:27 +0430
vi: ^E and ^Y commands
Diffstat:
M vi.c | 36 ++++++++++++++++++++++++++---…
1 file changed, 30 insertions(+), 6 deletions(-)
---
diff --git a/vi.c b/vi.c
t@@ -611,6 +611,24 @@ static void vc_join(int arg)
sbuf_free(sb);
}
+static int vi_scrollforeward(int cnt)
+{
+ if (xtop >= lbuf_len(xb) - 1)
+ return 1;
+ xtop = MIN(lbuf_len(xb) - 1, xtop + cnt);
+ xrow = MAX(xrow, xtop);
+ return 0;
+}
+
+static int vi_scrollbackward(int cnt)
+{
+ if (xtop == 0)
+ return 1;
+ xtop = MAX(0, xtop - cnt);
+ xrow = MIN(xrow, xtop + xrows - 1);
+ return 0;
+}
+
static void vi(void)
{
int mark;
t@@ -643,21 +661,27 @@ static void vi(void)
redraw = 1;
break;
case TERMCTRL('b'):
- if (xtop == 0)
+ if (vi_scrollbackward((pre1 ? pre1 : 1) * (xro…
break;
- xtop = MAX(0, xtop - xrows + 1);
- xrow = MIN(xrow, xtop + xrows - 1);
lbuf_postindents(xb, &xrow, &xcol);
redraw = 1;
break;
case TERMCTRL('f'):
- if (xtop >= lbuf_len(xb) - 1)
+ if (vi_scrollforeward((pre1 ? pre1 : 1) * (xro…
break;
- xtop = MIN(lbuf_len(xb) - 1, xtop + xrows - 1);
- xrow = MAX(xrow, xtop);
lbuf_postindents(xb, &xrow, &xcol);
redraw = 1;
break;
+ case TERMCTRL('e'):
+ if (vi_scrollforeward((pre1 ? pre1 : 1)))
+ break;
+ redraw = 1;
+ break;
+ case TERMCTRL('y'):
+ if (vi_scrollbackward((pre1 ? pre1 : 1)))
+ break;
+ redraw = 1;
+ break;
case TERMCTRL('r'):
lbuf_redo(xb);
redraw = 1;
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.