mirror of
https://github.com/jarun/nnn.git
synced 2024-11-24 11:51:27 +00:00
Implement dir auto-select in nav-as-you-type mode.
If only one entry matches regex filter and it it a directory, cd into it.
This commit is contained in:
parent
38a4a2cf8b
commit
bf36462a2b
|
@ -276,6 +276,8 @@ If `nnn` is invoked as root or the environment variable `NNN_SHOW_HIDDEN` is set
|
||||||
|
|
||||||
In this mode directories are opened in filter mode, allowing continuous navigation. Works best with the **arrow keys**.
|
In this mode directories are opened in filter mode, allowing continuous navigation. Works best with the **arrow keys**.
|
||||||
|
|
||||||
|
In case of only one match and it's a directory, `nnn` auto selects the directory and enters it in this mode.
|
||||||
|
|
||||||
#### File indicators
|
#### File indicators
|
||||||
|
|
||||||
The following indicators are used in the detail view:
|
The following indicators are used in the detail view:
|
||||||
|
|
2
nnn.1
2
nnn.1
|
@ -206,6 +206,8 @@ is invoked as root or the environment variable \fBNNN_SHOW_HIDDEN\fR is set the
|
||||||
.Pp
|
.Pp
|
||||||
In the \fInavigate-as-you-type\fR mode directories are opened in filter mode,
|
In the \fInavigate-as-you-type\fR mode directories are opened in filter mode,
|
||||||
allowing continuous navigation. Works best with the \fBarrow keys\fR.
|
allowing continuous navigation. Works best with the \fBarrow keys\fR.
|
||||||
|
.br
|
||||||
|
In case of only one match and it's a directory, `nnn` auto selects the directory and enters it in this mode.
|
||||||
.Sh MULTI-COPY MODE
|
.Sh MULTI-COPY MODE
|
||||||
The absolute path of a single file can be copied to clipboard by pressing \fI^K\fR if
|
The absolute path of a single file can be copied to clipboard by pressing \fI^K\fR if
|
||||||
NNN_COPIER is set (see ENVIRONMENT section below).
|
NNN_COPIER is set (see ENVIRONMENT section below).
|
||||||
|
|
15
nnn.c
15
nnn.c
|
@ -1161,6 +1161,21 @@ filterentries(char *path)
|
||||||
ndents = total;
|
ndents = total;
|
||||||
if (matches(pln) == -1)
|
if (matches(pln) == -1)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
/* If the only match is a dir, auto-select and cd into it */
|
||||||
|
if (cfg.filtermode && ndents == 1 && S_ISDIR(dents[0].mode)) {
|
||||||
|
*ch = KEY_ENTER;
|
||||||
|
cur = 0;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* redraw() should be above the auto-select optimization, for
|
||||||
|
* the case where there's an issue with dir auto-select, say,
|
||||||
|
* due to a permission problem. The transition is jumpy in
|
||||||
|
* case of such an error. However, we optimize for successful
|
||||||
|
* cases where the dir has permissions. This skips a redraw().
|
||||||
|
*/
|
||||||
redraw(path);
|
redraw(path);
|
||||||
printprompt(ln);
|
printprompt(ln);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue