Przeglądaj źródła

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.
master
Arun Prakash Jana 7 lat temu
rodzic
commit
bf36462a2b
Nie znaleziono w bazie danych klucza dla tego podpisu ID klucza GPG: A75979F35C080412
3 zmienionych plików z 19 dodań i 0 usunięć
  1. +2
    -0
      README.md
  2. +2
    -0
      nnn.1
  3. +15
    -0
      nnn.c

+ 2
- 0
README.md Wyświetl plik

@@ -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
- 0
nnn.1 Wyświetl plik

@@ -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
- 0
nnn.c Wyświetl plik

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


Ładowanie…
Anuluj
Zapisz