src/nnn.c | 18 +++++++++++++++++- src/nnn.h | 2 ++ diff --git a/src/nnn.c b/src/nnn.c index 653919f302b5102329441860d3c657aa3ff2b291..9d05ed83736e9f4bfb141bb725a16e058581e085 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -5107,6 +5107,7 @@ "8B (,) Book(mark)%11b ^/ Select bookmark\n" "a1-4 Context%11(Sh)Tab Cycle/new context\n" "62Esc ^Q Quit%20q Quit context\n" "b^G QuitCD%18Q Pick/err, quit\n" + "b^y Next young file\n" "0\n" "1FILTER & PROMPT\n" "c/ Filter%17^N Toggle type-to-nav\n" @@ -6115,6 +6116,20 @@ break; case SEL_END: move_cursor(ndents - 1, 1); break; + case SEL_YOUNG: + { + for (int r = cur;;) { + if (++r >= ndents) + r = 0; + if (r == cur) + break; + if (pdents[r].flags & FILE_YOUNG) { + move_cursor(r, 0); + break; + } + } + break; + } default: /* case SEL_FIRST */ { int c = get_input(messages[MSG_FIRST]); @@ -7196,7 +7211,8 @@ case SEL_CTRL_U: // fallthrough case SEL_HOME: // fallthrough case SEL_END: // fallthrough case SEL_FIRST: // fallthrough - case SEL_JUMP: + case SEL_JUMP: // fallthrough + case SEL_YOUNG: if (ndents) { g_state.move = 1; handle_screen_move(sel); diff --git a/src/nnn.h b/src/nnn.h index d476ddd23683251f108525a6679c1d4144c51eb7..3cf132ba91c8893badb11b427acac28d7bbc7860 100644 --- a/src/nnn.h +++ b/src/nnn.h @@ -58,6 +58,7 @@ SEL_HOME, SEL_END, SEL_FIRST, SEL_JUMP, + SEL_YOUNG, SEL_CDHOME, SEL_CDBEGIN, SEL_CDLAST, @@ -164,6 +165,7 @@ /* Go to first file */ { '\'', SEL_FIRST }, /* Jump to an entry number/offset */ { 'J', SEL_JUMP }, + { CONTROL('Y'), SEL_YOUNG }, /* HOME */ { '~', SEL_CDHOME }, /* Initial directory */