Skip to content

From noice to nnn

Mischievous Meerkat edited this page Sep 19, 2019 · 10 revisions

Why fork?

nnn was initially forked from noice but is significantly different today. I chose to fork because:

  • one can argue my approach deviates from the goal of the original project - keep the utility suckless. noice was rudimentary. In my opinion evolution is the taste of time.
  • I would like to have a bit of control on what features are added in the name of desktop integration. A feature-bloat is the last thing in my mind. Check out the design considerations for more details.

v1.0 was released on 13 Apr, 2017.

nnn vs. noice

The nnn toppings section below is outdated and not updated anymore. nnn is under active development and new capabilities are being added continuously. To have a more recent overview of the current features in nnn please visit the features list in the project homepage and the ToDo list.

Original (noice) features

  • Super-easy navigation
  • Pre-defined associations for different file types
  • Jump to home directory
  • Filter contents in current directory
  • Show/hide hidden files
  • Sort entries by modification time (newest to oldest)
  • Spawn a SHELL in current directory (fallback sh)
  • Run top
  • Edit a file with EDITOR (fallback vi)
  • Page through a file in PAGER (fallback less)

nnn toppings

Behaviour and navigation

  • Detail view (default) with:
    • file type (directory, regular, symlink etc.)
    • modification time
    • human-readable file size
    • current item in reverse video
    • number of items in current directory
    • full name of currently selected file in status bar
    • show current entry number in status bar
  • Search-as-you-type
  • Navigate-as-you-type
  • Bookmarks
  • Run any number of custom scripts
  • Custom color for directories
  • Watch directory changes
  • Create, rename files and directories
  • Batch rename/move/delete current dir entries in vidir
  • Show details of the currently selected file (similar to stat, file output)
  • Show media information, list and extract archives
  • Disk usage analyzer mode (within the same fs, doesn't follow symlinks)
  • Volume capacity and volume free in help
  • Directories first (even with sorting)
  • Pin and jump to a directory
  • Sort numeric names in numeric order
  • Case-insensitive alphabetic content listing instead of upper case first
  • Key - to jump to last visited dir, & to jump to initial dir, ~ takes HOME
  • Roll over at the first and last entries of a directory (with Up/Down keys)
  • Remove navigation restriction with relative paths (and let permissions handle it)
  • Sort entries by file size (largest to smallest)
  • Invoke ^K absolute file path copier (set using environment variable NNN_COPIER)
  • Change to last visited directory on quit
  • Add ^Q as shortcut to quit (to exit even from filter mode)
  • Support vlock as terminal screensaver
  • Remove code to run top
  • UTF-8 support

File association

  • open with custom application
  • nlay - customizable script to handle actions (retired)
  • Support NNN_USE_EDITOR to open text files in EDITOR (fallback vi)
  • Support NNN_DE_FILE_MANAGER

Optimization

  • All redundant buffer removal
  • All frequently used local chunks now static
  • Do not deallocate, re-use memory till program exit
  • Remove some redundant string allocation and manipulation
  • Simplify some roundabout procedures
  • Compiler warnings fixed
  • strip the final binary
  • more on performance...
Clone this wiki locally