2023-08-27 04:25:13 +00:00
|
|
|
.Dd Aug 27, 2023
|
2017-03-30 18:25:30 +00:00
|
|
|
.Dt NNN 1
|
2014-10-22 11:52:45 +00:00
|
|
|
.Os
|
|
|
|
.Sh NAME
|
2017-03-30 18:25:30 +00:00
|
|
|
.Nm nnn
|
2020-09-10 21:43:08 +00:00
|
|
|
.Nd The unorthodox terminal file manager.
|
2014-10-22 11:52:45 +00:00
|
|
|
.Sh SYNOPSIS
|
2017-06-04 17:45:08 +00:00
|
|
|
.Nm
|
2021-10-22 01:12:42 +00:00
|
|
|
.Op Ar -aAcCdDeEfgHJKnQrRSuUVxh
|
2017-12-24 09:51:38 +00:00
|
|
|
.Op Ar -b key
|
2021-06-20 07:19:24 +00:00
|
|
|
.Op Ar -F val
|
|
|
|
.Op Ar -l val
|
2018-11-23 17:11:47 +00:00
|
|
|
.Op Ar -p file
|
2020-05-29 23:47:06 +00:00
|
|
|
.Op Ar -P key
|
2019-12-20 10:19:13 +00:00
|
|
|
.Op Ar -s name
|
2020-01-17 13:36:42 +00:00
|
|
|
.Op Ar -t secs
|
2020-03-17 21:05:05 +00:00
|
|
|
.Op Ar -T key
|
2017-04-14 18:44:25 +00:00
|
|
|
.Op Ar PATH
|
2014-10-22 11:52:45 +00:00
|
|
|
.Sh DESCRIPTION
|
|
|
|
.Nm
|
2021-03-30 03:40:53 +00:00
|
|
|
.Pq Nnn's Not Noice
|
|
|
|
is a performance-optimized, feature-packed fork of noice
|
|
|
|
.Em http://git.2f30.org/noice/
|
|
|
|
with seamless desktop integration, simplified navigation,
|
|
|
|
.Em type-to-nav
|
2021-12-25 02:39:29 +00:00
|
|
|
mode with dir auto-enter, disk usage analyzer mode, bookmarks,
|
2021-03-30 03:40:53 +00:00
|
|
|
contexts, application launcher, familiar navigation shortcuts,
|
|
|
|
subshell spawning and much more. It remains a simple and
|
|
|
|
efficient file manager that stays out of your way.
|
2014-10-22 11:52:45 +00:00
|
|
|
.Pp
|
|
|
|
.Nm
|
2022-12-10 14:54:49 +00:00
|
|
|
opens the current working directory if
|
2017-04-14 18:44:25 +00:00
|
|
|
.Ar PATH
|
2022-12-10 18:33:24 +00:00
|
|
|
is not specified. If
|
2022-12-10 14:54:49 +00:00
|
|
|
.Ar PATH
|
2022-12-10 18:33:24 +00:00
|
|
|
is specified and it exists,
|
2022-12-10 14:54:49 +00:00
|
|
|
.Nm
|
2022-12-10 18:33:24 +00:00
|
|
|
will open it. If the
|
|
|
|
.Ar PATH
|
|
|
|
doesn't exist and ends with a \fB/\fR,
|
|
|
|
.Nm
|
|
|
|
will attempt to create the directory tree and open it. Otherwise,
|
|
|
|
.Ar PATH
|
|
|
|
is considered a path to a regular file and
|
|
|
|
.Nm
|
|
|
|
attempts to create the complete directory tree to the file, open
|
|
|
|
the parent directory and prompt to create the new file in it with
|
|
|
|
the base filename.
|
2018-11-11 10:52:58 +00:00
|
|
|
.Sh KEYBINDS
|
2014-10-22 12:28:00 +00:00
|
|
|
.Pp
|
2021-03-30 03:40:53 +00:00
|
|
|
Press
|
|
|
|
.Ql \&?
|
|
|
|
in
|
2019-03-17 16:36:28 +00:00
|
|
|
.Nm
|
|
|
|
to see the list of keybinds.
|
2018-11-11 10:52:58 +00:00
|
|
|
.Sh OPTIONS
|
2017-09-30 00:17:38 +00:00
|
|
|
.Pp
|
2017-04-01 05:18:18 +00:00
|
|
|
.Nm
|
2017-04-13 13:43:33 +00:00
|
|
|
supports the following options:
|
2017-04-01 05:18:18 +00:00
|
|
|
.Pp
|
2020-05-23 12:03:37 +00:00
|
|
|
.Fl a
|
2023-04-13 20:17:50 +00:00
|
|
|
auto-setup temporary \fBNNN_FIFO\fR (described in \fIENVIRONMENT\fR section)
|
2020-05-23 12:03:37 +00:00
|
|
|
.Pp
|
2020-01-08 22:04:10 +00:00
|
|
|
.Fl A
|
2022-06-14 12:06:17 +00:00
|
|
|
disable directory auto-enter on unique filter match
|
2020-01-08 22:04:10 +00:00
|
|
|
.Pp
|
2017-12-24 09:51:38 +00:00
|
|
|
.Fl "b key"
|
|
|
|
specify bookmark key to open
|
|
|
|
.Pp
|
2022-07-29 17:05:43 +00:00
|
|
|
.Fl B
|
|
|
|
use bsdtar for archives (default: atool)
|
|
|
|
.Pp
|
2019-10-02 22:03:15 +00:00
|
|
|
.Fl c
|
2020-04-13 21:32:53 +00:00
|
|
|
indicates that the opener is a cli-only opener (overrides -e)
|
2019-10-02 22:03:15 +00:00
|
|
|
.Pp
|
2020-06-11 05:46:40 +00:00
|
|
|
.Fl C
|
2021-05-07 05:09:02 +00:00
|
|
|
8-color scheme - color directories by context, disable file colors
|
2020-06-11 05:46:40 +00:00
|
|
|
.Pp
|
2019-03-11 14:51:41 +00:00
|
|
|
.Fl d
|
2019-08-04 04:25:14 +00:00
|
|
|
detail mode
|
2019-03-11 14:51:41 +00:00
|
|
|
.Pp
|
2020-09-01 17:24:43 +00:00
|
|
|
.Fl D
|
|
|
|
show directories in context color with \fBNNN_FCOLORS\fR set
|
|
|
|
.Pp
|
2020-01-17 13:36:42 +00:00
|
|
|
.Fl e
|
|
|
|
open text files in $VISUAL (else $EDITOR, fallback vi) [preferably CLI]
|
|
|
|
.Pp
|
2019-11-24 13:53:09 +00:00
|
|
|
.Fl E
|
|
|
|
use $EDITOR for internal undetached edits
|
2019-10-18 22:11:39 +00:00
|
|
|
.Pp
|
2020-03-20 16:54:15 +00:00
|
|
|
.Fl f
|
|
|
|
use readline history file
|
|
|
|
.Pp
|
2021-06-20 07:19:24 +00:00
|
|
|
.Fl "F val"
|
|
|
|
fifo notification mode
|
2021-06-20 16:11:16 +00:00
|
|
|
0: notify as previewer, 1: notify as explorer
|
2021-06-20 07:19:24 +00:00
|
|
|
.Pp
|
2019-12-14 08:36:00 +00:00
|
|
|
.Fl g
|
|
|
|
use regex filters instead of substring match
|
|
|
|
.Pp
|
2019-08-04 04:25:14 +00:00
|
|
|
.Fl H
|
|
|
|
show hidden files
|
|
|
|
.Pp
|
2021-10-17 06:27:38 +00:00
|
|
|
.Fl i
|
2021-10-23 13:48:12 +00:00
|
|
|
show current file information in info bar (may be slow)
|
2021-10-17 06:27:38 +00:00
|
|
|
.Pp
|
2020-08-29 23:55:08 +00:00
|
|
|
.Fl J
|
2022-06-15 14:18:11 +00:00
|
|
|
disable auto-advance on selection
|
2021-12-25 02:39:29 +00:00
|
|
|
(eg. selecting an entry will no longer move cursor to the next entry)
|
2020-08-29 23:55:08 +00:00
|
|
|
.Pp
|
2019-10-11 15:56:03 +00:00
|
|
|
.Fl K
|
2022-09-12 21:04:54 +00:00
|
|
|
test for keybind collision and exit
|
2019-10-11 15:56:03 +00:00
|
|
|
.Pp
|
2020-05-10 05:51:37 +00:00
|
|
|
.Fl "l val"
|
|
|
|
number of lines to move per mouse wheel scroll
|
|
|
|
.Pp
|
2019-07-14 17:30:14 +00:00
|
|
|
.Fl n
|
2020-04-12 13:31:02 +00:00
|
|
|
start in type-to-nav mode
|
2019-07-14 17:30:14 +00:00
|
|
|
.Pp
|
2019-08-16 18:10:43 +00:00
|
|
|
.Fl o
|
|
|
|
open files only on Enter key
|
|
|
|
.Pp
|
2018-11-23 17:11:47 +00:00
|
|
|
.Fl "p file"
|
|
|
|
copy (or \fIpick\fR) selection to file, or stdout if file='-'
|
|
|
|
.Pp
|
2020-05-29 23:47:06 +00:00
|
|
|
.Fl "P key"
|
|
|
|
specify plugin key to run
|
|
|
|
.Pp
|
2019-12-14 17:58:13 +00:00
|
|
|
.Fl Q
|
2020-01-15 05:39:51 +00:00
|
|
|
disable confirmation on quit with multiple contexts active
|
2019-12-14 17:58:13 +00:00
|
|
|
.Pp
|
2019-08-23 14:48:17 +00:00
|
|
|
.Fl r
|
2020-01-15 05:39:51 +00:00
|
|
|
show cp, mv progress
|
2021-12-23 22:51:21 +00:00
|
|
|
(Linux-only, needs \fIadvcpmv\fR; '^T' shows the progress on BSD/macOS)
|
2019-08-23 14:48:17 +00:00
|
|
|
.Pp
|
2019-12-01 17:30:06 +00:00
|
|
|
.Fl R
|
2021-12-23 22:51:21 +00:00
|
|
|
disable rollover at edges (eg. pressing \fIdown\fR while on the last
|
|
|
|
entry will no longer move cursor to the first entry and vice\-versa)
|
2019-12-01 17:30:06 +00:00
|
|
|
.Pp
|
2019-12-20 10:19:13 +00:00
|
|
|
.Fl "s name"
|
|
|
|
load a session by name
|
|
|
|
.Pp
|
2017-04-14 11:20:16 +00:00
|
|
|
.Fl S
|
2020-04-17 23:24:07 +00:00
|
|
|
persistent session
|
2017-04-13 13:43:33 +00:00
|
|
|
.Pp
|
2020-01-17 13:36:42 +00:00
|
|
|
.Fl "t secs"
|
|
|
|
idle timeout in seconds to lock terminal
|
|
|
|
.Pp
|
2020-03-17 21:05:05 +00:00
|
|
|
.Fl "T key"
|
|
|
|
sort order
|
|
|
|
keys: 'a'u / 'd'u / 'e'xtension / 'r'everse / 's'ize / 't'ime / 'v'ersion
|
2021-09-08 13:44:05 +00:00
|
|
|
capitalize to reverse (except 'r')
|
2020-03-17 21:05:05 +00:00
|
|
|
.Pp
|
2021-03-17 17:36:08 +00:00
|
|
|
.Fl u
|
|
|
|
use selection if available, don't prompt to choose between selection and hovered entry
|
|
|
|
.Pp
|
2020-10-31 15:17:07 +00:00
|
|
|
.Fl U
|
|
|
|
show user and group names in status bar
|
|
|
|
.Pp
|
2019-12-25 17:03:38 +00:00
|
|
|
.Fl V
|
2019-12-28 05:45:38 +00:00
|
|
|
show version and exit
|
2019-12-25 17:03:38 +00:00
|
|
|
.Pp
|
2019-12-12 14:21:08 +00:00
|
|
|
.Fl x
|
2021-12-25 01:46:54 +00:00
|
|
|
show notifications on selection cp, mv, rm completion (requires \fI.ntfy\fR plugin)
|
2021-12-25 02:12:18 +00:00
|
|
|
copy path to system clipboard on selection (requires \fI.cbcp\fR plugin)
|
2021-05-31 12:11:38 +00:00
|
|
|
show xterm title (if non-picker mode)
|
2019-12-12 14:21:08 +00:00
|
|
|
.Pp
|
2017-04-14 18:44:25 +00:00
|
|
|
.Fl h
|
|
|
|
show program help and exit
|
2014-10-22 11:52:45 +00:00
|
|
|
.Sh CONFIGURATION
|
2020-01-15 05:39:51 +00:00
|
|
|
There is no configuration file. Associated files are at
|
|
|
|
.Pp
|
2021-03-30 03:40:53 +00:00
|
|
|
.Pa ${XDG_CONFIG_HOME:-$HOME/.config}/nnn/
|
2017-04-23 17:42:54 +00:00
|
|
|
.Pp
|
2020-01-15 05:39:51 +00:00
|
|
|
Configuration is done using a few optional (set if you need) environment
|
|
|
|
variables. See ENVIRONMENT section.
|
|
|
|
.Pp
|
|
|
|
.Nm
|
|
|
|
uses \fIxdg-open\fR (on Linux), \fIopen(1)\fR (on macOS), \fIcygstart\fR on
|
|
|
|
(Cygwin) and \fIopen\fR on (Haiku) as the desktop opener. It's also possible
|
|
|
|
to specify a custom opener. See ENVIRONMENT section.
|
2018-11-08 12:59:38 +00:00
|
|
|
.Sh CONTEXTS
|
2020-06-11 05:41:35 +00:00
|
|
|
Open multiple locations with 4 contexts. The status is shown in the top left
|
|
|
|
corner:
|
2018-11-08 12:59:38 +00:00
|
|
|
.Pp
|
2019-08-21 02:13:15 +00:00
|
|
|
- the current context is in reverse video
|
2018-11-08 12:59:38 +00:00
|
|
|
.br
|
2019-03-23 14:14:07 +00:00
|
|
|
- other active contexts are underlined
|
2018-11-08 12:59:38 +00:00
|
|
|
.br
|
2019-03-23 14:14:07 +00:00
|
|
|
- rest are inactive
|
2018-11-08 12:59:38 +00:00
|
|
|
.Pp
|
2020-04-09 04:18:04 +00:00
|
|
|
A new context copies the state of the previous context. Each context can have
|
|
|
|
its own color. See ENVIRONMENT section.
|
2019-10-18 22:11:39 +00:00
|
|
|
.Sh SESSIONS
|
2020-01-15 05:39:51 +00:00
|
|
|
Sessions are a way to save and restore states of work. A session stores the
|
2021-05-20 04:26:55 +00:00
|
|
|
settings and contexts. Sessions can be loaded at runtime or with a program
|
|
|
|
option.
|
2019-10-18 22:11:39 +00:00
|
|
|
.Pp
|
2021-05-20 04:26:55 +00:00
|
|
|
- When a session is loaded at runtime, the last working state is saved
|
|
|
|
automatically to a dedicated "auto session" session file. Session option
|
|
|
|
\fIrestore\fR would restore the "auto session".
|
|
|
|
.br
|
|
|
|
- The persistent session option is global. If it is used, the last active session
|
|
|
|
will be updated with the final state at program quit.
|
|
|
|
.br
|
|
|
|
- The "auto session" is used in persistent session mode if no session is active.
|
|
|
|
.br
|
|
|
|
- Listing input stream and opening a bookmark by key have a higher priority to
|
|
|
|
session options (-s/-S).
|
2020-11-13 06:01:11 +00:00
|
|
|
.Pp
|
2020-01-15 05:39:51 +00:00
|
|
|
All the session files are located by session name in the directory
|
|
|
|
.Pp
|
|
|
|
\fB${XDG_CONFIG_HOME:-$HOME/.config}/nnn/sessions\fR
|
2019-10-18 22:11:39 +00:00
|
|
|
.Pp
|
2021-05-20 04:26:55 +00:00
|
|
|
"@" is the "auto session" file.
|
2014-10-22 11:52:45 +00:00
|
|
|
.Sh FILTERS
|
2020-04-09 04:18:04 +00:00
|
|
|
Filters are strings (or regex patterns) to find matching entries in the current
|
|
|
|
directory instantly (\fIsearch-as-you-type\fR). Matches are case-insensitive by
|
|
|
|
default. The last filter in each context is persisted at runtime or in saved
|
|
|
|
sessions.
|
2022-06-14 08:19:41 +00:00
|
|
|
.br
|
|
|
|
When there's a unique match and it's a directory,
|
|
|
|
.Nm
|
|
|
|
auto enters the directory. Use the relevant program option to disable this.
|
2020-01-11 05:53:57 +00:00
|
|
|
.Pp
|
2020-02-27 14:21:04 +00:00
|
|
|
Special keys at filter prompt:
|
|
|
|
.Bd -literal
|
2020-07-12 18:50:12 +00:00
|
|
|
-------- + ---------------------------------------
|
|
|
|
Key | Function
|
|
|
|
-------- + ---------------------------------------
|
|
|
|
^char | Usual keybind functionality
|
|
|
|
Esc | Exit filter prompt but skip dir refresh
|
2022-08-04 15:38:38 +00:00
|
|
|
Alt+Esc | Unfilter, quit context
|
2020-07-12 18:50:12 +00:00
|
|
|
-------- + ---------------------------------------
|
2020-02-27 14:21:04 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
|
|
|
Special keys at \fBempty filter prompt\fR:
|
|
|
|
.Bd -literal
|
|
|
|
------ + ---------------------------------------
|
|
|
|
Key | Function
|
|
|
|
------ + ---------------------------------------
|
|
|
|
? | Show help and config screen
|
|
|
|
/ | Toggle between string and regex
|
|
|
|
: | Toggle case-sensitivity
|
|
|
|
^L | Clear filter (\fIif prompt is non-empty\fR)
|
|
|
|
| OR apply last filter
|
2021-04-25 18:59:35 +00:00
|
|
|
Bksp | Stay at filter prompt and refresh dir
|
|
|
|
Del | Stay at filter prompt and refresh dir
|
2020-02-27 14:21:04 +00:00
|
|
|
------ + ---------------------------------------
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2022-06-14 08:19:41 +00:00
|
|
|
Common regex use cases:
|
|
|
|
.Pp
|
|
|
|
(1) To list all matches starting with the filter expression,
|
|
|
|
start the expression with a '^' (caret) symbol.
|
|
|
|
.br
|
|
|
|
(2) Type '\\.mkv' to list all MKV files.
|
|
|
|
.br
|
|
|
|
(3) Use '.*' to match any character (\fIsort of\fR fuzzy search).
|
|
|
|
.br
|
|
|
|
(4) Exclude filenames having 'nnn' (compiled with PCRE lib): '^(?!nnn)'
|
|
|
|
.Pp
|
|
|
|
In the \fBtype-to-nav\fR mode directories are opened in filter
|
|
|
|
mode, allowing continuous navigation.
|
|
|
|
.Pp
|
2020-02-27 14:21:04 +00:00
|
|
|
Additional special keys at \fBempty filter prompt\fR
|
2020-04-12 13:31:02 +00:00
|
|
|
in \fBtype-to-nav\fR mode:
|
2020-02-27 14:21:04 +00:00
|
|
|
.Bd -literal
|
|
|
|
------ + ------------------------
|
|
|
|
Key | Function
|
|
|
|
------ + ------------------------
|
|
|
|
' | Go to first non-dir file
|
2022-04-16 12:06:07 +00:00
|
|
|
+ | Toggle file selection
|
2020-07-07 02:27:43 +00:00
|
|
|
, | Mark CWD
|
2020-02-27 14:21:04 +00:00
|
|
|
- | Go to last visited dir
|
|
|
|
. | Show hidden files
|
|
|
|
; | Run a plugin by its key
|
|
|
|
= | Launch a GUI application
|
2020-03-20 18:16:58 +00:00
|
|
|
> | Export file list
|
2020-02-27 14:21:04 +00:00
|
|
|
@ | Visit start dir
|
|
|
|
] | Show command prompt
|
|
|
|
` | Visit /
|
|
|
|
~ | Go HOME
|
|
|
|
------ + ------------------------
|
|
|
|
.Ed
|
2019-04-21 18:37:48 +00:00
|
|
|
.Sh SELECTION
|
2020-02-03 03:16:14 +00:00
|
|
|
.Nm
|
|
|
|
allows file selection across directories and contexts!
|
|
|
|
.Pp
|
2019-12-13 18:47:16 +00:00
|
|
|
There are 3 groups of keybinds to add files to selection:
|
2018-01-13 20:13:30 +00:00
|
|
|
.Pp
|
2020-04-09 04:18:04 +00:00
|
|
|
(1) hovered file selection toggle
|
|
|
|
- deselects if '+' is visible before the entry, else adds to selection
|
2018-01-13 20:13:30 +00:00
|
|
|
.br
|
2020-04-09 04:18:04 +00:00
|
|
|
(2) add a range of files to selection
|
|
|
|
- repeat the range key on the same entry twice to clear selection completely
|
2019-10-06 14:22:30 +00:00
|
|
|
.br
|
|
|
|
(3) add all files in the current directory to selection
|
2019-09-29 17:29:27 +00:00
|
|
|
.Pp
|
2020-01-13 18:50:05 +00:00
|
|
|
A selection can be edited, copied, moved, removed, archived or linked.
|
2019-11-29 15:28:12 +00:00
|
|
|
.Pp
|
2020-01-15 05:39:51 +00:00
|
|
|
Absolute paths of the selected files are copied to \fB.selection\fR file in
|
2020-04-10 13:02:28 +00:00
|
|
|
the config directory. The selection file is shared between multiple program
|
2021-05-23 14:38:11 +00:00
|
|
|
instances. Selection from multiple instances are not merged. The last instance
|
2021-05-07 03:42:00 +00:00
|
|
|
writing to the file overwrites earlier contents. If you have 2 instances of
|
2020-04-10 13:02:28 +00:00
|
|
|
.Nm
|
|
|
|
\fIopen\fR in 2 panes of a terminal multiplexer, you can select in one pane and
|
2021-08-11 18:31:01 +00:00
|
|
|
use the selection in the other pane. The selection gets cleared in the
|
|
|
|
.Nm
|
|
|
|
instance where the selection was made on mv/rm (but not on cp).
|
2020-01-15 05:39:51 +00:00
|
|
|
.Pp
|
2020-06-15 14:24:44 +00:00
|
|
|
.Nm
|
2021-07-13 21:07:53 +00:00
|
|
|
clears the selection after a successful operation with the selection. Plugins
|
|
|
|
are allowed to define the behaviour individually.
|
2021-05-07 03:42:00 +00:00
|
|
|
.Pp
|
2021-07-10 01:49:39 +00:00
|
|
|
To edit the selection use the _edit selection_ key. Editing doesn't end the
|
2021-07-13 21:07:53 +00:00
|
|
|
selection mode. You can add more files to the selection and edit the list
|
|
|
|
again. If no file is selected in the current session, this option attempts
|
|
|
|
to list the selection file.
|
2023-01-29 17:54:24 +00:00
|
|
|
.Pp
|
|
|
|
.Nm
|
|
|
|
can show the total size of non-filtered selected files listed in a
|
|
|
|
directory. For directories, only the size of the directory is added by
|
|
|
|
default. To add the size of the contents of a directory, switch to du mode.
|
2020-06-09 05:14:09 +00:00
|
|
|
.Sh FIND AND LIST
|
|
|
|
There are two ways to search and list:
|
|
|
|
.Pp
|
|
|
|
- feed a list of file paths as input
|
|
|
|
.br
|
|
|
|
- search using a plugin (e.g. \fIfinder\fR) and list the results
|
2020-02-03 03:16:14 +00:00
|
|
|
.Pp
|
2020-06-09 05:14:09 +00:00
|
|
|
File paths must be NUL-separated ('\\0'). Paths and can be relative to the
|
|
|
|
current directory or absolute. Invalid paths in the input are ignored. Input
|
2022-07-31 07:19:42 +00:00
|
|
|
processing limit is 16,384 paths or 64 MiB (max_paths x max_path_len) of data.
|
2020-02-03 03:16:14 +00:00
|
|
|
.Pp
|
2020-06-09 05:14:09 +00:00
|
|
|
To list the input stream, start
|
2020-02-03 03:16:14 +00:00
|
|
|
.Nm
|
2020-06-09 05:14:09 +00:00
|
|
|
by writing to its standard input. E.g., to list files in current
|
2020-04-09 04:18:04 +00:00
|
|
|
directory larger than
|
2020-02-03 03:16:14 +00:00
|
|
|
1M:
|
|
|
|
.Bd -literal
|
|
|
|
find -maxdepth 1 -size +1M -print0 | nnn
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-04-09 04:18:04 +00:00
|
|
|
or redirect a list from a file:
|
2020-02-03 03:16:14 +00:00
|
|
|
.Bd -literal
|
|
|
|
nnn < files.txt
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-04-10 12:30:52 +00:00
|
|
|
Handy bash/zsh shell function to list files by mime-type in current directory:
|
|
|
|
.Bd -literal
|
|
|
|
# to show video files, run: list video
|
|
|
|
|
|
|
|
list ()
|
|
|
|
{
|
|
|
|
find . -maxdepth 1 | file -if- | grep "$1" | awk -F: '{printf "%s\0", $1}' | nnn
|
|
|
|
}
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-02-03 03:16:14 +00:00
|
|
|
A temporary directory will be created containing symlinks to the given
|
|
|
|
paths. Any action performed on these symlinks will be performed only on their
|
|
|
|
targets, after which they might become invalid.
|
|
|
|
.Pp
|
2020-11-13 06:01:11 +00:00
|
|
|
Right arrow or 'l' on a symlink in the listing dir takes to the target
|
|
|
|
file. Press '-' to return to the listing dir. Press 'Enter' to open the symlink.
|
2020-11-13 06:27:34 +00:00
|
|
|
.Pp
|
|
|
|
Listing input stream can be scripted. It can be extended to pick (option -p)
|
|
|
|
selected entries from the listed results.
|
2021-12-26 05:01:05 +00:00
|
|
|
.Sh BOOKMARKS
|
|
|
|
There are 2 ways (can be used together) to manage bookmarks.
|
|
|
|
.Pp
|
2023-04-13 20:17:50 +00:00
|
|
|
(1) Bookmark keys: See \fBNNN_BMS\fR under \fIENVIORNMENT\fR section on how to set
|
2022-05-28 17:44:07 +00:00
|
|
|
bookmark keys.
|
2022-05-28 00:24:55 +00:00
|
|
|
|
2023-04-13 20:17:50 +00:00
|
|
|
The select bookmark key \fIb\fR lists all the bookmark keys set in \fBNNN_BMS\fR
|
2022-05-28 17:44:07 +00:00
|
|
|
in the bookmarks prompt.
|
|
|
|
.Pp
|
|
|
|
(2) Symlinked bookmarks: A symlinked bookmark to the current directory can
|
|
|
|
be created with the \fIB\fR key (or manually under ~/.config/nnn/bookmarks).
|
2022-05-28 00:24:55 +00:00
|
|
|
|
|
|
|
Pressing 'Enter' at the bookmarks prompt takes to this directory.
|
2023-04-13 20:17:50 +00:00
|
|
|
If \fBNNN_BMS\fR is not set, the select bookmark key directly opens it.
|
2022-05-28 18:16:46 +00:00
|
|
|
.Pp
|
|
|
|
On entering a bookmark, the directory where the select bookmark key was
|
|
|
|
pressed is set as the previous directory. Press '-' to return to it.
|
2021-12-26 05:01:05 +00:00
|
|
|
.Pp
|
2020-01-15 05:39:51 +00:00
|
|
|
.Sh UNITS
|
|
|
|
The minimum file size unit is byte (B). The rest are K, M, G, T, P, E, Z, Y
|
|
|
|
(powers of 1024), same as the default units in \fIls\fR.
|
2015-11-26 15:03:26 +00:00
|
|
|
.Sh ENVIRONMENT
|
2020-09-15 13:36:22 +00:00
|
|
|
The SHELL, VISUAL (else EDITOR) and PAGER environment variables are
|
2020-01-17 13:36:42 +00:00
|
|
|
used. A single combination of arguments is supported for SHELL and PAGER.
|
2016-08-21 08:28:53 +00:00
|
|
|
.Pp
|
2020-03-15 15:25:14 +00:00
|
|
|
\fBNNN_OPTS:\fR binary options to
|
|
|
|
.Nm
|
|
|
|
.Bd -literal
|
|
|
|
export NNN_OPTS="cEnrx"
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2019-12-29 17:51:18 +00:00
|
|
|
\fBNNN_OPENER:\fR specify a custom file opener.
|
|
|
|
.Bd -literal
|
|
|
|
export NNN_OPENER=nuke
|
|
|
|
|
2020-03-15 15:25:14 +00:00
|
|
|
NOTE: 'nuke' is a file opener available in the plugin repository.
|
2019-12-29 17:51:18 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-01-15 05:39:51 +00:00
|
|
|
\fBNNN_BMS:\fR bookmark string as \fIkey_char:location\fR pairs
|
2020-02-28 13:50:42 +00:00
|
|
|
separated by \fI;\fR:
|
2017-06-11 04:15:50 +00:00
|
|
|
.Bd -literal
|
2021-06-06 16:21:30 +00:00
|
|
|
export NNN_BMS="d:$HOME/Docs;u:/home/user/Cam Uploads;D:$HOME/Downloads/"
|
2019-08-14 14:27:44 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2021-12-26 05:01:05 +00:00
|
|
|
These bookmarks are listed in the help and config screen (key ?).
|
|
|
|
.Pp
|
2020-05-05 17:39:24 +00:00
|
|
|
\fBNNN_PLUG:\fR directly executable plugins as \fIkey_char:plugin\fR pairs
|
2020-02-28 13:50:42 +00:00
|
|
|
separated by \fI;\fR:
|
2019-08-14 14:27:44 +00:00
|
|
|
.Bd -literal
|
2020-05-04 14:47:40 +00:00
|
|
|
export NNN_PLUG='f:finder;o:fzopen;p:mocplay;d:diffs;t:nmount;v:imgview'
|
2019-08-14 14:27:44 +00:00
|
|
|
|
2019-12-29 17:51:18 +00:00
|
|
|
NOTES:
|
2020-05-13 07:25:46 +00:00
|
|
|
1. To run a plugin directly, press \fI;\fR followed by the key.
|
|
|
|
2. Alternatively, combine with \fIAlt\fR (i.e. \fIAlt+key\fR).
|
2020-05-13 05:06:59 +00:00
|
|
|
3. To skip directory refresh after running a plugin, prefix with \fB-\fR.
|
2019-12-29 17:51:18 +00:00
|
|
|
|
2021-06-06 13:07:49 +00:00
|
|
|
export NNN_PLUG='p:-plugin'
|
2017-06-11 04:15:50 +00:00
|
|
|
.Ed
|
2019-11-18 13:20:08 +00:00
|
|
|
.Pp
|
2021-09-09 14:08:41 +00:00
|
|
|
To assign keys to arbitrary non-background cli commands and invoke like
|
2022-08-06 05:53:10 +00:00
|
|
|
plugins, add \fB!\fR before the command.
|
2019-11-18 13:20:08 +00:00
|
|
|
.Bd -literal
|
2023-01-28 03:41:15 +00:00
|
|
|
export NNN_PLUG='x:!chmod +x "$nnn";g:!git log;s:!smplayer "$nnn"'
|
2019-11-18 13:20:08 +00:00
|
|
|
|
2020-08-17 08:35:15 +00:00
|
|
|
To pick and run an unassigned plugin, press \fBEnter\fR at the plugin prompt.
|
|
|
|
To run a plugin at startup, use the option `-P` followed by the plugin key.
|
|
|
|
|
2019-11-18 13:20:08 +00:00
|
|
|
NOTES:
|
2023-01-28 04:31:46 +00:00
|
|
|
1. Place $nnn (or exported variables) in double quotes (\fB"$nnn"\fR)
|
2023-01-28 03:41:15 +00:00
|
|
|
2. Use single quotes for $NNN_PLUG so "$nnn" is not interpreted
|
2022-05-10 14:16:19 +00:00
|
|
|
3. (Again) add \fB!\fR before the command
|
|
|
|
4. To disable directory refresh after running a \fIcommand as plugin\fR,
|
2021-06-06 13:07:49 +00:00
|
|
|
prefix with \fB-!\fR
|
2022-05-10 14:16:19 +00:00
|
|
|
5. To skip user confirmation after command execution, suffix with \fB*\fR
|
2020-05-14 18:43:55 +00:00
|
|
|
Note: Do not use \fB*\fR with programs those run and exit e.g. cat
|
2019-12-29 17:51:18 +00:00
|
|
|
|
2021-06-06 16:21:30 +00:00
|
|
|
export NNN_PLUG='y:-!sync*'
|
2020-01-08 17:50:46 +00:00
|
|
|
|
2023-01-28 03:41:15 +00:00
|
|
|
6. To run a \fIGUI app as plugin\fR, add a \fB&\fR after \fB!\fR.
|
2020-01-30 18:08:36 +00:00
|
|
|
|
2023-01-28 03:41:15 +00:00
|
|
|
export NNN_PLUG='m:-!&mousepad "$nnn"'
|
2021-06-06 16:21:30 +00:00
|
|
|
|
2022-05-10 14:16:19 +00:00
|
|
|
7. To show the output of run-and-exit commands which do not need user input,
|
2021-06-06 18:05:15 +00:00
|
|
|
add \fB|\fR (pipe) after \fB!\fR
|
2021-06-06 16:21:30 +00:00
|
|
|
Note: This option is incompatible with \fB&\fR (terminal output is masked
|
2023-01-02 23:07:07 +00:00
|
|
|
for GUI programs) and ignores \fB*\fR (output is already paged for user).
|
2021-06-06 16:21:30 +00:00
|
|
|
|
2023-01-28 03:41:15 +00:00
|
|
|
export NNN_PLUG='m:-!|mediainfo "$nnn";t:-!|tree -ps;l:-!|ls -lah --group-directories-first'
|
2020-01-30 18:08:36 +00:00
|
|
|
|
2020-01-08 17:50:46 +00:00
|
|
|
EXAMPLES:
|
2021-10-17 21:18:46 +00:00
|
|
|
------------------------------------ + -------------------------------------------------
|
|
|
|
Key:Command | Description
|
|
|
|
------------------------------------ + -------------------------------------------------
|
2023-01-28 03:01:25 +00:00
|
|
|
c:!convert "$nnn" png:- | xclip | Copy image to clipboard
|
|
|
|
-sel clipboard -t image/png* |
|
2023-01-02 23:07:07 +00:00
|
|
|
C:!cp -rv "$nnn" "$nnn".cp* | Create a copy of the hovered file
|
2023-01-28 03:01:25 +00:00
|
|
|
e:-!sudo -E vim "$nnn"* | Edit file as root in vim
|
2021-10-17 21:18:46 +00:00
|
|
|
g:-!git diff | Show git diff
|
2023-01-28 03:01:25 +00:00
|
|
|
h:-!hx "$nnn"* | Open hovered file in hx hex editor
|
|
|
|
k:-!fuser -kiv "$nnn"* | Interactively kill process(es) using hovered file
|
2021-10-17 21:18:46 +00:00
|
|
|
l:-!git log | Show git log
|
|
|
|
n:-!vi /home/user/Dropbox/dir/note* | Take quick notes in a synced file/dir of notes
|
2023-01-28 03:01:25 +00:00
|
|
|
p:-!less -iR "$nnn"* | Page through hovered file in less
|
|
|
|
s:-!&smplayer -minigui "$nnn" | Play hovered media file, even unfinished download
|
|
|
|
x:!chmod +x "$nnn" | Make the hovered file executable
|
2021-10-17 21:18:46 +00:00
|
|
|
y:-!sync* | Flush cached writes
|
|
|
|
------------------------------------ + -------------------------------------------------
|
2021-05-16 19:25:29 +00:00
|
|
|
|
|
|
|
Online docs: https://github.com/jarun/nnn/tree/master/plugins
|
2019-11-18 13:20:08 +00:00
|
|
|
.Ed
|
2017-06-11 04:15:50 +00:00
|
|
|
.Pp
|
2021-09-08 13:44:05 +00:00
|
|
|
\fBNNN_ORDER:\fR directory-specific sort key.
|
|
|
|
.Bd -literal
|
|
|
|
export NNN_ORDER='t:/home/user/Downloads;S:/tmp'
|
|
|
|
|
|
|
|
NOTE: Sort keys can be a/d/e/r/s/t/v (see program option -T).
|
|
|
|
Capitalize to reverse (except 'r').
|
|
|
|
Path must be absolute.
|
2022-04-02 03:55:59 +00:00
|
|
|
|
|
|
|
Timestamps for entries modified/created within 5 minutes are shown in reverse.
|
2021-09-08 13:44:05 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-08-29 23:04:40 +00:00
|
|
|
\fBNNN_COLORS:\fR string of color numbers for each context, e.g.:
|
2018-12-03 16:14:33 +00:00
|
|
|
.Bd -literal
|
2020-08-29 23:04:40 +00:00
|
|
|
# 8 color numbers:
|
|
|
|
# 0-black, 1-red, 2-green, 3-yellow, 4-blue (default), 5-magenta, 6-cyan, 7-white
|
2020-01-18 15:31:27 +00:00
|
|
|
export NNN_COLORS='1234'
|
2018-12-03 16:14:33 +00:00
|
|
|
|
2020-09-13 16:06:12 +00:00
|
|
|
# xterm 256 color numbers (converted to hex, 2 symbols per context):
|
2021-05-08 12:04:38 +00:00
|
|
|
# see https://user-images.githubusercontent.com/1482942/93023823-46a6ba80-f5e1-11ea-9ea3-6a3c757704f4.png
|
2020-08-02 10:48:35 +00:00
|
|
|
export NNN_COLORS='#0a1b2c3d'
|
|
|
|
|
|
|
|
# both (256 followed by 8 as fallback, separated by ';')
|
|
|
|
export NNN_COLORS='#0a1b2c3d;1234'
|
|
|
|
|
2020-09-13 16:06:12 +00:00
|
|
|
NOTE: If only 256 colors are specified and the terminal doesn't support, default is used.
|
2018-12-03 16:14:33 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-08-04 16:49:01 +00:00
|
|
|
\fBNNN_FCOLORS:\fR specify file-type specific colors:
|
|
|
|
.Bd -literal
|
2020-08-06 03:26:33 +00:00
|
|
|
export NNN_FCOLORS='c1e2272e006033f7c6d6abc4'
|
2020-08-04 16:49:01 +00:00
|
|
|
|
2021-05-08 12:04:38 +00:00
|
|
|
Specify file-specific colors in xterm 256 color hex numbers (2 symbols per color).
|
2020-08-04 16:49:01 +00:00
|
|
|
Order is strict, use 00 to omit/use default terminal color. Defaults:
|
|
|
|
|
|
|
|
------------------------- + --- + -------------
|
|
|
|
Order | Hex | Color
|
|
|
|
------------------------- + --- + -------------
|
|
|
|
Block device | c1 | DarkSeaGreen1
|
|
|
|
Char device | e2 | Yellow1
|
|
|
|
Directory | 27 | DeepSkyBlue1
|
|
|
|
Executable | 2e | Green1
|
|
|
|
Regular | 00 | Normal
|
|
|
|
Hard link | 60 | Plum4
|
|
|
|
Symbolic link | 33 | Cyan1
|
2020-08-05 11:05:45 +00:00
|
|
|
Missing OR file details | f7 | Grey62
|
2020-08-04 16:49:01 +00:00
|
|
|
Orphaned symbolic link | c6 | DeepPink1
|
|
|
|
FIFO | d6 | Orange1
|
|
|
|
Socket | ab | MediumOrchid1
|
|
|
|
Unknown OR 0B regular/exe | c4 | Red1
|
|
|
|
------------------------- + --- + -------------
|
2020-08-06 03:26:33 +00:00
|
|
|
|
|
|
|
If the terminal supports xterm 256 colors or more, file-specific colors will be rendered.
|
2021-05-07 05:09:02 +00:00
|
|
|
To force the 8-color scheme use option -C.
|
|
|
|
If xterm 256 colors aren't supported, 8-color scheme will be used.
|
2020-08-04 16:49:01 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-08-14 02:50:01 +00:00
|
|
|
\fBNNN_ARCHIVE:\fR archive extensions to be handled silently (default: bzip2, (g)zip, tar).
|
2020-03-15 15:25:14 +00:00
|
|
|
.Bd -literal
|
2020-08-15 12:02:06 +00:00
|
|
|
export NNN_ARCHIVE="\\\\.(7z|bz2|gz|tar|tgz|zip)$"
|
2020-03-15 15:25:14 +00:00
|
|
|
|
|
|
|
NOTE: Non-default formats may require a third-party utility.
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2023-04-13 20:17:50 +00:00
|
|
|
\fBNNN_ARCHMNT:\fR optional archive mounter utility (default: archivemount).
|
|
|
|
.Bd -literal
|
|
|
|
export NNN_ARCHIVE='fuse-archive'
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-09-13 16:06:12 +00:00
|
|
|
\fBNNN_SSHFS:\fR specify custom sshfs command with options:
|
2019-06-24 16:15:02 +00:00
|
|
|
.Bd -literal
|
2020-01-18 15:31:27 +00:00
|
|
|
export NNN_SSHFS='sshfs -o reconnect,idmap=user,cache_timeout=3600'
|
2019-06-24 16:15:02 +00:00
|
|
|
|
2020-09-13 16:06:12 +00:00
|
|
|
NOTE: The options must be comma-separated without any space between them.
|
2019-06-24 16:15:02 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-01-18 15:31:27 +00:00
|
|
|
\fBNNN_RCLONE:\fR pass additional options to rclone command:
|
2019-11-24 15:52:44 +00:00
|
|
|
.Bd -literal
|
2020-01-18 15:31:27 +00:00
|
|
|
export NNN_RCLONE='rclone mount --read-only --no-checksum'
|
2019-11-24 15:52:44 +00:00
|
|
|
|
2020-03-15 15:25:14 +00:00
|
|
|
NOTE: The options must be preceded by "rclone" and max 5 flags are supported.
|
2019-11-24 15:52:44 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-09-26 17:34:27 +00:00
|
|
|
\fBNNN_TRASH:\fR trash (instead of \fIrm -rf\fR) files to desktop Trash.
|
2019-03-02 11:23:16 +00:00
|
|
|
.Bd -literal
|
2020-09-26 17:34:27 +00:00
|
|
|
export NNN_TRASH=n
|
|
|
|
# n=1: trash-cli, n=2: gio trash
|
2019-03-02 11:23:16 +00:00
|
|
|
.Ed
|
2019-10-06 14:22:30 +00:00
|
|
|
.Pp
|
2020-05-04 04:20:31 +00:00
|
|
|
\fBNNN_SEL:\fR absolute path to custom selection file.
|
2023-04-13 20:17:50 +00:00
|
|
|
.Bd -literal
|
|
|
|
export NNN_SEL='/tmp/.sel'
|
|
|
|
.Ed
|
2020-05-04 04:20:31 +00:00
|
|
|
.Pp
|
2020-05-05 20:15:04 +00:00
|
|
|
\fBNNN_FIFO:\fR path of a named pipe to write the hovered file path:
|
2020-05-04 04:20:31 +00:00
|
|
|
.Bd -literal
|
|
|
|
export NNN_FIFO='/tmp/nnn.fifo'
|
|
|
|
|
2020-05-23 12:03:37 +00:00
|
|
|
NOTES:
|
2020-05-26 04:04:11 +00:00
|
|
|
1. Overridden by a temporary path with -a option.
|
2020-08-04 16:49:01 +00:00
|
|
|
2. If the FIFO file doesn't exist it will be created,
|
|
|
|
but not removed (unless it is generated by -a option).
|
2021-05-16 19:25:29 +00:00
|
|
|
|
|
|
|
Online docs: https://github.com/jarun/nnn/wiki/Live-previews
|
2020-05-04 04:20:31 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-04-15 18:59:45 +00:00
|
|
|
\fBNNN_LOCKER:\fR terminal locker program.
|
|
|
|
.Bd -literal
|
|
|
|
export NNN_LOCKER='bmon -p wlp1s0'
|
|
|
|
export NNN_LOCKER='cmatrix'
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2021-07-25 01:33:09 +00:00
|
|
|
\fBNNN_TMPFILE:\fR \fIalways\fR cd on quit and write the command in the file specified.
|
|
|
|
.Bd -literal
|
|
|
|
export NNN_TMPFILE='/tmp/.lastd'
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2021-06-12 19:52:36 +00:00
|
|
|
\fBNNN_HELP:\fR run a program and show the output on top of the program help page.
|
|
|
|
.Bd -literal
|
|
|
|
export NNN_HELP='fortune'
|
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-03-11 03:39:57 +00:00
|
|
|
\fBNNN_MCLICK:\fR key emulated by a middle mouse click.
|
|
|
|
.Bd -literal
|
2020-03-11 04:20:26 +00:00
|
|
|
export NNN_MCLICK='^R'
|
2020-03-11 03:39:57 +00:00
|
|
|
|
2020-03-11 04:20:26 +00:00
|
|
|
NOTE: Only the first character is considered if not a \fICtrl+key\fR combo.
|
2020-03-11 03:39:57 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
2020-08-15 16:04:23 +00:00
|
|
|
\fBnnn:\fR this is a special variable.
|
|
|
|
.Bd -literal
|
|
|
|
Set to the hovered file name before starting the command prompt or spawning a shell.
|
|
|
|
.Ed
|
2020-04-05 01:56:18 +00:00
|
|
|
.Pp
|
2020-04-13 16:51:56 +00:00
|
|
|
\fBNO_COLOR:\fR disable ANSI color output (overridden by \fBNNN_COLORS\fR).
|
2014-10-22 11:52:45 +00:00
|
|
|
.Sh AUTHORS
|
2019-09-28 15:08:41 +00:00
|
|
|
.An Arun Prakash Jana Aq Mt engineerarun@gmail.com ,
|
2015-07-02 16:49:17 +00:00
|
|
|
.An Lazaros Koromilas Aq Mt lostd@2f30.org ,
|
2019-09-28 15:08:41 +00:00
|
|
|
.An Dimitris Papastamos Aq Mt sin@2f30.org .
|
2017-03-31 02:52:51 +00:00
|
|
|
.Sh HOME
|
2017-04-01 05:18:18 +00:00
|
|
|
.Em https://github.com/jarun/nnn
|