aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-11-16 07:20:18 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-11-16 07:20:18 +0530
commit2b4bd35ba66756b4b3df3678a8dfc1ee47693d7f (patch)
tree8af573f98769cbba3c291ccafaf5e018b4815f38
parentf31fa09f5608d9fbe922a898adbb6091396bd572 (diff)
downloadnnn-2b4bd35ba66756b4b3df3678a8dfc1ee47693d7f.tar.gz
Simplify running commands
-rw-r--r--plugins/README.md6
-rw-r--r--src/nnn.c13
2 files changed, 16 insertions, 3 deletions
diff --git a/plugins/README.md b/plugins/README.md
index e024488..fcf5140 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -68,7 +68,11 @@ With this, plugin `fzy-open` can be run with the keybind <kbd>:o</kbd>, `mocplay
To assign keys to arbitrary non-background cli commands (non-shell-interpreted) and invoke like plugins, add `_` (underscore) before the command. For example:
- export NNN_PLUG='x:_chmod +x;o:fzy-open'
+ export NNN_PLUG='x:_chmod +x $NNN;g:_git log;s:_smplayer $NNN;o:fzy-open'
+ Notes:
+ 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)
+ 3. (_again_) add `_` before the command
**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.
diff --git a/src/nnn.c b/src/nnn.c
index 42107d9..5d5fff4 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -4970,8 +4970,14 @@ nochange:
if (tmp[0] == '_' && tmp[1]) {
xstrlcpy(newpath, ++tmp, PATH_MAX);
- spawn(newpath, (ndents ? dents[cur].name : NULL),
- NULL, path, F_CLI | F_CONFIRM);
+ if (is_suffix(newpath, " $NNN")) {
+ tmp = (ndents ? dents[cur].name : NULL);
+ /* Set `\0` to clear ' $NNN' suffix */
+ newpath[strlen(newpath) - 5] = '\0';
+ } else
+ tmp = NULL;
+
+ spawn(newpath, tmp, NULL, path, F_CLI | F_CONFIRM);
} else {
if (!run_selected_plugin(&path, tmp, newpath, NULL,
(ndents ? dents[cur].name : NULL),
@@ -4981,6 +4987,9 @@ nochange:
goto nochange;
}
}
+
+ if (ndents)
+ copycurname();
} else {
cfg.runplugin ^= 1;
if (!cfg.runplugin && rundir[0]) {