2019-12-04 23:17:32 +00:00
.Dd Dec 05 , 2019
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
2018-08-06 23:22:39 +00:00
.Nd the missing terminal file manager for X
2014-10-22 11:52:45 +00:00
.Sh SYNOPSIS
2017-06-04 17:45:08 +00:00
.Nm
2019-08-30 15:25:23 +00:00
.Op Ar -a
2020-01-08 22:04:10 +00:00
.Op Ar -A
2017-12-24 09:51:38 +00:00
.Op Ar -b key
2019-10-02 22:16:35 +00:00
.Op Ar -c
2019-03-11 14:51:41 +00:00
.Op Ar -d
2019-11-24 13:53:09 +00:00
.Op Ar -E
2019-12-14 08:36:00 +00:00
.Op Ar -g
2019-08-04 04:25:14 +00:00
.Op Ar -H
2019-10-11 15:56:03 +00:00
.Op Ar -K
2019-07-14 17:30:14 +00:00
.Op Ar -n
2018-11-23 17:11:47 +00:00
.Op Ar -p file
2019-12-14 17:58:13 +00:00
.Op Ar -Q
2019-08-23 14:48:17 +00:00
.Op Ar -r
2019-12-01 17:30:06 +00:00
.Op Ar -R
2019-12-20 10:19:13 +00:00
.Op Ar -s name
2017-04-14 18:44:25 +00:00
.Op Ar -S
.Op Ar -v
2019-12-25 17:03:38 +00:00
.Op Ar -V
2019-12-12 14:21:08 +00:00
.Op Ar -x
2017-04-14 18:44:25 +00:00
.Op Ar -h
.Op Ar PATH
2014-10-22 11:52:45 +00:00
.Sh DESCRIPTION
.Nm
2019-09-15 21:27:53 +00:00
(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 11:52:45 +00:00
.Pp
.Nm
2017-12-24 13:16:56 +00:00
opens the current working directory by default if
2017-04-14 18:44:25 +00:00
.Ar PATH
2017-03-31 02:52:51 +00:00
is not specified.
2018-11-11 10:52:58 +00:00
.Sh KEYBINDS
2014-10-22 12:28:00 +00:00
.Pp
2019-03-17 16:36:28 +00:00
Press \fB ?\fR in
.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
2019-08-30 15:25:23 +00:00
.Fl a
use access time for all operations (default: modification time)
.Pp
2020-01-08 22:04:10 +00:00
.Fl A
disable directory auto-select in navigate-as-you-type mode
.Pp
2017-12-24 09:51:38 +00:00
.Fl "b key"
specify bookmark key to open
.Pp
2019-10-02 22:03:15 +00:00
.Fl c
opener opens files in cli utilities only
.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
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
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
2019-10-11 15:56:03 +00:00
.Fl K
test for keybind collision
.Pp
2019-07-14 17:30:14 +00:00
.Fl n
2019-12-25 17:03:38 +00:00
start in navigate-as-you-type 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 \fI pick\fR ) selection to file, or stdout if file='-'
.Pp
2019-12-14 17:58:13 +00:00
.Fl Q
disable confirmation when quitting program with multiple active contexts
.Pp
2019-08-23 14:48:17 +00:00
.Fl r
show cp, mv progress (Linux-only, needs advcpmv; '^T' shows the progress on BSD/macOS)
.Pp
2019-12-01 17:30:06 +00:00
.Fl R
disable rollover at edges
.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
start in disk usage analyzer mode
2017-04-13 13:43:33 +00:00
.Pp
.Fl v
2019-12-28 05:45:38 +00:00
use case-insensitive version compare to sort files
2017-04-14 18:44:25 +00:00
.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
show notis on selection cp, mv, rm completion; copy path to system clipboard on select
.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
.Nm
2018-12-01 23:40:19 +00:00
uses \fI xdg-open\fR (on Linux) and \fI open(1)\fR (on macOS) as the desktop opener.
2017-04-23 17:42:54 +00:00
.Pp
2019-06-20 13:40:47 +00:00
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 12:59:38 +00:00
.Sh CONTEXTS
2018-11-11 22:06:37 +00:00
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 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
2019-08-21 02:13:15 +00:00
On context creation, the state of the previous context is copied. Each context remembers its last visited directory.
2019-03-23 14:14:07 +00:00
.Pp
Each context can have its own directory color specified. See ENVIRONMENT section below.
2019-10-18 22:11:39 +00: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-18 22:31:46 +00:00
instance, or with a program option.
2019-10-18 22:11:39 +00:00
.Pp
2019-10-18 22:31:46 +00:00
When a session is loaded dynamically, the last working session is saved automatically to a dedicated
2019-10-18 22:11:39 +00:00
-- "last session" -- session file.
.Pp
2019-10-18 22:31:46 +00:00
All the session files are located in the \fB ${XDG_CONFIG_HOME:-$HOME/.config}/nnn/sessions\fR directory by the session name.
2019-10-18 22:11:39 +00:00
"@" is the "last session" file.
2014-10-22 11:52:45 +00:00
.Sh FILTERS
2019-12-14 08:36:00 +00:00
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 11:52:45 +00:00
.Pp
2019-12-14 08:36:00 +00:00
Common regex use cases:
2018-01-13 20:13:30 +00:00
.Pp
(1) To list all matches starting with the filter expression, start the expression
with a '^' (caret) symbol.
.br
2019-12-10 12:55:00 +00:00
(2) Type '\\ .mkv' to list all MKV files.
2018-05-01 04:39:10 +00:00
.br
(3) Use '.*' to match any character (\fI sort of\fR fuzzy search).
2014-10-22 12:28:00 +00:00
.Pp
2017-06-06 16:07:16 +00:00
In the \fI navigate-as-you-type\fR mode directories are opened in filter mode,
2017-06-04 17:45:08 +00:00
allowing continuous navigation. Works best with the \fB arrow keys\fR .
2018-08-07 23:27:49 +00:00
.br
2019-09-28 15:08:41 +00:00
When there's a unique match and it's a directory,
.Nm
2019-12-14 14:54:42 +00:00
auto selects the directory and enters it in this mode. Use the relevant program option to disable this behaviour.
2019-04-21 18:37:48 +00:00
.Sh SELECTION
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
2019-12-04 13:24:25 +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
2019-12-13 18:47:16 +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
2019-12-13 18:47:16 +00:00
A selection can be listed, edited, copied, moved, removed, archived or linked.
2019-11-29 15:28:12 +00:00
.Pp
2019-12-13 18:47:16 +00:00
Absolute paths of the selected files are copied to \fB .selection\fR file in the config directory.
2019-10-09 14:21:51 +00:00
.Pp
2019-12-13 18:47:16 +00:00
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 14:21:51 +00:00
.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 00:43:33 +00:00
The SHELL, EDITOR (VISUAL, if defined) and PAGER environment variables take precedence
2019-01-04 18:26:02 +00:00
when dealing with the !, e and p commands respectively. A single combination to arguments is supported for SHELL and PAGER.
2016-08-21 08:28:53 +00:00
.Pp
2019-12-29 17:51:18 +00:00
\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-11 21:34:17 +00:00
\fB NNN_BMS:\fR bookmark string as \fI key_char:location\fR pairs (max 10) separated by
2017-06-11 04:15:50 +00:00
\fI ;\fR :
.Bd -literal
2018-11-11 21:34:17 +00:00
export NNN_BMS='d:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/'
2019-12-25 16:48:36 +00:00
NOTE: To go to a bookmark, press the Lead key followed by the bookmark key.
2019-08-14 14:27:44 +00:00
.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 12:21:13 +00:00
export NNN_PLUG='o:fzopen;p:mocplay;d:diffs;m:nmount;t:imgthumb;i:mediainf'
2019-08-14 14:27:44 +00:00
2019-12-29 17:51:18 +00:00
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 04:15:50 +00:00
.Ed
2019-11-18 13:20:08 +00:00
.Pp
2019-11-20 21:08:34 +00:00
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 13:20:08 +00:00
.Bd -literal
2019-11-29 20:51:59 +00:00
export NNN_PLUG='x:_chmod +x $nnn;g:_git log;s:_smplayer $nnn;o:fzopen;m:nmount'
2019-11-18 13:20:08 +00:00
NOTES:
2019-11-23 20:43:27 +00:00
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 17:51:18 +00:00
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*'
2020-01-08 17:50:46 +00:00
EXAMPLES:
----------------------------------- + -------------------------------------------------
Key:Command | Description
----------------------------------- + -------------------------------------------------
k:-_fuser -kiv $nnn* | Interactively kill process(es) using hovered file
l:_git log | Show git log
n:-_vi /home/user/Dropbox/dir/note* | Take quick notes in a synced file/dir of notes
s:_smplayer -minigui $nnn* | Play hovered media file, even unfinished download
x:_chmod +x $nnn | Make the hovered file executable
y:-_sync* | Flush cached writes
----------------------------------- + -------------------------------------------------
2019-11-18 13:20:08 +00:00
.Ed
2017-06-11 04:15:50 +00:00
.Pp
2019-09-11 06:48:58 +00:00
\fB NNN_USE_EDITOR:\fR use VISUAL (else EDITOR, preferably CLI, fallback vi) to handle text files.
2017-06-11 13:54:02 +00:00
.Bd -literal
2019-06-24 16:20:01 +00:00
export NNN_USE_EDITOR=1
2017-06-11 13:54:02 +00:00
.Ed
.Pp
2018-12-03 16:14:33 +00:00
\fB NNN_CONTEXT_COLORS:\fR string of color codes for each context, e.g.:
.Bd -literal
2019-01-19 09:08:47 +00:00
export NNN_CONTEXT_COLORS='1234'
2018-12-03 16:14:33 +00:00
codes: 0-black, 1-red, 2-green, 3-yellow, 4-blue (default), 5-magenta, 6-cyan, 7-white
.Ed
.Pp
2019-06-24 16:20:01 +00:00
\fB NNN_SSHFS_OPTS:\fR pass additional options to sshfs command:
2019-06-24 16:15:02 +00:00
.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 15:52:44 +00:00
\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 16:20:01 +00:00
\fB NNN_IDLE_TIMEOUT:\fR set idle timeout (in seconds) to invoke terminal locker (default: disabled).
.Pp
2019-03-09 03:13:56 +00:00
\fB NNN_TRASH:\fR trash (instead of \fI delete\fR ) files to desktop Trash.
2019-03-02 11:23:16 +00:00
.Bd -literal
export NNN_TRASH=1
.Ed
2019-10-06 14:22:30 +00:00
.Pp
2019-12-29 17:51:18 +00:00
\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 13:59:15 +00:00
.Sh KNOWN ISSUES
2019-09-28 15:08:41 +00:00
.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 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