diff --git a/src/nnn.c b/src/nnn.c index e7ec31dc..69cf19d7 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -2569,18 +2569,23 @@ static int filterentries(char *path, char *lastname) } else continue; // fallthrough + case KEY_F(5): // fallthrough case CONTROL('L'): - if (*ch == CONTROL('L')) { + if (*ch == CONTROL('L') || *ch == KEY_F(5)) { if (wln[1]) { ln[REGEX_MAX - 1] = ln[1]; ln[1] = wln[1] = '\0'; len = 1; ndents = total; - } else if (ln[REGEX_MAX - 1]) { /* Show the previous filter */ + } else if (*ch == CONTROL('L') && ln[REGEX_MAX - 1]) { + /* Show the previous filter */ ln[1] = ln[REGEX_MAX - 1]; ln[REGEX_MAX - 1] = '\0'; len = mbstowcs(wln, ln, REGEX_MAX); } + + if (*ch == KEY_F(5)) + goto end; } /* Go to the top, we don't know if the hovered file will match the filter */ @@ -2597,17 +2602,8 @@ static int filterentries(char *path, char *lastname) #endif case 27: /* Exit filter mode on Escape and Alt+key */ if (handle_alt_key(ch) != ERR) { - if (*ch == 27) { /* Handle Alt + Esc */ - if (wln[1]) { - ln[REGEX_MAX - 1] = ln[1]; - ln[1] = wln[1] = '\0'; - ndents = total; - *ch = CONTROL('L'); - } - } else { - unget_wch(*ch); - *ch = CONTROL('S'); - } + unget_wch(*ch); + *ch = CONTROL('S'); } goto end; } @@ -4145,7 +4141,7 @@ static void show_help(const char *path) "a1-4 Context 1-4%-7c(Sh)Tab Cycle context\n" "c/ Filter%-17c^N Toggle type-to-nav\n" "aEsc Exit prompt%-12c^L Redraw/clear prompt\n" - "c0 Lock%-14cAlt+Esc Clear filter, redraw\n" + "c0 Lock%-19cF5 Redraw\n" "c? Help, conf%-13c^G QuitCD\n" "cq Quit context%-7c^Q (Q) Quit (with err)\n" "1FILES\n" diff --git a/src/nnn.h b/src/nnn.h index a403f297..81e5c1a8 100644 --- a/src/nnn.h +++ b/src/nnn.h @@ -199,6 +199,7 @@ static struct key bindings[] = { { CONTROL('T'), SEL_SORT }, /* Redraw window */ { CONTROL('L'), SEL_REDRAW }, + { KEY_F(5), SEL_REDRAW }, /* Select current file path */ { CONTROL('J'), SEL_SEL }, { ' ', SEL_SEL },