]> Sergey Matveev's repositories - nnn.git/commitdiff
Option -u to disable current/selection prompt
authorArun Prakash Jana <engineerarun@gmail.com>
Mon, 15 Jun 2020 14:24:44 +0000 (19:54 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Mon, 15 Jun 2020 14:24:44 +0000 (19:54 +0530)
misc/auto-completion/bash/nnn-completion.bash
misc/auto-completion/fish/nnn.fish
misc/auto-completion/zsh/_nnn
nnn.1
src/nnn.c

index 69c2047fe2ff5403e31979bc42a6bd88f35f509e..63ad1d74c8cb98d543f0fb31a2391a8124846aea 100644 (file)
@@ -37,6 +37,7 @@ _nnn ()
         -S
         -t
         -T
+        -u
         -V
         -x
         -h
index 9bc671d2dba4942ab8c13b4eeb39589eab8be8fc..655d56ccfa7aed480a6e69a199c4b2acea45a4fe 100644 (file)
@@ -36,6 +36,7 @@ complete -c nnn -s s -r -d 'load session by name' -x -a '@\t"last session" (ls $
 complete -c nnn -s S    -d 'persistent session'
 complete -c nnn -s t -r -d 'timeout in seconds to lock'
 complete -c nnn -s T -r -d 'a d e r s t v'
+complete -c nnn -s u    -d 'use selection (no prompt)'
 complete -c nnn -s V    -d 'show program version and exit'
 complete -c nnn -s x    -d 'notis, sel to system clipboard'
 complete -c nnn -s h    -d 'show program help'
index 75a19e2c2054a0bf6d30a341e6454dc109dfce2f..1bc328a7cb362d6eae18a0c9432b85b313fa5aa8 100644 (file)
@@ -34,6 +34,7 @@ args=(
     '(-S)-S[persistent session]'
     '(-t)-t[timeout to lock]:seconds'
     '(-T)-T[a d e r s t v]:key'
+    '(-u)-u[use selection (no prompt)]'
     '(-V)-V[show program version and exit]'
     '(-x)-x[notis, sel to system clipboard]'
     '(-h)-h[show program help]'
diff --git a/nnn.1 b/nnn.1
index 96492b052c891c44432e9753779923f5ad475f4c..b03d091526185c5a7b6d2b3f77edb9dde292c309 100644 (file)
--- a/nnn.1
+++ b/nnn.1
@@ -30,6 +30,7 @@
 .Op Ar -S
 .Op Ar -t secs
 .Op Ar -T key
+.Op Ar -u
 .Op Ar -V
 .Op Ar -x
 .Op Ar -h
@@ -134,6 +135,9 @@ supports the following options:
         sort order
         keys: 'a'u / 'd'u / 'e'xtension / 'r'everse / 's'ize / 't'ime / 'v'ersion
 .Pp
+.Fl u
+        use selection if available, don't prompt to choose between selection and current entry
+.Pp
 .Fl V
         show version and exit
 .Pp
@@ -275,6 +279,11 @@ from earlier writes. If you have 2 instances if
 use the selection (e.g. to copy or move) in the other pane (if the instance
 doesn't have any local selection already).
 .Pp
+.Nm
+clears the selection after successful file removal, batch-rename and link
+creation with selection. However, it is retained after archive creation
+with selection as the user may want to delete the archived files next.
+.Pp
 To edit the selection use the _edit selection_ key. Use this key to remove a
 file from selection after you navigate away from its directory. Editing doesn't
 end the selection mode. You can add more files to the selection and edit the
index 16dc527f18c7d555a6d7dc29369bd21540597a0e..5c8934622c6f753115752b07b5aabe4c108e9a29 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -263,7 +263,8 @@ typedef struct {
        uint reserved1  : 1;
        /* The following settings are global */
        uint curctx     : 3;  /* Current context number */
-       uint reserved2  : 2;
+       uint prefersel  : 1;  /* Prefer selection over current, if exists */
+       uint reserved2  : 1;
        uint nonavopen  : 1;  /* Open file on right arrow or `l` */
        uint autoselect : 1;  /* Auto-select dir in type-to-nav mode */
        uint cursormode : 1;  /* Move hardware cursor with selection */
@@ -334,6 +335,7 @@ static settings cfg = {
        0, /* version */
        0, /* reserved1 */
        0, /* curctx */
+       0, /* prefersel */
        0, /* reserved2 */
        0, /* nonavopen */
        1, /* autoselect */
@@ -864,6 +866,9 @@ static int get_input(const char *prompt)
 static int get_cur_or_sel(void)
 {
        if (selbufpos && ndents) {
+               if (cfg.prefersel)
+                       return 's';
+
                int choice = get_input(messages[MSG_CUR_SEL_OPTS]);
 
                return ((choice == 'c' || choice == 's') ? choice : 0);
@@ -6851,6 +6856,7 @@ static void usage(void)
                " -S      persistent session\n"
                " -t secs timeout to lock\n"
                " -T key  sort order [a/d/e/r/s/t/v]\n"
+               " -u      use selection (no prompt)\n"
                " -V      show version\n"
                " -x      notis, sel to system clipboard\n"
                " -h      show help\n\n"
@@ -7000,7 +7006,7 @@ int main(int argc, char *argv[])
 
        while ((opt = (env_opts_id > 0
                       ? env_opts[--env_opts_id]
-                      : getopt(argc, argv, "aAb:cCdeEfFgHKl:nop:P:QrRs:St:T:Vxh"))) != -1) {
+                      : getopt(argc, argv, "aAb:cCdeEfFgHKl:nop:P:QrRs:St:T:uVxh"))) != -1) {
                switch (opt) {
 #ifndef NOFIFO
                case 'a':
@@ -7108,6 +7114,9 @@ int main(int argc, char *argv[])
                        if (env_opts_id < 0)
                                sort = (uchar)optarg[0];
                        break;
+               case 'u':
+                       cfg.prefersel = 1;
+                       break;
                case 'V':
                        fprintf(stdout, "%s\n", VERSION);
                        return EXIT_SUCCESS;