diff options
| author | 2018-06-17 21:47:19 +0530 | |
|---|---|---|
| committer | 2018-06-17 21:47:19 +0530 | |
| commit | 7a1dd541a685f7aaa0caa92a7e00994397160ccc (patch) | |
| tree | b8f673bf9af1387f27756ef107719192e9a74fbe | |
| parent | 41532ef0027020b82324b49c20fcbf61abb0200c (diff) | |
| download | nnn-7a1dd541a685f7aaa0caa92a7e00994397160ccc.tar.gz | |
Support multiple scripts
| -rw-r--r-- | README.md | 20 | ||||
| -rw-r--r-- | nnn.1 | 8 | ||||
| -rw-r--r-- | nnn.c | 13 |
3 files changed, 36 insertions, 5 deletions
@@ -59,7 +59,7 @@ Have fun with it! Missing a feature? Want to contribute? Head to the rolling [To - [cd on quit](#cd-on-quit) - [copy file paths to clipboard](#copy-file-paths-to-clipboard) - [copy file paths when X is missing](#copy-file-paths-when-x-is-missing) - - [run a custom script](#run-a-custom-script) + - [run custom scripts](#run-custom-scripts) - [change dir color](#change-dir-color) - [file copy, move, delete](#file-copy-move-delete) - [boost chdir prompt](#boost-chdir-prompt) @@ -100,7 +100,7 @@ Have fun with it! Missing a feature? Want to contribute? Head to the rolling [To - Create, rename files and directories - Batch rename/move/delete current directory entries in vidir (from moreutils) - Spawn SHELL (fallback sh) in the current directory - - Run a custom script in the current directory + - Run custom scripts in the current directory - Copy absolute file paths with/without X (*easy* shell integration) - Change directory at exit (*easy* shell integration) - Open any file in EDITOR (fallback vi) or PAGER (fallback less) @@ -416,7 +416,7 @@ so you can - Note that you may want to keep quotes disabled in this case. -#### run a custom script +#### run custom scripts Export the path to the custom executable script: @@ -436,6 +436,20 @@ Sample (fish shell) script to fuzzy find files in fzy and open with xdg-open: Press <kbd>R</kbd> to run the script in the current directory. +It's possible to run multiple scripts with `nnn` as long as the scripts are in the same location and share the same prefix. To enable multiple scripts, + + export NNN_MULTISCRIPT=1 + +With the example of `NNN_SCRIPT` above, some more scripts could be: + + /usr/local/bin/nscript1 + /usr/local/bin/nscript2 + /usr/local/bin/nscriptcustom1 + /usr/local/bin/nscriptcustom2 + and so on... + +Type the correct suffix when prompted on pressing the keybind <kbd>R</kbd>. To use the base script (`NNN_SCRIPT`), just press <kbd>Enter</kbd>. + #### change dir color The default color for directories is blue. Option `-c` accepts color codes from 0 to 7 to use a different color: @@ -265,8 +265,14 @@ names in the shell. .Pp \fBNNN_SCRIPT:\fR path to a custom script to run. .Bd -literal - export NNN_SCRIPT=/usr/local/bin/script.sh + export NNN_SCRIPT=/usr/local/bin/nscript .Ed +.Pp +\fBNNN_MULTISCRIPT:\fR run multiple custom scripts. +.Bd -literal + export NNN_MULTISCRIPT=1 +.Ed +.Pp \fBNNN_SHOW_HIDDEN:\fR show hidden files. .Bd -literal export NNN_SHOW_HIDDEN=1 @@ -2005,6 +2005,8 @@ show_help(char *path) dprintf(fd, "NNN_NO_X: %s (%s)\n", getenv("NNN_NO_X"), g_cppath); if (getenv("NNN_SCRIPT")) dprintf(fd, "NNN_SCRIPT: %s\n", getenv("NNN_SCRIPT")); + if (getenv("NNN_MULTISCRIPT")) + dprintf(fd, "NNN_MULTISCRIPT: %s\n", getenv("NNN_MULTISCRIPT")); if (getenv("NNN_SHOW_HIDDEN")) dprintf(fd, "NNN_SHOW_HIDDEN: %s\n", getenv("NNN_SHOW_HIDDEN")); @@ -3228,8 +3230,17 @@ nochange: if (sel == SEL_RUNSCRIPT) { tmp = getenv("NNN_SCRIPT"); - if (tmp) + if (tmp) { + if (getenv("NNN_MULTISCRIPT")) { + size_t _len = xstrlcpy(newpath, tmp, PATH_MAX); + tmp = xreadline(NULL, "script suffix: "); + if (tmp && tmp[0]) + xstrlcpy(newpath + _len - 1, tmp, PATH_MAX - _len); + + tmp = newpath; + } spawn(run, tmp, NULL, path, F_NORMAL | F_SIGINT); + } } else { spawn(run, NULL, NULL, path, F_NORMAL | F_MARKER); |