Bläddra i källkod

Use ^L to clear filter prompt

master
Arun Prakash Jana 6 år sedan
förälder
incheckning
c820e0c9f9
Ingen känd nyckel hittad för denna signaturen i databasen GPG-nyckel ID: A75979F35C080412
3 ändrade filer med 22 tillägg och 15 borttagningar
  1. +4
    -4
      README.md
  2. +4
    -5
      nnn.1
  3. +14
    -6
      nnn.c

+ 4
- 4
README.md Visa fil

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


+ 4
- 5
nnn.1 Visa fil

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


+ 14
- 6
nnn.c Visa fil

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

wln[--len] = '\0';
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;


Laddar…
Avbryt
Spara