Merge branch 'feature/vim-like'

This commit is contained in:
Tatsuya Kinoshita
2013-10-12 19:59:25 +09:00
2 changed files with 42 additions and 0 deletions

39
main.c
View File

@@ -1597,6 +1597,18 @@ DEFUN(pgBack, PREV_PAGE, "Move to previous page")
* (Currentbuf->LINES - 1)), prec_num ? B_SCROLL : B_NORMAL);
}
/* Move half page forward */
DEFUN(hpgFore, NEXT_HALF_PAGE, "Scroll down half page")
{
nscroll(searchKeyNum() * (Currentbuf->LINES / 2 - 1), B_NORMAL);
}
/* Move half page backward */
DEFUN(hpgBack, PREV_HALF_PAGE, "Scroll up half page")
{
nscroll(-searchKeyNum() * (Currentbuf->LINES / 2 - 1), B_NORMAL);
}
/* 1 line up */
DEFUN(lup1, UP, "Scroll up one line")
{
@@ -3602,6 +3614,33 @@ DEFUN(lastA, LINK_END, "Go to the last link")
displayBuffer(Currentbuf, B_NORMAL);
}
/* go to the nth anchor */
DEFUN(nthA, LINK_N, "Go to the nth link")
{
HmarkerList *hl = Currentbuf->hmarklist;
BufferPoint *po;
Anchor *an;
int n = searchKeyNum();
if (n < 0 || n > hl->nmark) return;
if (Currentbuf->firstLine == NULL)
return;
if (!hl || hl->nmark == 0)
return;
po = hl->marks + n-1;
an = retrieveAnchor(Currentbuf->href, po->line, po->pos);
if (an == NULL)
an = retrieveAnchor(Currentbuf->formitem, po->line, po->pos);
if (an == NULL) return;
gotoLine(Currentbuf, po->line);
Currentbuf->pos = po->pos;
arrangeCursor(Currentbuf);
displayBuffer(Currentbuf, B_NORMAL);
}
/* go to the next anchor */
DEFUN(nextA, NEXT_LINK, "Move to next link")
{

View File

@@ -11,6 +11,8 @@ extern void pushEvent(int cmd, void *data);
extern MySignalHandler intTrap(SIGNAL_ARG);
extern void pgFore(void);
extern void pgBack(void);
extern void hpgFore(void);
extern void hpgBack(void);
extern void lup1(void);
extern void ldown1(void);
extern void ctrCsrV(void);
@@ -61,6 +63,7 @@ extern void submitForm(void);
extern void followForm(void);
extern void topA(void);
extern void lastA(void);
extern void nthA(void);
extern void onA(void);
extern void nextA(void);