2019-10-06 14:49:22 +00:00
.Dd Oct 06 , 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
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-10-18 22:11:39 +00:00
.Op Ar -e name
2019-09-11 06:48:58 +00:00
.Op Ar -f
2019-08-04 04:25:14 +00:00
.Op Ar -H
2017-06-04 06:15:17 +00:00
.Op Ar -i
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-08-23 14:48:17 +00:00
.Op Ar -r
2019-02-05 19:08:55 +00:00
.Op Ar -s
2017-04-14 18:44:25 +00:00
.Op Ar -S
.Op Ar -v
.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
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-10-18 22:11:39 +00:00
.Fl "e name"
Load a session by name
.Pp
2019-09-11 06:48:58 +00:00
.Fl f
2019-09-11 12:58:41 +00:00
run filter as command when the prompt key is pressed
2019-09-11 06:48:58 +00:00
.Pp
2019-08-04 04:25:14 +00:00
.Fl H
show hidden files
.Pp
2017-06-04 06:15:17 +00:00
.Fl i
2017-06-03 23:19:16 +00:00
start in navigate-as-you-type mode
.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
use case-insensitive version compare to sort files
.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-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-02-05 19:08:55 +00:00
.Fl s
use substring match for filters instead of regex
.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
2019-08-16 18:37:38 +00:00
.Fl t
disable directory auto-select in navigate-as-you-type mode
.Pp
2017-04-13 13:43:33 +00:00
.Fl v
show version and exit
2017-04-14 18:44:25 +00:00
.Pp
.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-03-23 14:14:07 +00:00
Filters support regexes (default) to instantly (search-as-you-type) list the matching
2017-06-07 05:56:33 +00:00
entries in the current directory.
2014-10-22 11:52:45 +00:00
.Pp
2018-01-13 20:13:30 +00:00
Common 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.
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
2019-03-03 18:54:35 +00:00
There is a program option to filter entries by substring match instead of regex.
2019-01-13 17:19:14 +00:00
.Pp
2019-09-11 12:58:41 +00:00
There is a program option to execute the current filter as a command when the prompt key is pressed.
2019-09-11 06:48:58 +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
auto selects the directory and enters it in this mode.
2019-04-21 18:37:48 +00:00
.Sh SELECTION
2019-10-06 14:22:30 +00:00
There are 3 groups of shortcuts to add files to selection:
2018-01-13 20:13:30 +00:00
.Pp
2019-10-06 14:22:30 +00:00
(1) add an individual file to selection
2018-01-13 20:13:30 +00:00
.br
2019-10-06 14:22:30 +00:00
(2) add a range of files to selection
.br
(3) add all files in the current directory to selection
2019-09-29 17:29:27 +00:00
.Pp
2019-10-09 14:21:51 +00:00
Selected files are visually indicated by a \fI +\fR before the entries.
2019-03-01 01:16:13 +00:00
.br
2019-10-06 14:22:30 +00:00
The selection can now be listed, copied, moved, removed, archived or linked.
2019-04-21 18:37:48 +00:00
.br
2019-10-06 14:22:30 +00:00
Absolute paths of the selected files are copied to the temporary file \fB .selection\fR in the config directory. The path is shown in the help and configuration screen. If \fB $NNN_COPIER\fR is set (see ENVIRONMENT section below) the file paths are also copied to the system clipboard.
2019-10-09 14:21:51 +00:00
.Pp
2019-10-10 13:54:42 +00:00
Repeat range selection on the same entry to clear selection. It's also possible to edit the current selection.
.Pp
Deselecting a single file is not implemented because substantial string processing would be required if thousands of files are selected. It would have been trivial if the selection was limited to a single directory (use a flag for each file and select the files with the flag set). However,
2019-10-09 14:21:51 +00:00
.Nm
2019-10-10 13:54:42 +00:00
allows selection across directories making it non-trivial to do that. Also, the buffer used to select is a compact one (no byte wasted) so \fB memmove\fR () would be required to deselect each intermediate file. Considering these, the alternatives were chosen.
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
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-10-10 03:00:17 +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-08-30 15:33:39 +00:00
export NNN_PLUG='o:fzy-open;p:mocplay;d:ndiff;m:nmount;t:thumb;i:mediainf'
2019-08-14 14:27:44 +00:00
2019-09-29 17:29:27 +00:00
NOTE: To run a plugin directly, press \fI :\fR followed by the plugin key.
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
export NNN_PLUG='x:_chmod +x $NNN;g:_git log;s:_smplayer $NNN;o:fzopen'
NOTES:
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)
3. (Again) add \fI _\fR before the command
.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-06-24 16:20:01 +00:00
\fB NNN_OPENER:\fR specify a custom file opener.
2019-01-20 18:21:45 +00:00
.Bd -literal
2019-06-24 16:20:01 +00:00
export NNN_OPENER=mimeopen
2019-01-20 18:21:45 +00:00
.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
\fB NNN_COPIER:\fR system clipboard copier script. The project page has some sample copier scripts.
.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-10-08 14:15:29 +00:00
\fB NNN:\fR this is a special variable set to the current 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