My build of nnn with minor changes
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

README.md 13 KiB

il y a 5 ans
il y a 8 ans
il y a 8 ans
il y a 6 ans
il y a 6 ans
il y a 5 ans
il y a 8 ans
il y a 5 ans
il y a 8 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 8 ans
il y a 6 ans
il y a 5 ans
il y a 6 ans
il y a 6 ans
il y a 7 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 7 ans
il y a 7 ans
il y a 6 ans
il y a 5 ans
il y a 7 ans
il y a 6 ans
il y a 5 ans
il y a 7 ans
il y a 5 ans
il y a 7 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 6 ans
il y a 8 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 8 ans
il y a 6 ans
il y a 5 ans
il y a 8 ans
il y a 6 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 6 ans
il y a 8 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 6 ans
il y a 5 ans
il y a 8 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 8 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 5 ans
il y a 6 ans
il y a 5 ans
il y a 5 ans
il y a 7 ans
il y a 5 ans
il y a 7 ans
il y a 5 ans
il y a 5 ans
il y a 6 ans
il y a 5 ans
il y a 6 ans
il y a 6 ans
il y a 7 ans
il y a 5 ans
il y a 5 ans
il y a 6 ans
il y a 5 ans
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. <h1 align="center">nnn - <i>type less, do more, wayyy faster</i></h1>
  2. <p align="center">
  3. <a href="https://github.com/jarun/nnn/releases/latest"><img src="https://img.shields.io/github/release/jarun/nnn.svg?maxAge=600" alt="Latest release" /></a>
  4. <a href="https://repology.org/metapackage/nnn"><img src="https://repology.org/badge/tiny-repos/nnn.svg" alt="Availability"></a>
  5. <a href="https://travis-ci.org/jarun/nnn"><img src="https://img.shields.io/travis/jarun/nnn/master.svg?label=travis" alt="Travis Status" /></a>
  6. <a href="https://circleci.com/gh/jarun/workflows/nnn"><img src="https://img.shields.io/circleci/project/github/jarun/nnn.svg?label=circleci" alt="CircleCI Status" /></a>
  7. <a href="https://en.wikipedia.org/wiki/Privacy-invasive_software"><img src="https://img.shields.io/badge/privacy-aware-crimson" alt="Privacy Awareness" /></a>
  8. <a href="https://github.com/jarun/nnn/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-BSD%202--Clause-yellow.svg?maxAge=2592000" alt="License" /></a>
  9. </p>
  10. <p align="center"><a href="https://www.youtube.com/watch?v=U2n5aGqou9E"><img src="https://i.imgur.com/MPWpmos.png" /></a></p>
  11. <p align="center"><i>navigate-as-you-type & du (click to see demo video)</i></p>
  12. ## Introduction
  13. `nnn` is a full-featured terminal file manager. It's tiny and nearly 0-config with an [incredible performance](https://github.com/jarun/nnn/wiki/Performance).
  14. `nnn` is also a du analyzer, an app launcher, a batch renamer and a file picker. The [plugin repository](https://github.com/jarun/nnn/tree/master/plugins#nnn-plugins) has tons of plugins and documentation to extend the capabilities further. You can _plug_ new functionality _and play_ with a custom keybind instantly. There's an independent [(neo)vim plugin](https://github.com/mcchrish/nnn.vim).
  15. It runs smoothly on the Raspberry Pi, Termux [on Android](https://www.youtube.com/watch?v=AbaauM7gUJw), Linux, macOS, BSD, Cygwin, WSL and works seamlessly with DEs and GUI utilities.
  16. Add to that an awesome [Wiki](https://github.com/jarun/nnn/wiki)!
  17. *Love smart and efficient utilities? Explore [my repositories](https://github.com/jarun?tab=repositories). Buy me a cup of coffee if they help you.*
  18. <p align="center">
  19. <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RMLTQ76JSXJ4Q"><img src="https://img.shields.io/badge/PayPal-donate-1eb0fc.svg" alt="Donate via PayPal!" /></a>
  20. ## Features
  21. - Modes
  22. - Light (default), detail
  23. - Disk usage analyzer (block/apparent)
  24. - File picker, (neo)vim plugin
  25. - Navigation
  26. - *Navigate-as-you-type* with dir auto-select
  27. - Contexts (_aka_ tabs/workspaces) with custom colors
  28. - Sessions, bookmarks; pin and visit a dir
  29. - Remote mounts (needs sshfs, rclone)
  30. - Familiar shortcuts (arrows, <kbd>~</kbd>, <kbd>-</kbd>, <kbd>@</kbd>), quick reference
  31. - CD on quit (*easy* shell integration)
  32. - Sorting
  33. - Ordered pure numeric names by default (visit _/proc_)
  34. - Case-insensitive version (_aka_ natural) sort
  35. - By file name, modification/access time, size, extension
  36. - Search
  37. - Instant filtering with *search-as-you-type*
  38. - Regex (default) and substring match
  39. - Subtree search to open or edit files (using plugin)
  40. - Mimes
  41. - Open with desktop opener or specify a custom app
  42. - Create, list, extract, mount (FUSE based) archives
  43. - Option to open all text files in EDITOR
  44. - Information
  45. - Detailed file information
  46. - Media information (using plugin)
  47. - Convenience
  48. - Run plugins and commands with custom keybinds
  49. - FreeDesktop compliant trash (needs trash-cli)
  50. - Cross-dir file/all/range selection
  51. - Batch renamer (feature-limited) for selection or dir
  52. - Copy (as), move (as), delete, archive, link selection
  53. - Notification on cp, mv, rm completion
  54. - Copy file paths to system clipboard on select
  55. - Create (with parents), rename, duplicate (anywhere) files and dirs
  56. - Launch GUI apps, run commands, execute file, spawn a shell
  57. - Hovered file set as `$nnn` at prompt and spawned shell
  58. - Lock terminal (needs a locker)
  59. - Privacy-aware (no unconfirmed user data collection)
  60. - Minimal deps, minimal config (with sensible defaults)
  61. - Widely available
  62. - Unicode support
  63. - Follows Linux kernel coding style
  64. - Highly optimized, static analysis integrated code
  65. ## Quickstart
  66. 1. Install the [utilities you may need](https://github.com/jarun/nnn#utility-dependencies) based on your regular workflows.
  67. 2. Configure [cd on quit](https://github.com/jarun/nnn/wiki/Basic-use-cases#configure-cd-on-quit).
  68. 3. Optionally open all text files in `$EDITOR` (fallback vi): `export NNN_USE_EDITOR=1`.
  69. 4. For additional functionality [install plugins](https://github.com/jarun/nnn/tree/master/plugins#installing-plugins).
  70. 5. To copy selected file paths to system clipboard and show notis on cp, mv, rm completion use option `-x`.
  71. 6. For a strictly CLI-only experience, see plugin `nuke`. It's a sample opener you can customize.
  72. Notes:
  73. 1. Don't memorize keys. Arrows, <kbd>/</kbd> and <kbd>q</kbd> suffice. Press <kbd>?</kbd> for help on keyboard shortcuts anytime.
  74. 2. To set `nnn` as the default file manager, follow these [instructions](https://github.com/jarun/nnn/wiki/Advanced-use-cases#configure-as-default-fm).
  75. ## Installation
  76. #### Library dependencies
  77. A curses library with wide char support (e.g. ncursesw), libreadline (optional) and standard libc.
  78. #### Utility dependencies
  79. | Dependency | Installation | Operation |
  80. | --- | --- | --- |
  81. | xdg-open (Linux), open(1) (macOS), cygstart (Cygwin) | base | desktop opener |
  82. | file, coreutils (cp, mv, rm), xargs | base | file type, copy, move and remove |
  83. | tar, (un)zip [atool/bsdtar for more formats] | base | create, list, extract tar, gzip, bzip2, zip |
  84. | archivemount, fusermount(3) | optional | mount, unmount archives |
  85. | sshfs, [rclone](https://rclone.org/), fusermount(3) | optional | mount, unmount remotes |
  86. | trash-cli | optional | trash files (default action: rm) |
  87. | vlock (Linux), bashlock (macOS), lock(1) (BSD) | optional | terminal locker (fallback: [cmatrix](https://github.com/abishekvashok/cmatrix)) |
  88. | advcpmv (Linux) ([integration](https://github.com/jarun/nnn/wiki/Advanced-use-cases#show-cp-mv-progress)) | optional | copy, move progress |
  89. | `$VISUAL` (else `$EDITOR`), `$PAGER`, `$SHELL` | optional | fallback vi, less, sh |
  90. #### From a package manager
  91. Install `nnn` from your package manager. If the version available is dated try an alternative installation method.
  92. <details><summary>Packaging status (expand)</summary>
  93. <p>
  94. <br>
  95. <a href="https://repology.org/metapackage/nnn/versions"><img src="https://repology.org/badge/vertical-allrepos/nnn.svg" alt="Packaging status"></a>
  96. </p>
  97. Unlisted distros:
  98. <p>
  99. <br>
  100. ● CentOS (<code>yum --enablerepo=epel install nnn</code>)<br>
  101. ● <a href="https://notabug.org/milislinux/milis/src/master/talimatname/genel/n/nnn/talimat">Milis Linux</a> (<code>mps kur nnn</code>)<br>
  102. ● <a href="https://www.nutyx.org/en/?type=pkg&branch=rolling&arch=x86_64&searchpkg=nnn">NuTyX</a> (<code>cards install nnn</code>)<br>
  103. ● <a href="http://codex.sourcemage.org/test/shell-term-fm/nnn/">Source Mage</a> (<code>cast nnn</code>)<br>
  104. </p>
  105. </details>
  106. #### Release packages
  107. Packages for Arch Linux, CentOS, Debian, Fedora and Ubuntu are auto-generated with the [latest stable release](https://github.com/jarun/nnn/releases/latest).
  108. #### From source
  109. Download the latest stable release or clone this repository (*risky*), install deps and compile. On Ubuntu 18.04:
  110. $ sudo apt-get install pkg-config libncursesw5-dev libreadline-dev
  111. $ sudo make strip install
  112. To compile _without_ libreadline:
  113. $ sudo apt-get install pkg-config libncursesw5-dev
  114. $ sudo make O_NORL=1 strip install
  115. `PREFIX` is supported, in case you want to install to a different location.
  116. Visit the [developer guides](https://github.com/jarun/nnn/wiki/Developer-guides) for compilation notes on the Pi, Cygwin and other compilation modes.
  117. #### Shell completion
  118. Completion scripts for Bash, Fish and Zsh are [available](misc/auto-completion). Refer to your shell's manual for installation instructions.
  119. ## Usage
  120. #### Configuration
  121. There is no config file. Associated files are stored under `${XDG_CONFIG_HOME:-$HOME/.config}/nnn/`.
  122. `nnn` supports the following optional (set if you need) environment variables.
  123. | Example `export` | Description |
  124. | --- | --- |
  125. | `NNN_OPENER=nuke` | custom file opener (see plugin `nuke`) |
  126. | `NNN_BMS='d:~/Documents;D:~/Docs archive/'` | key-bookmark pairs [max 10] |
  127. | `NNN_PLUG='o:fzopen;m:nmount;x:_chmod +x $nnn'` | key-plugin (or cmd) pairs [max 15] |
  128. | `NNN_USE_EDITOR=1` | open text files in `$VISUAL` (else `$EDITOR`, fallback vi) |
  129. | `NNN_CONTEXT_COLORS='1234'` | specify per context color [default: '4444' (all blue)] |
  130. | `NNN_SSHFS_OPTS='sshfs -o reconnect,idmap=user'` | specify SSHFS options |
  131. | `NNN_RCLONE_OPTS='rclone mount --read-only'` | specify rclone options |
  132. | `NNN_IDLE_TIMEOUT=300` | idle seconds to lock terminal [default: disabled] |
  133. | `NNN_TRASH=1` | trash files to the desktop Trash [default: delete] |
  134. #### Cmdline options
  135. ```
  136. usage: nnn [OPTIONS] [PATH]
  137. The missing terminal file manager for X.
  138. positional args:
  139. PATH start dir [default: .]
  140. optional args:
  141. -a use access time
  142. -b key open bookmark key
  143. -c cli-only opener
  144. -d detail mode
  145. -e name load session by name
  146. -E use EDITOR for undetached edits
  147. -f run filter as cmd on prompt key
  148. -H show hidden files
  149. -i nav-as-you-type mode
  150. -K detect key collision
  151. -n version sort
  152. -o open files on Enter
  153. -p file selection file [stdout if '-']
  154. -r use advcpmv patched cp, mv
  155. -R disable rollover at edges
  156. -s string filters [default: regex]
  157. -S du mode
  158. -t disable dir auto-select
  159. -v show version
  160. -x notis, sel to system clipboard
  161. -h show help
  162. ```
  163. #### Keyboard and mouse
  164. The list below is from the **dev branch**. Press <kbd>?</kbd> in `nnn` to see the keybinds in your installed version.
  165. ```
  166. NAVIGATION
  167. Up k Up PgUp ^U Scroll up
  168. Down j Down PgDn ^D Scroll down
  169. Left h Parent ~ ` @ - HOME, /, start, last
  170. g ^A Top Ret Right l Open
  171. G ^E Bottom ' First file
  172. b Pin CWD ^B Go to pinned dir
  173. , ^/ Lead key N LeadN Context N
  174. (Sh)Tab Cycle context d Detail view toggle
  175. / Filter/Lead Ins ^N Nav-as-you-type toggle
  176. Esc Exit prompt ^L F5 Redraw/clear prompt
  177. . Show/hide dots ? Help, conf
  178. Q ^Q Quit ^G QuitCD q Quit context
  179. FILES
  180. ^O Open with... n Create new/link
  181. D File details ^R F2 Rename/duplicate
  182. Space ^J/a Sel toggle/all r Batch rename
  183. m ^K Sel range, clear M List sel
  184. P Copy sel here K Edit, flush sel
  185. V Move sel here w Copy/move sel as
  186. X Del sel ^X Del entry
  187. f Archive o ^F Archive ops
  188. e Edit in EDITOR p Open in PAGER
  189. ORDER TOGGLES
  190. A Apparent du S du
  191. z Size E Extn t Time
  192. MISC
  193. ! ^] Shell ; x Plugin key
  194. C Execute file R ^V Pick plugin
  195. s Manage session = Launch app
  196. c Connect remote u Unmount
  197. ] ^P Prompt/run cmd L Lock
  198. ```
  199. Notes:
  200. 1. Help & settings, file details and archive listing are shown in the `$PAGER`.
  201. 2. To change shortcuts modify key bindings in `nnn.h` and compile. Option `-K` detects collisions.
  202. | Mouse click | Function |
  203. |---| --- |
  204. | Left single on context number | Visit context |
  205. | Left single on top row after context numbers | Visit parent |
  206. | Left single/double on last 2 rows | Toggle nav-as-you-type |
  207. | Left single | Select context or entry |
  208. | Left double | Select context or open entry |
  209. #### Lead key
  210. The Lead/Leader key provides a powerful multi-functional navigation mechanism. It is case-sensitive and understands contexts, bookmarks and location shortcuts.
  211. | Follower key | Function |
  212. |:---:| --- |
  213. | <kbd>1-4</kbd> | Go to/create selected context |
  214. | key | Go to bookmarked location |
  215. | <kbd>~</kbd> <kbd>`</kbd> <kbd>@</kbd> <kbd>-</kbd> | Visit HOME, `/`, start, last visited dir |
  216. | <kbd>.</kbd> | Toggle show hidden files |
  217. When the filter is on, <kbd>/</kbd> works as an additional Lead key.
  218. #### Help
  219. $ nnn -h
  220. $ man nnn
  221. To lookup keyboard shortcuts at runtime, press <kbd>?</kbd>.
  222. ## Elsewhere
  223. - [Wikipedia](https://en.wikipedia.org/wiki/Nnn_(file_manager))
  224. - [ArchWiki](https://wiki.archlinux.org/index.php/Nnn)
  225. - [FOSSMint](https://www.fossmint.com/nnn-linux-terminal-file-browser/)
  226. - [gHacks Tech News](https://www.ghacks.net/2019/11/01/nnn-is-an-excellent-command-line-based-file-manager-for-linux-macos-and-bsds/)
  227. - Hacker News [[1](https://news.ycombinator.com/item?id=18520898)] [[2](https://news.ycombinator.com/item?id=19850656)]
  228. - [It's FOSS](https://itsfoss.com/nnn-file-browser-linux/)
  229. - LinuxLinks [[1](https://www.linuxlinks.com/nnn-fast-and-flexible-file-manager/)] [[2](https://www.linuxlinks.com/bestconsolefilemanagers/)]
  230. - [Suckless Rocks](https://suckless.org/rocks/)
  231. - [Ubuntu Full Circle Magazine - Issue 135](https://fullcirclemagazine.org/issue-135/)
  232. ## Developers
  233. - [Arun Prakash Jana](https://github.com/jarun) (Copyright © 2016-2019)
  234. - [0xACE](https://github.com/0xACE)
  235. - [Anna Arad](https://github.com/annagrram)
  236. - [KlzXS](https://github.com/KlzXS)
  237. - [Sijmen J. Mulder](https://github.com/sjmulder)
  238. - and other contributors
  239. `nnn` is actively developed. Visit the to the [ToDo list](https://github.com/jarun/nnn/issues/386) to contribute or see the features in progress.