diff --git a/README.md b/README.md index e9148c24..189acd19 100644 --- a/README.md +++ b/README.md @@ -216,7 +216,7 @@ Press ? in `nnn` to see the list anytime. / Filter Ins, ^T Toggle nav-as-you-type b Pin current dir ^W Go to pinned dir Tab, ^I Next context d Toggle detail view - `, ^/ Leader key LeaderN Go to/create context N + `, ^/ Leader key N, LeadN Go to/create context N Esc Exit prompt ^L Redraw/clear prompt ^G Quit and cd q Quit context Q, ^Q Quit ? Help, config diff --git a/nnn.1 b/nnn.1 index 92f4ef23..f97bc97a 100644 --- a/nnn.1 +++ b/nnn.1 @@ -67,7 +67,7 @@ Toggle detail view Next context, ask to create if none .It Ic `, ^/ Leader key -.It Ic LeaderN +.It Ic N, LeaderN Switch to context N .It Ic Esc Exit prompt diff --git a/src/nnn.c b/src/nnn.c index 5062f160..7130d330 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -2100,7 +2100,7 @@ static bool show_help(char *path) "e/ Filter Ins, ^T Toggle nav-as-you-type\n" "eb Pin current dir ^W Go to pinned dir\n" "8Tab, ^I Next context d Toggle detail view\n" - "a`, ^/ Leader key LeaderN Go to/create context N\n" + "a`, ^/ Leader key N, LeadN Go to/create context N\n" "cEsc Exit prompt ^L Redraw/clear prompt\n" "d^G Quit and cd q Quit context\n" "aQ, ^Q Quit ? Help, config\n" @@ -2874,9 +2874,15 @@ nochange: setdirwatch(); goto begin; case SEL_LEADER: // fallthrough - case SEL_CYCLE: + case SEL_CYCLE: // fallthrough + case SEL_CTX1: // fallthrough + case SEL_CTX2: // fallthrough + case SEL_CTX3: // fallthrough + case SEL_CTX4: if (sel == SEL_CYCLE) fd = '>'; + else if (sel >= SEL_CTX1 && sel <= SEL_CTX4) + fd = sel - SEL_CTX1 + '1'; else fd = get_input(NULL); @@ -2887,9 +2893,9 @@ nochange: case '&': presel = fd; goto nochange; - case '>': - case '.': - case '<': + case '>': // fallthrough + case '.': // fallthrough + case '<': // fallthrough case ',': r = cfg.curctx; if (fd == '>' || fd == '.') diff --git a/src/nnn.h b/src/nnn.h index 71f5c3ed..ec9c2c1c 100644 --- a/src/nnn.h +++ b/src/nnn.h @@ -50,6 +50,10 @@ enum action { SEL_CDLAST, SEL_LEADER, SEL_CYCLE, + SEL_CTX1, + SEL_CTX2, + SEL_CTX3, + SEL_CTX4, SEL_PIN, SEL_VISIT, SEL_FLTR, @@ -145,6 +149,11 @@ static struct key bindings[] = { /* Cycle contexts in forward direction */ { '\t', SEL_CYCLE }, { CONTROL('I'), SEL_CYCLE }, + /* Go to/create context N */ + { '1', SEL_CTX1 }, + { '2', SEL_CTX2 }, + { '3', SEL_CTX3 }, + { '4', SEL_CTX4 }, /* Mark a path to visit later */ { 'b', SEL_PIN }, /* Visit marked directory */