Table of Contents generated with DocToc
- N-Commodore – a novel file manager/shell/command-line
- More in-depth explanation
- Asciicast
- Installation
A new approach to the command line:
- it’s a merge of Midnight Commander and command line,
- … because everything is panelized, greppable and remembered,
- you enter commands like ls, mv, cp, cat and have their output captured, always,
- then you can save the output via Ctrl-X (to a GDBM database) and visit it back with Ctrl-Shift-Left/Right,
- the screen save includes complete state like: current working directory, grep keywords, cursor position, etc.
I’m hoping that it’ll gain some attention, because by accident I might have discovered a fully novel, unprecedented approach to file managers/command line.
Pressing ENTER
on any line will open $VISUAL
/ $EDITOR
/ $PAGER
scrolled to
that line (if in file preview, otherwise, if poiting to the file, it will just open the file in editor).
Any view can be greped – n-commodore
starts with search prompt active, so you
can enter the search-keyword to have either files, file preview, or previous com
mands (views F1, F2, F3) filtered with it. Multiple keywords are allowed.
Basically it's about 3 factors:
- panelize everything,
- grep everything,
- save everything.
Panelization is known from Midnight Commander - it means to capture command output into a list that can be browsed. Grepping is known from fzf. Screen saving is a new paradigm
You basically have new screen (a greppable panel) for each new command, which is saved to the disk (GDBM), and which can be fetched/navigated to, having also PWD dir and position in panel restored.
NEW: AppImages are available.
Clone the repo and symlink $PWD/bin/n-c
(full path) to a directory in your $PATH
, like /usr/local/bin
, After this, run n-c
for the file manager.
… or, if using Zsh, load the plugin file n-commdore.plugin.zsh
either directly
(source …
) or via a plugin manager, like zinit
(zinit for psprint/n-commodore
). This creates a nc
alias which you can use
to start the file manager. You can define a variable NC_NO_NICKNAME_CMD=1
to
skip alias creation.