mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Use ^L to clear filter prompt
This commit is contained in:
parent
80e5cdfe8d
commit
c820e0c9f9
|
@ -265,10 +265,10 @@ Help & settings, file details, media info and archive listing are shown in the P
|
|||
|
||||
Filters support regexes to instantly (search-as-you-type) list the matching entries in the current directory.
|
||||
|
||||
There are 3 ways to reset a filter:
|
||||
- pressing <kbd>^L</kbd> (at the new/rename prompt <kbd>^L</kbd> followed by <kbd>Enter</kbd> discards all changes and exits prompt)
|
||||
- a search with no matches
|
||||
- an extra backspace at the filter prompt (like vi)
|
||||
Ways to exit filter prompt:
|
||||
- press <kbd>^L</kbd> to clear filter followed by <kbd>Bksp</kbd> (to clear the filter symbol, like vi)
|
||||
- at other prompts <kbd>^L</kbd> followed by <kbd>Enter</kbd> discards all changes and exits prompt
|
||||
- run a search with no matches and press <kbd>Enter</kbd>
|
||||
|
||||
Common use cases:
|
||||
- to list all matches starting with the filter expression, start the expression with a `^` (caret) symbol
|
||||
|
|
9
nnn.1
9
nnn.1
|
@ -188,14 +188,13 @@ instructions.
|
|||
Filters support regexes to instantly (search-as-you-type) list the matching
|
||||
entries in the current directory.
|
||||
.Pp
|
||||
There are 3 ways to reset a filter:
|
||||
Ways to exit filter prompt:
|
||||
.Pp
|
||||
(1) pressing \fI^L\fR (at the new/rename prompt \fI^L\fR followed by \fIEnter\fR
|
||||
discards all changes and exits prompt),
|
||||
(1) press \fI^L\fR to clear filter followed by \fIBksp\fR (to clear the filter symbol, like vi)
|
||||
.br
|
||||
(2) a search with no matches or
|
||||
- at other prompts \fI^L\fR followed by \fIEnter\fR discards all changes and exits prompt
|
||||
.br
|
||||
(3) an extra backspace at the filter prompt (like vi).
|
||||
(2) run a search with no matches and press \fIEnter\fR
|
||||
.Pp
|
||||
Common use cases:
|
||||
.Pp
|
||||
|
|
18
nnn.c
18
nnn.c
|
@ -1096,14 +1096,24 @@ static int filterentries(char *path)
|
|||
printprompt(ln);
|
||||
|
||||
while ((r = get_wch(ch)) != ERR) {
|
||||
if (*ch == 127 /* handle DEL */ || *ch == KEY_DC || *ch == KEY_BACKSPACE || *ch == '\b') {
|
||||
if (len == 1) {
|
||||
switch (*ch) {
|
||||
case KEY_DC: // fallthrough
|
||||
case KEY_BACKSPACE: // fallthrough
|
||||
case '\b': // fallthrough
|
||||
case CONTROL('L'): // fallthrough
|
||||
case 127: /* handle DEL */
|
||||
if (len == 1 && *ch != CONTROL('L')) {
|
||||
cur = oldcur;
|
||||
*ch = CONTROL('L');
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (*ch == CONTROL('L'))
|
||||
while (len > 1)
|
||||
wln[--len] = '\0';
|
||||
else
|
||||
wln[--len] = '\0';
|
||||
|
||||
if (len == 1)
|
||||
cur = oldcur;
|
||||
|
||||
|
@ -1114,9 +1124,7 @@ static int filterentries(char *path)
|
|||
|
||||
printprompt(ln);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (*ch == 27) { /* Exit filter mode on Escape */
|
||||
case 27: /* Exit filter mode on Escape */
|
||||
cur = oldcur;
|
||||
*ch = CONTROL('L');
|
||||
goto end;
|
||||
|
|
Loading…
Reference in a new issue