diff --git a/config.def.h b/config.def.h index b0b836c..cddd1aa 100644 --- a/config.def.h +++ b/config.def.h @@ -93,8 +93,10 @@ static KeyBinding basic_movement[] = { { { KEY(SRIGHT) }, movement, { .i = MOVE_WORD_START_NEXT } }, { { KEY(UP) }, movement, { .i = MOVE_LINE_UP } }, { { KEY(DOWN) }, movement, { .i = MOVE_LINE_DOWN } }, - { { KEY(PPAGE) }, cursor, { .m = window_page_up } }, - { { KEY(NPAGE) }, cursor, { .m = window_page_down } }, + { { CONTROL('u') }, cursor, { .m = window_page_up } }, + { { CONTROL('d') }, cursor, { .m = window_page_down } }, + { { CONTROL('y') }, cursor, { .m = window_line_up } }, + { { CONTROL('e') }, cursor, { .m = window_line_down } }, { { KEY(HOME) }, movement, { .i = MOVE_LINE_START } }, { { KEY(END) }, movement, { .i = MOVE_LINE_FINISH } }, { /* empty last element, array terminator */ }, diff --git a/window.c b/window.c index eb1c8e7..e76e5a7 100644 --- a/window.c +++ b/window.c @@ -632,27 +632,14 @@ size_t window_page_down(Win *win) { size_t window_line_up(Win *win) { Cursor *cursor = &win->cursor; - if (!cursor->line->prev) { - window_scroll_lines_up(win, 1); - return cursor->pos; - } - cursor->row--; - cursor->line = cursor->line->prev; - cursor->pos = pos_by_line(win, cursor->line) + cursor_offset(cursor); - return window_cursor_update(win); + window_scroll_lines_up(win, 1); + return cursor->pos; } size_t window_line_down(Win *win) { Cursor *cursor = &win->cursor; - if (!cursor->line->next) { - if (cursor->line == win->bottomline) - window_scroll_lines_down(win, 1); - return cursor->pos; - } - cursor->row++; - cursor->line = cursor->line->next; - cursor->pos = pos_by_line(win, cursor->line) + cursor_offset(cursor); - return window_cursor_update(win); + window_scroll_lines_down(win, 1); + return cursor->pos; } void window_update(Win *win) {