mirror of
https://github.com/jarun/nnn.git
synced 2024-11-24 11:51:27 +00:00
Option to disable file open on Right and l
This commit is contained in:
parent
c3b2ace9fd
commit
7db777756f
|
@ -73,6 +73,7 @@ It runs on Linux, OS X, Raspberry Pi, Cygwin, Linux subsystem for Windows and Te
|
||||||
- [show hot plugged drives](#show-hot-plugged-drives)
|
- [show hot plugged drives](#show-hot-plugged-drives)
|
||||||
- [tmux configuration](#tmux-configuration)
|
- [tmux configuration](#tmux-configuration)
|
||||||
- [BSD terminal issue](#bsd-terminal-issue)
|
- [BSD terminal issue](#bsd-terminal-issue)
|
||||||
|
- [Disable file open on navigation](#disable-file-open-on-navigation)
|
||||||
- [Why fork?](#why-fork)
|
- [Why fork?](#why-fork)
|
||||||
- [Mentions](#mentions)
|
- [Mentions](#mentions)
|
||||||
- [Developers](#developers)
|
- [Developers](#developers)
|
||||||
|
@ -515,6 +516,14 @@ Enable volume management in your DE file manager and set removable drives or med
|
||||||
|
|
||||||
By default in OpenBSD & FreeBSD, `stty` maps <kbd>^Y</kbd> to `DSUSP`. This means that typing <kbd>^Y</kbd> will suspend `nnn` as if you typed <kbd>^Z</kbd> (you can bring `nnn` back to the foreground by issuing `fg`) instead of entering multi-copy mode. You can check this with `stty -a`. If it includes the text `dsusp = ^Y`, issuing `stty dsusp undef` will disable this `DSUSP` and let `nnn` receive the <kbd>^Y</kbd> instead.
|
By default in OpenBSD & FreeBSD, `stty` maps <kbd>^Y</kbd> to `DSUSP`. This means that typing <kbd>^Y</kbd> will suspend `nnn` as if you typed <kbd>^Z</kbd> (you can bring `nnn` back to the foreground by issuing `fg`) instead of entering multi-copy mode. You can check this with `stty -a`. If it includes the text `dsusp = ^Y`, issuing `stty dsusp undef` will disable this `DSUSP` and let `nnn` receive the <kbd>^Y</kbd> instead.
|
||||||
|
|
||||||
|
#### Disable file open on navigation
|
||||||
|
|
||||||
|
In order to disable opening files on accidental navigation key (<kbd>→</kbd> or <kbd>l</kbd>) press:
|
||||||
|
|
||||||
|
export DISABLE_FILE_OPEN_ON_NAV=1
|
||||||
|
|
||||||
|
To open files with this setting, press <kbd>Enter</kbd>.
|
||||||
|
|
||||||
#### WHY FORK?
|
#### WHY FORK?
|
||||||
|
|
||||||
`nnn` was initially forked from [noice](http://git.2f30.org/noice/) but is significantly [different](https://github.com/jarun/nnn/wiki/nnn-vs.-noice) today. I chose to fork because:
|
`nnn` was initially forked from [noice](http://git.2f30.org/noice/) but is significantly [different](https://github.com/jarun/nnn/wiki/nnn-vs.-noice) today. I chose to fork because:
|
||||||
|
|
6
nnn.1
6
nnn.1
|
@ -317,6 +317,12 @@ for filenames having quote(s) in them.
|
||||||
.Bd -literal
|
.Bd -literal
|
||||||
export NNN_NO_AUTOSELECT=1
|
export NNN_NO_AUTOSELECT=1
|
||||||
.Ed
|
.Ed
|
||||||
|
.Pp
|
||||||
|
\fBDISABLE_FILE_OPEN_ON_NAV:\fR Disable file open on \fBRight\fR or \fBl\fR keys. To open
|
||||||
|
files, press \fBEnter\fR.
|
||||||
|
.Bd -literal
|
||||||
|
export DISABLE_FILE_OPEN_ON_NAV=1
|
||||||
|
.Ed
|
||||||
.Sh KNOWN ISSUES
|
.Sh KNOWN ISSUES
|
||||||
If you are using urxvt you might have to set backspace key to DEC.
|
If you are using urxvt you might have to set backspace key to DEC.
|
||||||
.Sh AUTHORS
|
.Sh AUTHORS
|
||||||
|
|
22
src/nnn.c
22
src/nnn.c
|
@ -261,11 +261,12 @@ typedef struct {
|
||||||
uint quote : 1; /* Copy paths within quotes */
|
uint quote : 1; /* Copy paths within quotes */
|
||||||
uint color : 3; /* Color code for directories */
|
uint color : 3; /* Color code for directories */
|
||||||
uint ctxactive : 1; /* Context active or not */
|
uint ctxactive : 1; /* Context active or not */
|
||||||
uint reserved : 11;
|
uint reserved : 10;
|
||||||
/* The following settings are global */
|
/* The following settings are global */
|
||||||
uint curctx : 2; /* Current context number */
|
uint curctx : 2; /* Current context number */
|
||||||
uint picker : 1; /* Write selection to user-specified file */
|
uint picker : 1; /* Write selection to user-specified file */
|
||||||
uint pickraw : 1; /* Write selection to sdtout before exit */
|
uint pickraw : 1; /* Write selection to sdtout before exit */
|
||||||
|
uint nonavopen : 1; /* Open file on right arrow or `l` */
|
||||||
} settings;
|
} settings;
|
||||||
|
|
||||||
/* Contexts or workspaces */
|
/* Contexts or workspaces */
|
||||||
|
@ -281,7 +282,7 @@ typedef struct {
|
||||||
/* GLOBALS */
|
/* GLOBALS */
|
||||||
|
|
||||||
/* Configuration, contexts */
|
/* Configuration, contexts */
|
||||||
static settings cfg = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 4, 1, 0, 0, 0, 0};
|
static settings cfg = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0};
|
||||||
static context g_ctx[MAX_CTX] __attribute__ ((aligned));
|
static context g_ctx[MAX_CTX] __attribute__ ((aligned));
|
||||||
|
|
||||||
static struct entry *dents;
|
static struct entry *dents;
|
||||||
|
@ -2040,9 +2041,13 @@ static int show_help(char *path)
|
||||||
if (getenv("NNN_SCRIPT"))
|
if (getenv("NNN_SCRIPT"))
|
||||||
dprintf(fd, "NNN_SCRIPT: %s\n", getenv("NNN_SCRIPT"));
|
dprintf(fd, "NNN_SCRIPT: %s\n", getenv("NNN_SCRIPT"));
|
||||||
if (getenv("NNN_MULTISCRIPT"))
|
if (getenv("NNN_MULTISCRIPT"))
|
||||||
dprintf(fd, "NNN_MULTISCRIPT: %s\n", getenv("NNN_MULTISCRIPT"));
|
dprintf(fd, "NNN_MULTISCRIPT: 1\n");
|
||||||
if (getenv("NNN_SHOW_HIDDEN"))
|
if (getenv("NNN_SHOW_HIDDEN"))
|
||||||
dprintf(fd, "NNN_SHOW_HIDDEN: %s\n", getenv("NNN_SHOW_HIDDEN"));
|
dprintf(fd, "NNN_SHOW_HIDDEN: 1\n");
|
||||||
|
if (getenv("NNN_NO_AUTOSELECT"))
|
||||||
|
dprintf(fd, "NNN_NO_AUTOSELECT: 1\n");
|
||||||
|
if (getenv("DISABLE_FILE_OPEN_ON_NAV"))
|
||||||
|
dprintf(fd, "DISABLE_FILE_OPEN_ON_NAV: 1\n");
|
||||||
|
|
||||||
dprintf(fd, "\n");
|
dprintf(fd, "\n");
|
||||||
|
|
||||||
|
@ -2574,6 +2579,7 @@ nochange:
|
||||||
|
|
||||||
setdirwatch();
|
setdirwatch();
|
||||||
goto begin;
|
goto begin;
|
||||||
|
case SEL_NAV_IN: // fallthrough
|
||||||
case SEL_GOIN:
|
case SEL_GOIN:
|
||||||
/* Cannot descend in empty directories */
|
/* Cannot descend in empty directories */
|
||||||
if (!ndents)
|
if (!ndents)
|
||||||
|
@ -2612,6 +2618,10 @@ nochange:
|
||||||
goto begin;
|
goto begin;
|
||||||
case S_IFREG:
|
case S_IFREG:
|
||||||
{
|
{
|
||||||
|
/* If open file is disabled on right arrow or `l`, return */
|
||||||
|
if (cfg.nonavopen && sel == SEL_NAV_IN)
|
||||||
|
continue;
|
||||||
|
|
||||||
/* If NNN_USE_EDITOR is set,
|
/* If NNN_USE_EDITOR is set,
|
||||||
* open text in EDITOR
|
* open text in EDITOR
|
||||||
*/
|
*/
|
||||||
|
@ -3573,6 +3583,10 @@ int main(int argc, char *argv[])
|
||||||
if (getenv("NNN_NO_AUTOSELECT"))
|
if (getenv("NNN_NO_AUTOSELECT"))
|
||||||
cfg.autoselect = 0;
|
cfg.autoselect = 0;
|
||||||
|
|
||||||
|
/* Disable opening files on right arrow and `l` */
|
||||||
|
if (getenv("DISABLE_FILE_OPEN_ON_NAV"))
|
||||||
|
cfg.nonavopen = 1;
|
||||||
|
|
||||||
signal(SIGINT, SIG_IGN);
|
signal(SIGINT, SIG_IGN);
|
||||||
signal(SIGQUIT, SIG_IGN);
|
signal(SIGQUIT, SIG_IGN);
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
enum action {
|
enum action {
|
||||||
SEL_BACK = 1,
|
SEL_BACK = 1,
|
||||||
SEL_GOIN,
|
SEL_GOIN,
|
||||||
|
SEL_NAV_IN,
|
||||||
SEL_NEXT,
|
SEL_NEXT,
|
||||||
SEL_PREV,
|
SEL_PREV,
|
||||||
SEL_PGDN,
|
SEL_PGDN,
|
||||||
|
@ -117,8 +118,8 @@ static struct key bindings[] = {
|
||||||
/* Inside */
|
/* Inside */
|
||||||
{ KEY_ENTER, SEL_GOIN, "", "" },
|
{ KEY_ENTER, SEL_GOIN, "", "" },
|
||||||
{ '\r', SEL_GOIN, "", "" },
|
{ '\r', SEL_GOIN, "", "" },
|
||||||
{ KEY_RIGHT, SEL_GOIN, "", "" },
|
{ KEY_RIGHT, SEL_NAV_IN, "", "" },
|
||||||
{ 'l', SEL_GOIN, "", "" },
|
{ 'l', SEL_NAV_IN, "", "" },
|
||||||
/* Next */
|
/* Next */
|
||||||
{ 'j', SEL_NEXT, "", "" },
|
{ 'j', SEL_NEXT, "", "" },
|
||||||
{ KEY_DOWN, SEL_NEXT, "", "" },
|
{ KEY_DOWN, SEL_NEXT, "", "" },
|
||||||
|
|
Loading…
Reference in a new issue