2019-12-05 04:47:32 +05:30
.Dd Dec 05 , 2019
2017-03-30 23:55:30 +05:30
.Dt NNN 1
2014-10-22 12:52:45 +01:00
.Os
.Sh NAME
2017-03-30 23:55:30 +05:30
.Nm nnn
2018-08-07 04:52:39 +05:30
.Nd the missing terminal file manager for X
2014-10-22 12:52:45 +01:00
.Sh SYNOPSIS
2017-06-04 23:15:08 +05:30
.Nm
2019-08-30 20:55:23 +05:30
.Op Ar -a
2017-12-24 15:21:38 +05:30
.Op Ar -b key
2019-10-03 03:46:35 +05:30
.Op Ar -c
2019-03-11 20:21:41 +05:30
.Op Ar -d
2019-11-24 19:23:09 +05:30
.Op Ar -E
2019-12-14 14:06:00 +05:30
.Op Ar -g
2019-08-04 09:55:14 +05:30
.Op Ar -H
2019-10-11 21:26:03 +05:30
.Op Ar -K
2019-07-14 23:00:14 +05:30
.Op Ar -n
2018-11-23 22:41:47 +05:30
.Op Ar -p file
2019-12-14 23:28:13 +05:30
.Op Ar -Q
2019-08-23 20:18:17 +05:30
.Op Ar -r
2019-12-01 23:00:06 +05:30
.Op Ar -R
2019-12-20 15:49:13 +05:30
.Op Ar -s name
2017-04-15 00:14:25 +05:30
.Op Ar -S
.Op Ar -v
2019-12-25 22:33:38 +05:30
.Op Ar -V
2019-12-12 19:51:08 +05:30
.Op Ar -x
2017-04-15 00:14:25 +05:30
.Op Ar -h
.Op Ar PATH
2014-10-22 12:52:45 +01:00
.Sh DESCRIPTION
.Nm
2019-09-16 02:57:53 +05:30
(Nnn's Not Noice) is a performance-optimized, feature-packed fork of noice (http://git.2f30.org/noice/) with seamless desktop integration, simplified navigation, \fI navigate-as-you-type\fR mode with auto select, disk usage analyzer mode, bookmarks, 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 12:52:45 +01:00
.Pp
.Nm
2017-12-24 18:46:56 +05:30
opens the current working directory by default if
2017-04-15 00:14:25 +05:30
.Ar PATH
2017-03-31 08:22:51 +05:30
is not specified.
2018-11-11 16:22:58 +05:30
.Sh KEYBINDS
2014-10-22 13:28:00 +01:00
.Pp
2019-03-17 22:06:28 +05:30
Press \fB ?\fR in
.Nm
to see the list of keybinds.
2018-11-11 16:22:58 +05:30
.Sh OPTIONS
2017-09-30 05:47:38 +05:30
.Pp
2017-04-01 10:48:18 +05:30
.Nm
2017-04-13 19:13:33 +05:30
supports the following options:
2017-04-01 10:48:18 +05:30
.Pp
2019-08-30 20:55:23 +05:30
.Fl a
use access time for all operations (default: modification time)
.Pp
2017-12-24 15:21:38 +05:30
.Fl "b key"
specify bookmark key to open
.Pp
2019-10-03 03:33:15 +05:30
.Fl c
opener opens files in cli utilities only
.Pp
2019-03-11 20:21:41 +05:30
.Fl d
2019-08-04 09:55:14 +05:30
detail mode
2019-03-11 20:21:41 +05:30
.Pp
2019-11-24 19:23:09 +05:30
.Fl E
use $EDITOR for internal undetached edits
2019-10-19 01:11:39 +03:00
.Pp
2019-12-14 14:06:00 +05:30
.Fl g
use regex filters instead of substring match
.Pp
2019-08-04 09:55:14 +05:30
.Fl H
show hidden files
.Pp
2019-10-11 21:26:03 +05:30
.Fl K
test for keybind collision
.Pp
2019-07-14 23:00:14 +05:30
.Fl n
2019-12-25 22:33:38 +05:30
start in navigate-as-you-type mode
2019-07-14 23:00:14 +05:30
.Pp
2019-08-16 23:40:43 +05:30
.Fl o
open files only on Enter key
.Pp
2018-11-23 22:41:47 +05:30
.Fl "p file"
copy (or \fI pick\fR ) selection to file, or stdout if file='-'
.Pp
2019-12-14 23:28:13 +05:30
.Fl Q
disable confirmation when quitting program with multiple active contexts
.Pp
2019-08-23 20:18:17 +05:30
.Fl r
show cp, mv progress (Linux-only, needs advcpmv; '^T' shows the progress on BSD/macOS)
.Pp
2019-12-01 23:00:06 +05:30
.Fl R
disable rollover at edges
.Pp
2019-12-20 15:49:13 +05:30
.Fl "s name"
load a session by name
.Pp
2017-04-14 16:50:16 +05:30
.Fl S
start in disk usage analyzer mode
2017-04-13 19:13:33 +05:30
.Pp
2019-08-17 00:07:38 +05:30
.Fl t
disable directory auto-select in navigate-as-you-type mode
.Pp
2017-04-13 19:13:33 +05:30
.Fl v
2019-12-28 11:15:38 +05:30
use case-insensitive version compare to sort files
2017-04-15 00:14:25 +05:30
.Pp
2019-12-25 22:33:38 +05:30
.Fl V
2019-12-28 11:15:38 +05:30
show version and exit
2019-12-25 22:33:38 +05:30
.Pp
2019-12-12 19:51:08 +05:30
.Fl x
show notis on selection cp, mv, rm completion; copy path to system clipboard on select
.Pp
2017-04-15 00:14:25 +05:30
.Fl h
show program help and exit
2014-10-22 12:52:45 +01:00
.Sh CONFIGURATION
.Nm
2018-12-02 05:10:19 +05:30
uses \fI xdg-open\fR (on Linux) and \fI open(1)\fR (on macOS) as the desktop opener.
2017-04-23 23:12:54 +05:30
.Pp
2019-06-20 19:10:47 +05:30
There is no configuration file. Associated files are stored in \fB ${XDG_CONFIG_HOME:-$HOME/.config}/nnn/\fR . Settings work on environment variables. See ENVIRONMENT section below.
2018-11-08 18:29:38 +05:30
.Sh CONTEXTS
2018-11-12 03:36:37 +05:30
Contexts serve the purpose of exploring multiple directories simultaneously. 4 contexts
are available. The status of the contexts are shown in the top left corner:
2018-11-08 18:29:38 +05:30
.Pp
2019-08-21 07:43:15 +05:30
- the current context is in reverse video
2018-11-08 18:29:38 +05:30
.br
2019-03-23 19:44:07 +05:30
- other active contexts are underlined
2018-11-08 18:29:38 +05:30
.br
2019-03-23 19:44:07 +05:30
- rest are inactive
2018-11-08 18:29:38 +05:30
.Pp
2019-08-21 07:43:15 +05:30
On context creation, the state of the previous context is copied. Each context remembers its last visited directory.
2019-03-23 19:44:07 +05:30
.Pp
Each context can have its own directory color specified. See ENVIRONMENT section below.
2019-10-19 01:11:39 +03:00
.Sh SESSIONS
Sessions are a way to save and restore states of work. A session stores the settings and contexts.
.Pp
Sessions can be loaded dynamically from within a running
.Nm
2019-10-19 04:01:46 +05:30
instance, or with a program option.
2019-10-19 01:11:39 +03:00
.Pp
2019-10-19 04:01:46 +05:30
When a session is loaded dynamically, the last working session is saved automatically to a dedicated
2019-10-19 01:11:39 +03:00
-- "last session" -- session file.
.Pp
2019-10-19 04:01:46 +05:30
All the session files are located in the \fB ${XDG_CONFIG_HOME:-$HOME/.config}/nnn/sessions\fR directory by the session name.
2019-10-19 01:11:39 +03:00
"@" is the "last session" file.
2014-10-22 12:52:45 +01:00
.Sh FILTERS
2019-12-14 14:06:00 +05:30
Filters are substrings to find matching entries in the current directory instantly (search-as-you-type). There is a program option to use regex filters.
2014-10-22 12:52:45 +01:00
.Pp
2019-12-14 14:06:00 +05:30
Common regex use cases:
2018-01-14 01:43:30 +05:30
.Pp
(1) To list all matches starting with the filter expression, start the expression
with a '^' (caret) symbol.
.br
2019-12-10 18:25:00 +05:30
(2) Type '\\ .mkv' to list all MKV files.
2018-05-01 10:09:10 +05:30
.br
(3) Use '.*' to match any character (\fI sort of\fR fuzzy search).
2014-10-22 13:28:00 +01:00
.Pp
2017-06-06 21:37:16 +05:30
In the \fI navigate-as-you-type\fR mode directories are opened in filter mode,
2017-06-04 23:15:08 +05:30
allowing continuous navigation. Works best with the \fB arrow keys\fR .
2018-08-08 04:57:49 +05:30
.br
2019-09-28 20:38:41 +05:30
When there's a unique match and it's a directory,
.Nm
2019-12-14 20:24:42 +05:30
auto selects the directory and enters it in this mode. Use the relevant program option to disable this behaviour.
2019-04-22 00:07:48 +05:30
.Sh SELECTION
2019-12-14 00:17:16 +05:30
There are 3 groups of keybinds to add files to selection:
2018-01-14 01:43:30 +05:30
.Pp
2019-12-04 18:54:25 +05:30
(1) hovered file selection toggle (deselects if '+' is visible before the entry, else adds to selection)
2018-01-14 01:43:30 +05:30
.br
2019-12-14 00:17:16 +05:30
(2) add a range of files to selection (repeat the range key on the same entry twice to clear selection completely)
2019-10-06 19:52:30 +05:30
.br
(3) add all files in the current directory to selection
2019-09-29 22:59:27 +05:30
.Pp
2019-12-14 00:17:16 +05:30
A selection can be listed, edited, copied, moved, removed, archived or linked.
2019-11-29 20:58:12 +05:30
.Pp
2019-12-14 00:17:16 +05:30
Absolute paths of the selected files are copied to \fB .selection\fR file in the config directory.
2019-10-09 19:51:51 +05:30
.Pp
2019-12-14 00:17:16 +05:30
To edit the selection use the _edit selection_ key. Use this key to remove a file from selection after you navigate away from its directory. Editing doesn't end the selection mode. You can add more files to the selection and edit the list again.
2019-10-09 19:51:51 +05:30
.Sh FILE SIZE
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 \fI ls\fR .
2015-11-26 15:03:26 +00:00
.Sh ENVIRONMENT
2018-04-08 06:13:33 +05:30
The SHELL, EDITOR (VISUAL, if defined) and PAGER environment variables take precedence
2019-01-04 23:56:02 +05:30
when dealing with the !, e and p commands respectively. A single combination to arguments is supported for SHELL and PAGER.
2016-08-21 13:58:53 +05:30
.Pp
2019-12-29 23:21:18 +05:30
\fB NNN_OPENER:\fR specify a custom file opener.
.Bd -literal
export NNN_OPENER=nuke
NOTE: `nuke` is a file opener available in plugin repository
.Ed
.Pp
2018-11-12 03:04:17 +05:30
\fB NNN_BMS:\fR bookmark string as \fI key_char:location\fR pairs (max 10) separated by
2017-06-11 09:45:50 +05:30
\fI ;\fR :
.Bd -literal
2018-11-12 03:04:17 +05:30
export NNN_BMS='d:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/'
2019-12-25 22:18:36 +05:30
NOTE: To go to a bookmark, press the Lead key followed by the bookmark key.
2019-08-14 19:57:44 +05:30
.Ed
.Pp
\fB NNN_PLUG:\fR directly executable plugins as \fI key_char:location\fR pairs (max 10) separated by
\fI ;\fR :
.Bd -literal
2019-11-22 17:51:13 +05:30
export NNN_PLUG='o:fzopen;p:mocplay;d:diffs;m:nmount;t:imgthumb;i:mediainf'
2019-08-14 19:57:44 +05:30
2019-12-29 23:21:18 +05:30
NOTES:
1. To run a plugin directly, press \fI ;\fR followed by the plugin key
2. To skip directory refresh after running a plugin,prefix with \fB -\fR
export NNN_PLUG='m:-mediainfo'
2017-06-11 09:45:50 +05:30
.Ed
2019-11-18 18:50:08 +05:30
.Pp
2019-11-21 02:38:34 +05:30
To assign keys to arbitrary non-background non-shell-interpreted cli
commands and invoke like plugins, add \fI _\fR (underscore) before the command.
2019-11-18 18:50:08 +05:30
.Bd -literal
2019-11-30 02:21:59 +05:30
export NNN_PLUG='x:_chmod +x $nnn;g:_git log;s:_smplayer $nnn;o:fzopen;m:nmount'
2019-11-18 18:50:08 +05:30
NOTES:
2019-11-24 02:13:27 +05:30
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)
2019-12-29 23:21:18 +05:30
3. (Again) add \fB _\fR before the command
4. To disable directory refresh after running a \fI command as plugin\fR , prefix the command with \fB -_\fR
5. To skip user confirmation after command execution, suffix with \fB *\fR
export NNN_PLUG='y:-_sync*'
2019-11-18 18:50:08 +05:30
.Ed
2017-06-11 09:45:50 +05:30
.Pp
2019-09-11 12:18:58 +05:30
\fB NNN_USE_EDITOR:\fR use VISUAL (else EDITOR, preferably CLI, fallback vi) to handle text files.
2017-06-11 19:24:02 +05:30
.Bd -literal
2019-06-24 21:50:01 +05:30
export NNN_USE_EDITOR=1
2017-06-11 19:24:02 +05:30
.Ed
.Pp
2018-12-03 21:44:33 +05:30
\fB NNN_CONTEXT_COLORS:\fR string of color codes for each context, e.g.:
.Bd -literal
2019-01-19 14:38:47 +05:30
export NNN_CONTEXT_COLORS='1234'
2018-12-03 21:44:33 +05:30
codes: 0-black, 1-red, 2-green, 3-yellow, 4-blue (default), 5-magenta, 6-cyan, 7-white
.Ed
.Pp
2019-06-24 21:50:01 +05:30
\fB NNN_SSHFS_OPTS:\fR pass additional options to sshfs command:
2019-06-24 21:45:02 +05:30
.Bd -literal
export NNN_SSHFS_OPTS='sshfs -o reconnect,idmap=user,cache_timeout=3600'
NOTE: The options must be preceded by `sshfs` and comma-separated without any space between them.
.Ed
.Pp
2019-11-24 21:22:44 +05:30
\fB NNN_RCLONE_OPTS:\fR pass additional options to rclone command:
.Bd -literal
export NNN_RCLONE_OPTS='rclone mount --read-only --no-checksum'
NOTE: The options must be preceded by `rclone` and max 5 flags are supported.
.Ed
.Pp
2019-06-24 21:50:01 +05:30
\fB NNN_IDLE_TIMEOUT:\fR set idle timeout (in seconds) to invoke terminal locker (default: disabled).
.Pp
2019-03-09 08:43:56 +05:30
\fB NNN_TRASH:\fR trash (instead of \fI delete\fR ) files to desktop Trash.
2019-03-02 16:53:16 +05:30
.Bd -literal
export NNN_TRASH=1
.Ed
2019-10-06 19:52:30 +05:30
.Pp
2019-12-29 23:21:18 +05:30
\fB NNN:\fR this is a special variable set to the hovered entry before executing a command from the command prompt or spawning a shell.
2014-10-22 14:59:15 +01:00
.Sh KNOWN ISSUES
2019-09-28 20:38:41 +05:30
.Nm
may not handle keypresses correctly when used with tmux (see issue #104 for more details). Set \fB TERM=xterm-256color\fR to address it.
2014-10-22 12:52:45 +01:00
.Sh AUTHORS
2019-09-28 20:38:41 +05:30
.An Arun Prakash Jana Aq Mt engineerarun@gmail.com ,
2015-07-02 17:49:17 +01:00
.An Lazaros Koromilas Aq Mt lostd@2f30.org ,
2019-09-28 20:38:41 +05:30
.An Dimitris Papastamos Aq Mt sin@2f30.org .
2017-03-31 08:22:51 +05:30
.Sh HOME
2017-04-01 10:48:18 +05:30
.Em https://github.com/jarun/nnn