Option -u to disable current/selection prompt

This commit is contained in:
Arun Prakash Jana 2020-06-15 19:54:44 +05:30
parent d9b8b0e821
commit 4b4bf6cca5
No known key found for this signature in database
GPG key ID: A75979F35C080412
5 changed files with 23 additions and 2 deletions

View file

@ -37,6 +37,7 @@ _nnn ()
-S
-t
-T
-u
-V
-x
-h

View 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'

View 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]'

9
nnn.1
View file

@ -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

View file

@ -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;