]> Sergey Matveev's repositories - nnn.git/commitdiff
Support jump to initial directory
authorArun Prakash Jana <engineerarun@gmail.com>
Sun, 23 Apr 2017 21:06:49 +0000 (02:36 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 23 Apr 2017 21:06:49 +0000 (02:36 +0530)
This change remaps the & key. However, / is more relevant for filter and & makes more sense wrt. address.

README.md
config.def.h
nlay
nnn.1
nnn.c

index bcb6a635820206010adf4c11fea7fe00552988ac..02639f489cd84ae52440a30b01d51486f0d3faf5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -139,9 +139,10 @@ nnn needs libreadline, libncursesw (on Linux or ncurses on OS X) and standard li
 | `Right`, `Enter`, `l`, `^M` | Open file or enter dir |
 | `Left`, `Backspace`, `h`, `^H` | Go to parent dir |
 | `~` | Jump to HOME dir |
+| `&` | Jump to initial dir |
 | `-` | Jump to last visited dir |
 | `o` | Open dir in `NNN_DE_FILE_MANAGER` |
-| `/`, `&` | Filter dir contents |
+| `/` | Filter dir contents |
 | `c` | Show change dir prompt |
 | `d` | Toggle detail view |
 | `D` | Toggle current file details screen |
index 28771bf879777677adbd44d3ccb8066cebd0fc17..1b53f6b72019e375f91ef9987ebe039f20b09c15 100644 (file)
@@ -35,7 +35,6 @@ static struct key bindings[] = {
        { 'l',            SEL_GOIN,      "",     "" },
        /* Filter */
        { '/',            SEL_FLTR,      "",     "" },
-       { '&',            SEL_FLTR,      "",     "" },
        /* Next */
        { 'j',            SEL_NEXT,      "",     "" },
        { KEY_DOWN,       SEL_NEXT,      "",     "" },
@@ -50,12 +49,12 @@ static struct key bindings[] = {
        /* Page up */
        { KEY_PPAGE,      SEL_PGUP,      "",     "" },
        { CONTROL('U'),   SEL_PGUP,      "",     "" },
-       /* Home */
+       /* First entry */
        { KEY_HOME,       SEL_HOME,      "",     "" },
        { 'g',            SEL_HOME,      "",     "" },
        { CONTROL('A'),   SEL_HOME,      "",     "" },
        { '^',            SEL_HOME,      "",     "" },
-       /* End */
+       /* Last entry */
        { KEY_END,        SEL_END,       "",     "" },
        { 'G',            SEL_END,       "",     "" },
        { CONTROL('E'),   SEL_END,       "",     "" },
@@ -64,6 +63,8 @@ static struct key bindings[] = {
        { 'c',            SEL_CD,        "",     "" },
        /* HOME */
        { '~',            SEL_CDHOME,    "",     "" },
+       /* Initial directory */
+       { '&',            SEL_CDBEGIN,   "",     "" },
        /* Last visited dir */
        { '-',            SEL_LAST,      "",     "" },
        /* Toggle hide .dot files */
diff --git a/nlay b/nlay
index fd06307a76e69e87b6adbea735d6a69730a6d66a..0106125d94b8e2f2194f5729e71a7ba0d05126bc 100755 (executable)
--- a/nlay
+++ b/nlay
@@ -14,7 +14,8 @@
 #
 #    The bg setting depends on personal preference and type of app, e.g.,
 #    I would start vim (CLI) in the foreground but Sublime Text (GUI) in the
-#    background.
+#    background. I also prefer mpv running in the background without disturbing
+#    my ongoing activity in nnn by blocking navigation.
 #
 #    Check (and TOGGLE as you wish) the default bg settings.
 #
diff --git a/nnn.1 b/nnn.1
index 4fefe86b4e79761d73f7fa95cb84b3f7a977ca0a..ac785dd1053b90702f70815be1212a50756e849f 100644 (file)
--- a/nnn.1
+++ b/nnn.1
@@ -43,11 +43,13 @@ Open file or enter directory
 Back up one directory level
 .It Ic ~
 Change to the HOME directory
+.It Ic &
+Change to initial directory
 .It Ic -
 Change to the last visited directory
 .It Ic o
 Open directory in NNN_DE_FILE_MANAGER
-.It Ic /, &
+.It Ic /
 Change filter (more information below)
 .It Ic c
 Change into the given directory
diff --git a/nnn.c b/nnn.c
index 37a1938cb680421b0ea4901447db6f902f8a16df..cafed203b400e80bb0ede4ba4c250371b2cb5116 100644 (file)
--- a/nnn.c
+++ b/nnn.c
@@ -86,6 +86,7 @@ enum action {
        SEL_END,
        SEL_CD,
        SEL_CDHOME,
+       SEL_CDBEGIN,
        SEL_LAST,
        SEL_TOGGLEDOT,
        SEL_DETAIL,
@@ -946,9 +947,10 @@ show_help(void)
     [Right], [Enter], l, ^M     Open file or enter dir\n\
     [Left], [Backspace], h, ^H  Go to parent dir\n\
     ~                           Jump to HOME dir\n\
+    &                           Jump to initial dir\n\
     -                           Jump to last visited dir\n\
     o                           Open dir in NNN_DE_FILE_MANAGER\n\
-    /, &                        Filter dir contents\n\
+    /                           Filter dir contents\n\
     c                           Show change dir prompt\n\
     d                           Toggle detail view\n\
     D                           Toggle current file details screen\n\
@@ -1554,6 +1556,20 @@ nochange:
                        xstrlcpy(fltr, ifilter, sizeof(fltr));
                        DPRINTF_S(path);
                        goto begin;
+               case SEL_CDBEGIN:
+                       if (canopendir(ipath) == 0) {
+                               printwarn();
+                               goto nochange;
+                       }
+
+                       /* Save last working directory */
+                       xstrlcpy(lastdir, path, sizeof(lastdir));
+
+                       xstrlcpy(path, ipath, sizeof(path));
+                       /* Reset filter */
+                       xstrlcpy(fltr, ifilter, sizeof(fltr));
+                       DPRINTF_S(path);
+                       goto begin;
                case SEL_LAST:
                        xstrlcpy(newpath, lastdir, sizeof(newpath));
                        xstrlcpy(lastdir, path, sizeof(lastdir));