nnn

jarun / nnn

n³ 是一款非正统的终端文件管理器,以极快速度和丰富功能在终端中高效管理文件,解决命令行环境下的文件操作痛点。

C 开发工具 桌面/移动应用 终端文件管理器 命令行工具 效率工具 开源 Linux

为什么值得看

编辑点评

作为终端文件管理器的典范,n³ 体积小、依赖少、性能极强,支持插件、磁盘分析和模糊搜索,非常适合习惯命令行的开发者在远程服务器或无图形界面环境中使用。缺点是快捷键较多,学习曲线较陡,需要投入时间配置和适应。

Star 趋势

近 7 日
  • Star 总数21,883
  • 今日新增+2
  • 7 日增速0%
  • Fork817

同类项目

同场景 · 开发工具 / 桌面/移动应用

项目文档

来自 GitHub README · master 分支


nnn - Supercharge your productivity!

[Features] $~~$ [Quickstart] $~~$ [Plugins] $~~$ [Wiki]

nnn () is a full-featured terminal file manager. It's tiny (~150 KiB), nearly 0-config and incredibly fast.

It is designed to be unobtrusive with smart workflows to match the trains of thought.

nnn can analyze disk usage, batch rename, launch apps and pick files. The plugin repository has tons of plugins to extend the capabilities further e.g. live previews, (un)mount disks, find & list, file/dir diff, upload files. A patch framework hosts sizable user-submitted patches which are subjective in nature.

Independent (neo)vim plugins - nnn.vim, vim-floaterm nnn wrapper and nnn.nvim (neovim exclusive).

Runs on the Pi, Termux (Android), Linux, macOS, BSD, Haiku, Cygwin, WSL, across DEs or a strictly CLI env.

(more use cases)

Features

  • Quality
  • Privacy-aware (no unconfirmed user data collection)
  • POSIX-compliant, follows Linux kernel coding style
  • Highly optimized, static analysis integrated code
  • Frugal
  • Typically needs less than 3.5MB resident memory
  • Works with 8 colors (and xterm 256 colors)
  • Disk-IO sensitive (few disk reads and writes)
  • No FPU usage (all integer maths, even for file size)
  • Minimizes screen refresh with fast line redraws
  • Tiny binary (typically around 100KB)
  • 1-column mode for smaller terminals and form factors
  • Hackable - compile in/out features and dependencies
  • Portable
  • Language-agnostic plugins
  • Static binary available (no need to install)
  • Minimal library deps, easy to compile
  • No config file, minimal config with sensible defaults
  • Plugin to backup configuration
  • Widely available on many packagers
  • Touch enabled, handheld-friendly shortcuts
  • Unicode support
  • Modes
  • Light (default), detail
  • Disk usage analyzer (block/apparent)
  • File picker, (neo)vim plugin
  • Navigation
  • Filter with automatic dir entry on unique match
  • Type-to-nav (turbo navigation/always filter) mode
  • Jump to an entry with visible relative offset
  • Contexts (aka tabs/workspaces) with custom colors
  • Sessions, bookmarks, mark and visit a dir
  • Remote mounts (needs sshfs, rclone)
  • Familiar shortcuts (arrows, ~, -, @), quick look-up
  • cd on quit (easy shell integration)
  • Proceed to next file on file open and selection
  • Search
  • Instant filtering with search-as-you-type
  • Fuzzy, regex (POSIX/PCRE2) and string (default) filters
  • Subtree search plugin to open or edit files
  • Sort
  • Ordered pure numeric names by default (visit /proc)
  • Case-insensitive version (aka natural) sort
  • By name, access/change/mod (default) time, size, extn
  • Reverse sort
  • Directory-specific ordering
  • Mimes
  • Built-in previewer for directory and text files
  • FIFO-based previewer plugins with extensive mime support
  • Open with desktop opener or specify a custom opener
  • File-specific colors (or minimal dirs in context color)
  • Icons and Emojis support (customize and compile-in)
  • Plugin for image, video and audio thumbnails
  • Create, list, extract (to), mount (FUSE based) archives
  • Option to open all text files in $EDITOR
  • Convenience
  • Detailed file stats and mime information
  • Run plugins and custom commands with hotkeys
  • FreeDesktop compliant trash utility integration
  • Cross-dir file/all/range selection
  • Create (with parents), rename, duplicate files and dirs
  • Create new file or directory (tree) on startup
  • Batch renamer for selection or dir
  • List input stream of file paths from stdin or plugin
  • Copy (as), move (as), delete, archive, link selection
  • Easily copy, move paths in system clipboard to current dir
  • Dir updates, notification on cp, mv, rm completion
  • Copy file paths to system clipboard on select
  • Launch apps, run commands, spawn a shell, toggle exe
  • Access context paths/files at prompt or spawned shell
  • Lock terminal after configurable idle timeout
  • Capture and show output of a program in help screen
  • Basic support for screen readers and braille displays

Quickstart

Beginners

  1. Install nnn, preferbly using the package manager.
  2. Run the following command to generate (and optionally add to your rc file) a shell function to start with. sh sh -c "$(curl -Ls https://raw.githubusercontent.com/jarun/nnn/master/misc/quickstart.sh)"

Use the shell function name you chose to run nnn with your preferred configuration.

Power users

  1. Install nnn and the dependencies you need.
  2. Install plugins.
  3. Configure cd on quit.
  4. The desktop opener is default. Use -e to open text files in the terminal. Optionally open detached.
  5. In a CLI environment, set NNN_OPENER to nuke. Use option -c. For GUI apps, consider xopen.
  6. Sync subshell $PWD to nnn.
  7. Use -x to sync selection to clipboard, show notis on cp, mv, rm and set xterm title.
  8. Bid ls goodbye! alias l='nnn -dDe' :sunglasses:
  9. Visit the Live previews and Troubleshooting Wiki pages.

Don't memorize! Arrows, /, q suffice. Tab creates and/or cycles contexts. ? lists shortcuts.

Videos

Elsewhere

Developers

Visit the Tracker thread for a list of features in progress and anything up for grabs. Feel free to discuss new ideas or enhancement requests.

文档抓取自 GitHub 仓库 README,版权归原作者所有;已过滤徽章等噪音并经安全消毒后展示。