nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 43134cdfa88f1092c18dea3095adac7a5944cf7a
parent 209415763093bb4504275761fcd1640f06fbd290
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Sat,  3 Mar 2018 19:19:06 +0530

Support ~, - and & keyboard shortcuts at the bookmark prompt.

In nav-as-you-type mode only control keys are understood when filter is enabled.
We need some way to quicly jump HOME, last visited dir or start dir.

Diffstat:
MREADME.md | 2++
Mnnn.1 | 1+
Mnnn.c | 8+++++++-
3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md @@ -340,6 +340,8 @@ Set environment variable `NNN_BMS` as a string of `key:location` pairs (max 10) export NNN_BMS='doc:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/' +The bookmark prompt also understands the <kbd>~</kbd> (HOME), <kbd>-</kbd> (last visited directory) and <kbd>&</kbd> (start directory) shortcuts. + #### use cd ..... To jump to the n<sup>th</sup> level parent, with PWD at level 0, use `n + 1` dots. For example, to jump to the 6<th> parent of the current directory, use 7 dots. If the number of dots would take you *beyond* `/` (which isn't possible), you'll be placed at `/`. diff --git a/nnn.1 b/nnn.1 @@ -220,6 +220,7 @@ when dealing with the !, e and p commands respectively. .Bd -literal export NNN_BMS='doc:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/' .Ed +The bookmark prompt also understands the \fI~\fR (HOME), \fI-\fR (last visited directory) and \fI&\fR shortcuts. .Pp \fBNNN_USE_EDITOR:\fR use EDITOR (preferably CLI, fallback vi) to handle text files. diff --git a/nnn.c b/nnn.c @@ -2726,9 +2726,15 @@ nochange: printprompt("key: "); tmp = readinput(); clearprompt(); - if (tmp == NULL) + if (tmp == NULL || tmp[0] == '\0') break; + /* Interpret ~, - and & keys */ + if ((tmp[1] == '\0') && (tmp[0] == '~' || tmp[0] == '-' || tmp[0] == '&')) { + presel = tmp[0]; + goto begin; + } + if (get_bm_loc(tmp, newpath) == NULL) { printmsg(messages[STR_INVBM_ID]); goto nochange;