From 9431213e499d403db14cfc86eebbf0099193b86a Mon Sep 17 00:00:00 2001
From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sun, 4 Aug 2019 14:27:35 +0530
Subject: [PATCH] Support / as an additional leader key

---
 README.md | 4 +++-
 src/nnn.c | 7 ++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index b4c9671c..ff608cdf 100644
--- a/README.md
+++ b/README.md
@@ -276,10 +276,10 @@ Press <kbd>?</kbd> in `nnn` to see the list anytime.
           ← h  Parent dir  ~ ` @ -  HOME, /, start, last
         ↵ → l  Open file/dir     .  Toggle show hidden
     Home g ^A  First entry    G ^E  Last entry
-            /  Filter       Ins ^T  Toggle nav-as-you-type
             b  Pin current dir  ^B  Go to pinned dir
        Tab ^I  Next context      d  Toggle detail view
          , ^/  Leader key  N LeadN  Context N
+            /  Filter/Lead  Ins ^T  Toggle nav-as-you-type
           Esc  Exit prompt      ^L  Redraw/clear prompt
            ^G  Quit and cd       q  Quit context
          Q ^Q  Quit              ?  Help, config
@@ -326,6 +326,8 @@ The Leader key provides a powerful multi-functional navigation mechanism. It is
 | <kbd>~</kbd> <kbd>`</kbd> <kbd>@</kbd> <kbd>-</kbd> | Go to HOME, `/`, start, last visited dir |
 | <kbd>q</kbd> | Quit context |
 
+When the filter is on, <kbd>/</kbd> works as an additional Leader key.
+
 #### Contexts
 
 Contexts serve the purpose of exploring multiple directories simultaneously. 4 contexts are available. The status of the contexts are shown in the top left corner:
diff --git a/src/nnn.c b/src/nnn.c
index c7179d4d..a03e66ab 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -1798,6 +1798,11 @@ static int filterentries(char *path)
 
 				redraw(path);
 				goto end;
+			case '/': /* works as Leader key in filter mode */
+				*ch = CONTROL('_'); // fallthrough
+				if (len == 1)
+					cur = oldcur;
+				goto end;
 			case '?':  /* '?' is an invalid regex, show help instead */
 				if (len == 1) {
 					cur = oldcur;
@@ -2808,10 +2813,10 @@ static bool show_help(const char *path)
 		"a← h  Parent dir  ~ ` @ -  HOME, /, start, last\n"
 	      "8↵ → l  Open file/dir     .  Toggle show hidden\n"
 	  "4Home g ^A  First entry    G ^E  Last entry\n"
-		  "c/  Filter       Ins ^T  Toggle nav-as-you-type\n"
 		  "cb  Pin current dir  ^B  Go to pinned dir\n"
 	     "7Tab ^I  Next context      d  Toggle detail view\n"
 	       "9, ^/  Leader key  N LeadN  Context N\n"
+		  "c/  Filter/Lead  Ins ^T  Toggle nav-as-you-type\n"
 		"aEsc  Exit prompt      ^L  Redraw/clear prompt\n"
 		 "b^G  Quit and cd       q  Quit context\n"
 	       "9Q ^Q  Quit              ?  Help, config\n"
-- 
2.51.0