diff options
author | C. McEnroe | 2020-02-12 01:00:39 -0500 |
---|---|---|
committer | C. McEnroe | 2020-02-12 01:00:39 -0500 |
commit | aab9f76fa0330ff68a4279db4a6de2fec5973d30 (patch) | |
tree | 1b8aaa5a9510e4e305924d7c44f89397e5669c64 /ui.c | |
parent | d73085eaa93a0217a679556f7a37a80421877b69 (diff) |
Add C-v and M-v
I figure there should be some way to scroll without keypad, and apparently this is what emacs offers...
Diffstat (limited to 'ui.c')
-rw-r--r-- | ui.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ui.c b/ui.c index 12936ae..328db1b 100644 --- a/ui.c +++ b/ui.c @@ -171,7 +171,7 @@ static const char *ExitFocusMode = "\33[?1004l"; static const char *EnterPasteMode = "\33[?2004h"; static const char *ExitPasteMode = "\33[?2004l"; -// Gain use of C-q, C-s, C-c, C-z, C-y, C-o. +// Gain use of C-q, C-s, C-c, C-z, C-y, C-v, C-o. static void acquireKeys(void) { struct termios term; int error = tcgetattr(STDOUT_FILENO, &term); @@ -182,6 +182,7 @@ static void acquireKeys(void) { #ifdef VDSUSP term.c_cc[VDSUSP] = _POSIX_VDISABLE; #endif + term.c_cc[VLNEXT] = _POSIX_VDISABLE; term.c_cc[VDISCARD] = _POSIX_VDISABLE; error = tcsetattr(STDOUT_FILENO, TCSADRAIN, &term); if (error) err(EX_OSERR, "tcsetattr"); @@ -211,6 +212,7 @@ static void errExit(void) { X(KeyMetaL, "\33l") \ X(KeyMetaM, "\33m") \ X(KeyMetaU, "\33u") \ + X(KeyMetaV, "\33v") \ X(KeyMetaSlash, "\33/") \ X(KeyFocusIn, "\33[I") \ X(KeyFocusOut, "\33[O") \ @@ -802,6 +804,7 @@ static void keyCode(int code) { break; case KeyMetaL: bufferList(&window->buffer); break; case KeyMetaM: waddch(window->pad, '\n'); break; case KeyMetaU: windowScrollUnread(window); + break; case KeyMetaV: windowScroll(window, +(PAGE_LINES - 2)); break; case KEY_BACKSPACE: edit(id, EditDeletePrev, 0); break; case KEY_DC: edit(id, EditDeleteNext, 0); @@ -843,6 +846,7 @@ static void keyCtrl(wchar_t ch) { break; case L'P': windowShow(windows.active->prev); break; case L'U': edit(id, EditDeleteHead, 0); break; case L'W': edit(id, EditDeletePrevWord, 0); + break; case L'V': windowScroll(windows.active, -(PAGE_LINES - 2)); break; case L'Y': edit(id, EditPaste, 0); } } |