- Desktop search (default gnome-search-tool, customizable) integration
- Mimes
- Desktop opener integration
+ - Open file with a custom application
- Optionally open text files in EDITOR (fallback vi)
- Customizable bash script [nlay](https://github.com/jarun/nnn/wiki/all-about-nlay) to handle actions
- Information
- Detailed file information
- Media information (needs mediainfo or exiftool, if specified)
- Ordering
+ - Numeric order (1, 2, ... 10, 11, ...) for numeric names
- Sort by file name, modification time, size
- Convenience
- Create, rename files and directories
End, G, $, ^E | Fast entry
→, ↵, l, ^M | Open file or enter dir
←, Bksp, h, ^H | Go to parent dir
+ ^O | Open with...
Insert | Toggle navigate-as-you-type
~ | Go HOME
& | Go to initial dir
Open file or enter directory
.It Ic [Left], [Backspace], h, ^H
Back up one directory level
+.It Ic ^O
+Open with a custom application
.It Ic [Insert]
Toggle navigate-as-you-type mode
.It Ic ~
.It Ic b
Show bookmark key prompt
.It Ic ^B
-Pin current dir
+Pin current directory
.It Ic ^V
-Visit pinned dir
+Visit pinned directory
.It Ic c
-Show change dir prompt
+Show change directory prompt
.It Ic d
Toggle detail view
.It Ic D
"2End, G, $, ^E | Last entry\n"
"4→, ↵, l, ^M | Open file or enter dir\n"
"1←, Bksp, h, ^H | Go to parent dir\n"
+ "d^O | Open with...\n"
"9Insert | Toggle navigate-as-you-type\n"
"e~ | Go HOME\n"
"e& | Go to initial dir\n"
"eD | File details\n"
"em | Brief media info\n"
"eM | Full media info\n"
- "en | Create new\n"
+ "en | Create new\n"
"d^R | Rename entry\n"
"es | Toggle sort by size\n"
"eS | Toggle du mode\n"
} else if (!copier)
printmsg("NNN_COPIER is not set");
goto nochange;
+ case SEL_OPEN:
+ printprompt("open with: "); // fallthrough
case SEL_NEW:
- printprompt("name: ");
+ if (sel == SEL_NEW)
+ printprompt("name: ");
+
tmp = xreadline(NULL);
clearprompt();
if (tmp == NULL || tmp[0] == '\0')
goto nochange;
}
+ if (sel == SEL_OPEN) {
+ printprompt("Press 'c' for cli mode");
+ cleartimeout();
+ r = getch();
+ settimeout();
+ if (r == 'c')
+ r = F_NORMAL;
+ else
+ r = F_NOWAIT;
+
+ mkpath(path, dents[cur].name, newpath, PATH_MAX);
+ spawn(tmp, newpath, NULL, path, r);
+
+ continue;
+ }
+
/* Open the descriptor to currently open directory */
fd = open(path, O_RDONLY | O_DIRECTORY);
if (fd == -1) {
SEL_MTIME,
SEL_REDRAW,
SEL_COPY,
+ SEL_OPEN,
SEL_NEW,
SEL_RENAME,
SEL_HELP,
{ KEY_F(5), SEL_REDRAW, "", "" }, /* Undocumented */
/* Copy currently selected file path */
{ CONTROL('K'), SEL_COPY, "", "" },
+ /* Open in a custom application */
+ { CONTROL('O'), SEL_OPEN, "", "" },
/* Create a new file */
{ 'n', SEL_NEW, "", "" },
/* Show rename prompt */