diff options
author | Arun Prakash Jana <engineerarun@gmail.com> | 2019-11-16 07:20:18 +0530 |
---|---|---|
committer | Arun Prakash Jana <engineerarun@gmail.com> | 2019-11-16 07:20:18 +0530 |
commit | 2b4bd35ba66756b4b3df3678a8dfc1ee47693d7f (patch) | |
tree | 8af573f98769cbba3c291ccafaf5e018b4815f38 | |
parent | f31fa09f5608d9fbe922a898adbb6091396bd572 (diff) | |
download | nnn-2b4bd35ba66756b4b3df3678a8dfc1ee47693d7f.tar.gz |
Simplify running commands
-rw-r--r-- | plugins/README.md | 6 | ||||
-rw-r--r-- | src/nnn.c | 13 |
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. @@ -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]) { |