mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Use b and ^B as bookmark key
This commit is contained in:
parent
89a158b9f4
commit
278fcfdfc9
|
@ -19,7 +19,6 @@ _nnn ()
|
||||||
-E
|
-E
|
||||||
-g
|
-g
|
||||||
-H
|
-H
|
||||||
-i
|
|
||||||
-K
|
-K
|
||||||
-n
|
-n
|
||||||
-o
|
-o
|
||||||
|
@ -31,6 +30,7 @@ _nnn ()
|
||||||
-S
|
-S
|
||||||
-t
|
-t
|
||||||
-v
|
-v
|
||||||
|
-V
|
||||||
-x
|
-x
|
||||||
-h
|
-h
|
||||||
)
|
)
|
||||||
|
|
|
@ -18,9 +18,8 @@ complete -c nnn -s d -d 'start in detail mode'
|
||||||
complete -c nnn -s E -d 'use EDITOR for undetached edits'
|
complete -c nnn -s E -d 'use EDITOR for undetached edits'
|
||||||
complete -c nnn -s g -d 'regex filters'
|
complete -c nnn -s g -d 'regex filters'
|
||||||
complete -c nnn -s H -d 'show hidden files'
|
complete -c nnn -s H -d 'show hidden files'
|
||||||
complete -c nnn -s i -d 'start in navigate-as-you-type mode'
|
|
||||||
complete -c nnn -s K -d 'detect key collision'
|
complete -c nnn -s K -d 'detect key collision'
|
||||||
complete -c nnn -s n -d 'use version compare to sort files'
|
complete -c nnn -s n -d 'start in navigate-as-you-type mode'
|
||||||
complete -c nnn -s o -d 'open files only on Enter'
|
complete -c nnn -s o -d 'open files only on Enter'
|
||||||
complete -c nnn -s p -r -d 'copy selection to file' -a '-\tstdout'
|
complete -c nnn -s p -r -d 'copy selection to file' -a '-\tstdout'
|
||||||
complete -c nnn -s Q -d 'disable quit confirmation'
|
complete -c nnn -s Q -d 'disable quit confirmation'
|
||||||
|
@ -30,5 +29,6 @@ complete -c nnn -s s -r -d 'load session by name' -x -a '@\t"last session" (ls $
|
||||||
complete -c nnn -s S -d 'start in disk usage analyzer mode'
|
complete -c nnn -s S -d 'start in disk usage analyzer mode'
|
||||||
complete -c nnn -s t -d 'disable dir auto-select'
|
complete -c nnn -s t -d 'disable dir auto-select'
|
||||||
complete -c nnn -s v -d 'show program version and exit'
|
complete -c nnn -s v -d 'show program version and exit'
|
||||||
|
complete -c nnn -s V -d 'use version compare to sort files'
|
||||||
complete -c nnn -s x -d 'notis, sel to system clipboard'
|
complete -c nnn -s x -d 'notis, sel to system clipboard'
|
||||||
complete -c nnn -s h -d 'show program help'
|
complete -c nnn -s h -d 'show program help'
|
||||||
|
|
|
@ -16,9 +16,8 @@ args=(
|
||||||
'(-E)-E[use EDITOR for undetached edits]'
|
'(-E)-E[use EDITOR for undetached edits]'
|
||||||
'(-g)-g[regex filters]'
|
'(-g)-g[regex filters]'
|
||||||
'(-H)-H[show hidden files]'
|
'(-H)-H[show hidden files]'
|
||||||
'(-i)-i[start in navigate-as-you-type mode]'
|
|
||||||
'(-K)-K[detect key collision]'
|
'(-K)-K[detect key collision]'
|
||||||
'(-n)-n[use version compare to sort files]'
|
'(-n)-n[start in navigate-as-you-type mode]'
|
||||||
'(-o)-o[open files only on Enter]'
|
'(-o)-o[open files only on Enter]'
|
||||||
'(-p)-p[copy selection to file]:file name'
|
'(-p)-p[copy selection to file]:file name'
|
||||||
'(-Q)-Q[disable quit confirmation]'
|
'(-Q)-Q[disable quit confirmation]'
|
||||||
|
@ -28,6 +27,7 @@ args=(
|
||||||
'(-S)-S[start in disk usage analyzer mode]'
|
'(-S)-S[start in disk usage analyzer mode]'
|
||||||
'(-t)-t[disable dir auto-select]'
|
'(-t)-t[disable dir auto-select]'
|
||||||
'(-v)-v[show program version and exit]'
|
'(-v)-v[show program version and exit]'
|
||||||
|
'(-V)-V[use version compare to sort files]'
|
||||||
'(-x)-x[notis, sel to system clipboard]'
|
'(-x)-x[notis, sel to system clipboard]'
|
||||||
'(-h)-h[show program help]'
|
'(-h)-h[show program help]'
|
||||||
'*:filename:_files'
|
'*:filename:_files'
|
||||||
|
|
10
nnn.1
10
nnn.1
|
@ -13,7 +13,6 @@
|
||||||
.Op Ar -E
|
.Op Ar -E
|
||||||
.Op Ar -g
|
.Op Ar -g
|
||||||
.Op Ar -H
|
.Op Ar -H
|
||||||
.Op Ar -i
|
|
||||||
.Op Ar -K
|
.Op Ar -K
|
||||||
.Op Ar -n
|
.Op Ar -n
|
||||||
.Op Ar -p file
|
.Op Ar -p file
|
||||||
|
@ -23,6 +22,7 @@
|
||||||
.Op Ar -s name
|
.Op Ar -s name
|
||||||
.Op Ar -S
|
.Op Ar -S
|
||||||
.Op Ar -v
|
.Op Ar -v
|
||||||
|
.Op Ar -V
|
||||||
.Op Ar -x
|
.Op Ar -x
|
||||||
.Op Ar -h
|
.Op Ar -h
|
||||||
.Op Ar PATH
|
.Op Ar PATH
|
||||||
|
@ -65,14 +65,11 @@ supports the following options:
|
||||||
.Fl H
|
.Fl H
|
||||||
show hidden files
|
show hidden files
|
||||||
.Pp
|
.Pp
|
||||||
.Fl i
|
|
||||||
start in navigate-as-you-type mode
|
|
||||||
.Pp
|
|
||||||
.Fl K
|
.Fl K
|
||||||
test for keybind collision
|
test for keybind collision
|
||||||
.Pp
|
.Pp
|
||||||
.Fl n
|
.Fl n
|
||||||
use case-insensitive version compare to sort files
|
start in navigate-as-you-type mode
|
||||||
.Pp
|
.Pp
|
||||||
.Fl o
|
.Fl o
|
||||||
open files only on Enter key
|
open files only on Enter key
|
||||||
|
@ -101,6 +98,9 @@ supports the following options:
|
||||||
.Fl v
|
.Fl v
|
||||||
show version and exit
|
show version and exit
|
||||||
.Pp
|
.Pp
|
||||||
|
.Fl V
|
||||||
|
use case-insensitive version compare to sort files
|
||||||
|
.Pp
|
||||||
.Fl x
|
.Fl x
|
||||||
show notis on selection cp, mv, rm completion; copy path to system clipboard on select
|
show notis on selection cp, mv, rm completion; copy path to system clipboard on select
|
||||||
.Pp
|
.Pp
|
||||||
|
|
45
src/nnn.c
45
src/nnn.c
|
@ -3473,14 +3473,13 @@ static void show_help(const char *path)
|
||||||
"7Left h Parent%-12c~ ` @ - HOME, /, start, last\n"
|
"7Left h Parent%-12c~ ` @ - HOME, /, start, last\n"
|
||||||
"9g ^A Top%-11cRet Right l Open\n"
|
"9g ^A Top%-11cRet Right l Open\n"
|
||||||
"9G ^E End%-21c' First file\n"
|
"9G ^E End%-21c' First file\n"
|
||||||
"cb Pin CWD%-16c^B Go to pinned dir\n"
|
"c, Pin CWD%-17c. Toggle hidden\n"
|
||||||
"9, ^/ Go to bookmark%-10cd Detail view toggle\n"
|
"9b ^B Go to bookmark%-10cd Detail view toggle\n"
|
||||||
"6(Sh)Tab Cycle context%-11cN Context N\n"
|
"6(Sh)Tab Cycle context%-11cN Context N\n"
|
||||||
"c/ Filter%-13cIns ^N Nav-as-you-type toggle\n"
|
"c/ Filter%-14c^/ ^N Nav-as-you-type toggle\n"
|
||||||
"aEsc Exit prompt%-9c^L F5 Redraw/clear prompt\n"
|
"aEsc Exit prompt%-9c^L F5 Redraw/clear prompt\n"
|
||||||
"c. Toggle hidden%-11c? Help, conf\n"
|
"b^G QuitCD%-18c? Help, conf\n"
|
||||||
"9Q ^Q Quit%-20cq Quit context\n"
|
"9Q ^Q Quit%-20cq Quit context\n"
|
||||||
"b^G QuitCD%-1c\n"
|
|
||||||
"1FILES\n"
|
"1FILES\n"
|
||||||
"b^O Open with...%-12cn Create new/link\n"
|
"b^O Open with...%-12cn Create new/link\n"
|
||||||
"cD File details%-8c^R F2 Rename/duplicate\n"
|
"cD File details%-8c^R F2 Rename/duplicate\n"
|
||||||
|
@ -4543,8 +4542,7 @@ nochange:
|
||||||
case SEL_CDHOME: // fallthrough
|
case SEL_CDHOME: // fallthrough
|
||||||
case SEL_CDBEGIN: // fallthrough
|
case SEL_CDBEGIN: // fallthrough
|
||||||
case SEL_CDLAST: // fallthrough
|
case SEL_CDLAST: // fallthrough
|
||||||
case SEL_CDROOT: // fallthrough
|
case SEL_CDROOT:
|
||||||
case SEL_VISIT:
|
|
||||||
switch (sel) {
|
switch (sel) {
|
||||||
case SEL_CDHOME:
|
case SEL_CDHOME:
|
||||||
dir = home;
|
dir = home;
|
||||||
|
@ -4555,12 +4553,9 @@ nochange:
|
||||||
case SEL_CDLAST:
|
case SEL_CDLAST:
|
||||||
dir = lastdir;
|
dir = lastdir;
|
||||||
break;
|
break;
|
||||||
case SEL_CDROOT:
|
default: /* SEL_CDROOT */
|
||||||
dir = "/";
|
dir = "/";
|
||||||
break;
|
break;
|
||||||
default: /* case SEL_VISIT */
|
|
||||||
dir = mark;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dir[0] == '\0') {
|
if (dir[0] == '\0') {
|
||||||
|
@ -4639,13 +4634,19 @@ nochange:
|
||||||
xstrlcpy(g_buf, messages[MSG_BOOKMARK_KEYS], CMD_LEN_MAX);
|
xstrlcpy(g_buf, messages[MSG_BOOKMARK_KEYS], CMD_LEN_MAX);
|
||||||
printkeys(bookmark, g_buf + strlen(g_buf), BM_MAX);
|
printkeys(bookmark, g_buf + strlen(g_buf), BM_MAX);
|
||||||
printprompt(g_buf);
|
printprompt(g_buf);
|
||||||
fd = get_input(NULL);
|
r = get_input(NULL);
|
||||||
|
|
||||||
if (!get_kv_val(bookmark, newpath, fd, BM_MAX, TRUE)) {
|
if (!get_kv_val(bookmark, newpath, r, BM_MAX, TRUE)) {
|
||||||
printwait(messages[MSG_INVALID_KEY], &presel);;
|
if (r == ',' && mark[0])
|
||||||
goto nochange;
|
xstrlcpy(newpath, mark, PATH_MAX);
|
||||||
|
else {
|
||||||
|
printwait(messages[MSG_INVALID_KEY], &presel);;
|
||||||
|
goto nochange;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (!xdiraccess(newpath)) {
|
if (!xdiraccess(newpath)) {
|
||||||
printwait(messages[MSG_ACCESS], &presel);
|
printwait(messages[MSG_ACCESS], &presel);
|
||||||
goto nochange;
|
goto nochange;
|
||||||
|
@ -5466,9 +5467,8 @@ static void usage(void)
|
||||||
" -E use EDITOR for undetached edits\n"
|
" -E use EDITOR for undetached edits\n"
|
||||||
" -g regex filters [default: string]\n"
|
" -g regex filters [default: string]\n"
|
||||||
" -H show hidden files\n"
|
" -H show hidden files\n"
|
||||||
" -i nav-as-you-type mode\n"
|
|
||||||
" -K detect key collision\n"
|
" -K detect key collision\n"
|
||||||
" -n version sort\n"
|
" -n nav-as-you-type mode\n"
|
||||||
" -o open files on Enter\n"
|
" -o open files on Enter\n"
|
||||||
" -p file selection file [stdout if '-']\n"
|
" -p file selection file [stdout if '-']\n"
|
||||||
" -Q no quit confirmation\n"
|
" -Q no quit confirmation\n"
|
||||||
|
@ -5478,6 +5478,7 @@ static void usage(void)
|
||||||
" -S du mode\n"
|
" -S du mode\n"
|
||||||
" -t no dir auto-select\n"
|
" -t no dir auto-select\n"
|
||||||
" -v show version\n"
|
" -v show version\n"
|
||||||
|
" -V version sort\n"
|
||||||
" -x notis, sel to system clipboard\n"
|
" -x notis, sel to system clipboard\n"
|
||||||
" -h show help\n\n"
|
" -h show help\n\n"
|
||||||
"v%s\n%s\n", __func__, VERSION, GENERAL_INFO);
|
"v%s\n%s\n", __func__, VERSION, GENERAL_INFO);
|
||||||
|
@ -5621,7 +5622,7 @@ int main(int argc, char *argv[])
|
||||||
bool progress = FALSE;
|
bool progress = FALSE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "HSKiab:cdEgnop:QrRs:tvxh")) != -1) {
|
while ((opt = getopt(argc, argv, "HSKab:cdEgnop:QrRs:tvVxh")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'S':
|
case 'S':
|
||||||
cfg.blkorder = 1;
|
cfg.blkorder = 1;
|
||||||
|
@ -5631,9 +5632,6 @@ int main(int argc, char *argv[])
|
||||||
cfg.showdetail = 1;
|
cfg.showdetail = 1;
|
||||||
printptr = &printent_long;
|
printptr = &printent_long;
|
||||||
break;
|
break;
|
||||||
case 'i':
|
|
||||||
cfg.filtermode = 1;
|
|
||||||
break;
|
|
||||||
case 'a':
|
case 'a':
|
||||||
cfg.mtime = 0;
|
cfg.mtime = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -5654,7 +5652,7 @@ int main(int argc, char *argv[])
|
||||||
cfg.showhidden = 1;
|
cfg.showhidden = 1;
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
cmpfn = &xstrverscasecmp;
|
cfg.filtermode = 1;
|
||||||
break;
|
break;
|
||||||
case 'o':
|
case 'o':
|
||||||
cfg.nonavopen = 1;
|
cfg.nonavopen = 1;
|
||||||
|
@ -5699,6 +5697,9 @@ int main(int argc, char *argv[])
|
||||||
case 'v':
|
case 'v':
|
||||||
fprintf(stdout, "%s\n", VERSION);
|
fprintf(stdout, "%s\n", VERSION);
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
|
case 'V':
|
||||||
|
cmpfn = &xstrverscasecmp;
|
||||||
|
break;
|
||||||
case 'x':
|
case 'x':
|
||||||
cfg.x11 = 1;
|
cfg.x11 = 1;
|
||||||
break;
|
break;
|
||||||
|
|
11
src/nnn.h
11
src/nnn.h
|
@ -52,7 +52,6 @@ enum action {
|
||||||
SEL_CDBEGIN,
|
SEL_CDBEGIN,
|
||||||
SEL_CDLAST,
|
SEL_CDLAST,
|
||||||
SEL_CDROOT,
|
SEL_CDROOT,
|
||||||
SEL_VISIT,
|
|
||||||
SEL_CYCLE,
|
SEL_CYCLE,
|
||||||
SEL_CYCLER,
|
SEL_CYCLER,
|
||||||
SEL_CTX1,
|
SEL_CTX1,
|
||||||
|
@ -155,8 +154,6 @@ static struct key bindings[] = {
|
||||||
{ '-', SEL_CDLAST },
|
{ '-', SEL_CDLAST },
|
||||||
/* Go to / */
|
/* Go to / */
|
||||||
{ '`', SEL_CDROOT },
|
{ '`', SEL_CDROOT },
|
||||||
/* Visit marked directory */
|
|
||||||
{ CONTROL('B'), SEL_VISIT },
|
|
||||||
/* Cycle contexts in forward direction */
|
/* Cycle contexts in forward direction */
|
||||||
{ '\t', SEL_CYCLE },
|
{ '\t', SEL_CYCLE },
|
||||||
/* Cycle contexts in reverse direction */
|
/* Cycle contexts in reverse direction */
|
||||||
|
@ -167,15 +164,15 @@ static struct key bindings[] = {
|
||||||
{ '3', SEL_CTX3 },
|
{ '3', SEL_CTX3 },
|
||||||
{ '4', SEL_CTX4 },
|
{ '4', SEL_CTX4 },
|
||||||
/* Bookmark key */
|
/* Bookmark key */
|
||||||
{ CONTROL('_'), SEL_BOOKMARK },
|
{ 'b', SEL_BOOKMARK },
|
||||||
{ ',', SEL_BOOKMARK },
|
{ CONTROL('B'), SEL_BOOKMARK },
|
||||||
/* Mark a path to visit later */
|
/* Mark a path to visit later */
|
||||||
{ 'b', SEL_PIN },
|
{ ',', SEL_PIN },
|
||||||
/* Filter */
|
/* Filter */
|
||||||
{ '/', SEL_FLTR },
|
{ '/', SEL_FLTR },
|
||||||
/* Toggle filter mode */
|
/* Toggle filter mode */
|
||||||
{ KEY_IC, SEL_MFLTR },
|
{ KEY_IC, SEL_MFLTR },
|
||||||
{ CONTROL('N'), SEL_MFLTR },
|
{ CONTROL('_'), SEL_MFLTR },
|
||||||
/* Toggle hide .dot files */
|
/* Toggle hide .dot files */
|
||||||
{ '.', SEL_TOGGLEDOT },
|
{ '.', SEL_TOGGLEDOT },
|
||||||
/* Detailed listing */
|
/* Detailed listing */
|
||||||
|
|
Loading…
Reference in a new issue