- Edit and preview markdown, man page, html
- Open a file and auto-advance to the next
- Export (filtered) list of visible files
-- Find and list in `nnn` from `nnn`
+- find/fd/fzf/grep/ripgrep/fzf from `nnn` and list in `nnn`
- Unlimited bookmarks, plugins, commands with custom hotkeys
- Write a plugin in any language you know
- Configure the middle mouse click to do anything
\fBNNN_PLUG:\fR directly executable plugins as \fIkey_char:location\fR pairs
separated by \fI;\fR:
.Bd -literal
- export NNN_PLUG='o:fzopen;p:mocplay;d:diffs;m:nmount;t:imgthumb'
+ export NNN_PLUG='f:finder;o:fzopen;p:mocplay;d:diffs;t:nmount;v:imgview'
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'
+ export NNN_PLUG='m:-mediainf'
.Ed
.Pp
To assign keys to arbitrary non-background non-shell-interpreted cli
commands and invoke like plugins, add \fI_\fR (underscore) before the
command.
.Bd -literal
- export NNN_PLUG='x:_chmod +x $nnn;g:_git log;s:_smplayer $nnn;o:fzopen'
+ export NNN_PLUG='x:_chmod +x $nnn;g:_git log;s:_smplayer $nnn'
NOTES:
1. Use single quotes for $NNN_PLUG so $nnn is not interpreted
----------------------------------- + -------------------------------------------------
Key:Command | Description
----------------------------------- + -------------------------------------------------
- k:-_fuser -kiv $nnn* | Interactively kill process(es) using hovered file
g:-_git diff | Show git diff
+ 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
p:-_less -iR $nnn* | Page through hovered file in less
Use the plugin shortcut (<kbd>;key</kbd> or <kbd>^Skey</kbd>) to list the defined plugin keys and press the required key. E.g., with the below config:
```sh
-export NNN_PLUG='o:fzopen;p:mocplay;d:diffs;m:nmount;n:notes;v:imgviu;t:imgthumb'
+export NNN_PLUG='f:finder;o:fzopen;p:mocplay;d:diffs;t:nmount;v:imgview'
```
Plugin `fzopen` can be run with the keybind <kbd>;o</kbd>, `mocplay` can be run with <kbd>;p</kbd> and so on... The key vs. plugin pairs are shown in the help and config screen.
`nnn` refreshes the directory after running a plugin to reflect any changes by the plugin. To disable this (say while running the `mediainfo` plugin on some filtered files), add a `-` before the plugin name:
```sh
-export NNN_PLUG='m:-mediainfo'
+export NNN_PLUG='m:-mediainf'
```
Now `nnn` will not refresh the directory after running the `mediainfo` plugin.
For example:
```sh
-export NNN_PLUG='x:_chmod +x $nnn;g:_git log;s:_smplayer $nnn;o:fzopen'
+export NNN_PLUG='x:_chmod +x $nnn;g:_git log;s:_smplayer $nnn'
```
Now <kbd>;x</kbd> can be used to make a file executable, <kbd>;g</kbd> can be used to the git log of a git project directory, <kbd>;s</kbd> can be used to preview a partially downloaded media file.
| Key:Command | Description |
|---|---|
-| `k:-_fuser -kiv $nnn*` | Interactively kill process(es) using hovered file |
| `g:-_git diff` | Show git diff |
+| `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 |
| `p:-_less -iR $nnn*` | Page through hovered file in less |
# Description: Run custom search and list results in smart context
#
# Note: To enable multi select in fzf, export the following:
-# - export FZF_DEFAULT_OPTS='--bind ctrl-a:select-all,ctrl-d:deselect-all'
+# - export FZF_DEFAULT_OPTS='--bind ctrl-a:select-all,ctrl-d:deselect-all,ctrl-t:toggle'
#
# Shell: POSIX compliant
# Author: Arun Prakash Jana