mirror of
https://github.com/jarun/nnn.git
synced 2024-11-24 11:51:27 +00:00
Mechanism to skip dir refresh after running plugin
This commit is contained in:
parent
7d171368ad
commit
f25f062537
|
@ -77,6 +77,14 @@ Now plugin `fzopen` can be run with the keybind <kbd>;o</kbd>, `mocplay` can be
|
||||||
|
|
||||||
**Method 2:** Use the _pick plugin_ shortcut to visit the plugin directory and execute a plugin. Repeating the same shortcut cancels the operation and puts you back in the original directory.
|
**Method 2:** Use the _pick plugin_ shortcut to visit the plugin directory and execute a plugin. Repeating the same shortcut cancels the operation and puts you back in the original directory.
|
||||||
|
|
||||||
|
#### Skip directory refresh after running a plugin
|
||||||
|
|
||||||
|
`nnn` refreshes a directory after running a plugin by key (Method 1 above) to reflect any chanegs in the directory by the plugin. However, there are scenarios where this isn't desired, say while running the `mediainfo` plugin on some filtered files. To achive this, add a `-` before the plugin name, e.g.:
|
||||||
|
|
||||||
|
export NNN_PLUG='o:fzopen;m:-mediainfo;p:mocplay;
|
||||||
|
|
||||||
|
Now `nnn` will not refresh the directory after running the `mediainfo` plugin.
|
||||||
|
|
||||||
## Running commands as plugin
|
## Running commands as plugin
|
||||||
|
|
||||||
To assign keys to arbitrary non-background cli commands (non-shell-interpreted) and invoke like plugins, add `_` (underscore) before the command.
|
To assign keys to arbitrary non-background cli commands (non-shell-interpreted) and invoke like plugins, add `_` (underscore) before the command.
|
||||||
|
@ -98,6 +106,7 @@ Notes:
|
||||||
1. Use single quotes for `$NNN_PLUG` so `$nnn` is not interpreted
|
1. Use single quotes for `$NNN_PLUG` so `$nnn` is not interpreted
|
||||||
2. `$nnn` should be the last argument (IF you want to pass the hovered file name)
|
2. `$nnn` should be the last argument (IF you want to pass the hovered file name)
|
||||||
3. (_Again_) add `_` before the command
|
3. (_Again_) add `_` before the command
|
||||||
|
4. To disable directory refresh after running a command as plugin prefix the command with `-_`
|
||||||
|
|
||||||
## Access level of plugins
|
## Access level of plugins
|
||||||
|
|
||||||
|
|
11
src/nnn.c
11
src/nnn.c
|
@ -5259,6 +5259,12 @@ nochange:
|
||||||
goto nochange;
|
goto nochange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tmp[0] == '-' && tmp[1]) {
|
||||||
|
++tmp;
|
||||||
|
r = FALSE; /* Do not refresh dir after completion */
|
||||||
|
} else
|
||||||
|
r = TRUE;
|
||||||
|
|
||||||
if (!run_selected_plugin(&path, tmp, newpath,
|
if (!run_selected_plugin(&path, tmp, newpath,
|
||||||
(ndents ? dents[cur].name : NULL),
|
(ndents ? dents[cur].name : NULL),
|
||||||
&lastname, &lastdir)) {
|
&lastname, &lastdir)) {
|
||||||
|
@ -5266,6 +5272,11 @@ nochange:
|
||||||
goto nochange;
|
goto nochange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!r) {
|
||||||
|
clearprompt();
|
||||||
|
goto nochange;
|
||||||
|
}
|
||||||
|
|
||||||
if (ndents)
|
if (ndents)
|
||||||
copycurname();
|
copycurname();
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue