-s
-S
-t
+ -T
-v
-V
-x
COMPREPLY=( $(cd "$sessions_dir" && compgen -f -d -- "$cur") )
elif [[ $prev == -t ]]; then
return 1
+ elif [[ $prev == -T ]]; then
+ local keys=$(echo "a d e r s t v" | awk -v RS=' ' '{print $0}')
+ COMPREPLY=( $(compgen -W "$keys" -- "$cur") )
elif [[ $cur == -* ]]; then
COMPREPLY=( $(compgen -W "${opts[*]}" -- "$cur") )
else
complete -c nnn -s s -r -d 'load session by name' -x -a '@\t"last session" (ls $sessions_dir)'
complete -c nnn -s S -d 'start in disk usage analyzer mode'
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 v -d 'use version compare to sort files'
complete -c nnn -s V -d 'show program version and exit'
complete -c nnn -s x -d 'notis, sel to system clipboard'
'(-s)-s[load session]:session name'
'(-S)-S[start in disk usage analyzer mode]'
'(-t)-t[timeout to lock]:seconds'
+ '(-T)-T[a d e r s t v]:key'
'(-v)-v[use version compare to sort files]'
'(-V)-V[show program version and exit]'
'(-x)-x[notis, sel to system clipboard]'
.Op Ar -s name
.Op Ar -S
.Op Ar -t secs
+.Op Ar -T key
.Op Ar -v
.Op Ar -V
.Op Ar -x
.Fl "t secs"
idle timeout in seconds to lock terminal
.Pp
+.Fl "T key"
+ sort order
+ keys: 'a'u / 'd'u / 'e'xtension / 'r'everse / 's'ize / 't'ime / 'v'ersion
+.Pp
.Fl v
use case-insensitive version compare to sort files
.Pp
return r;
}
-static bool set_sort_flags(void)
+static bool set_sort_flags(int r)
{
- int r = get_input(messages[MSG_ORDER]);
-
switch (r) {
case 'a': /* Apparent du */
cfg.apparentsz ^= 1;
cfg.blkorder = 0;
continue;
default: /* SEL_SORT */
- if (!set_sort_flags()) {
+ if (!set_sort_flags(get_input(messages[MSG_ORDER]))) {
if (cfg.filtermode)
presel = FILTER;
printwait(messages[MSG_INVALID_KEY], &presel);
" -s name load session by name\n"
" -S du mode\n"
" -t secs timeout to lock\n"
+ " -T key sort order [a/d/e/r/s/t/v]\n"
" -v version sort\n"
" -V show version\n"
" -x notis, sel to system clipboard\n"
{
char *arg = NULL;
char *session = NULL;
- int opt;
+ int opt, sort = 0;
#ifndef NOMOUSE
mmask_t mask;
char *middle_click_env = xgetenv(env_cfg[NNN_MCLICK], "\0");
while ((opt = (env_opts_id > 0
? env_opts[--env_opts_id]
- : getopt(argc, argv, "aAb:cdeEgHKnop:QrRs:St:vVxh"))) != -1) {
+ : getopt(argc, argv, "aAb:cdeEgHKnop:QrRs:St:T:vVxh"))) != -1) {
switch (opt) {
case 'a':
cfg.mtime = 0;
if (env_opts_id < 0)
idletimeout = atoi(optarg);
break;
+ case 'T':
+ if (env_opts_id < 0)
+ sort = optarg[0];
+ break;
case 'v':
namecmpfn = &xstrverscasecmp;
break;
#endif
return _FAILURE;
+ if (sort)
+ set_sort_flags(sort);
+
opt = browse(initpath, session);
#ifndef NOMOUSE