Skip to content

Commit

Permalink
Option -u to disable current/selection prompt
Browse files Browse the repository at this point in the history
  • Loading branch information
jarun committed Jun 15, 2020
1 parent d9b8b0e commit 4b4bf6c
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 2 deletions.
1 change: 1 addition & 0 deletions misc/auto-completion/bash/nnn-completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ _nnn ()
-S
-t
-T
-u
-V
-x
-h
Expand Down
1 change: 1 addition & 0 deletions misc/auto-completion/fish/nnn.fish
Original file line number Diff line number Diff line change
Expand Up @@ -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'
1 change: 1 addition & 0 deletions misc/auto-completion/zsh/_nnn
Original file line number Diff line number Diff line change
Expand Up @@ -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]'
Expand Down
9 changes: 9 additions & 0 deletions nnn.1
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
13 changes: 11 additions & 2 deletions src/nnn.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -334,6 +335,7 @@ static settings cfg = {
0, /* version */
0, /* reserved1 */
0, /* curctx */
0, /* prefersel */
0, /* reserved2 */
0, /* nonavopen */
1, /* autoselect */
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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':
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 4b4bf6c

Please sign in to comment.