- [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)
- 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)
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:
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:
.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
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"));
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);