NAVI // NAVIVIM

the in-terminal IDE.

Hand-rolled Neovim — no distro framework, just lazy.nvim and one file per feature. Navi's default editor.

Free and open source: xvoidsx/navivim.

NaviVim dashboard: neon logo, shortcut menu, file explorer
The NaviVim dashboard — neon logo, shortcut menu, file explorer. The real thing, running on navi.

What it is

NaviVim is the in-terminal IDE for Navi Linux — hand-rolled Neovim, no distro framework. Just lazy.nvim and one file per feature. Its ambition is a premier, best-in-class Neovim experience that feels like a cohesive whole with the system it ships on.

Leader is Space — tapped in sequence, never held. Stuck anywhere? Tap Space and wait half a second: a menu shows every shortcut available from there. You never have to memorize.

The 30-second tour

KeysWhat
Ctrl+n / Space eFile explorer sidebar
Space uaAutocomplete on/off
/ then EscSearch in file, clear highlight
Space ff / Space fgFind files / grep project
Space then waitwhich-key shows everything
NaviVim editing an HTML file: file explorer, buffers, syntax highlighting
In the wild — editing bookmarks.html, nemo open beside it in the nightshadeNeon GTK theme. Sidebar, buffers, and Moka icons, doing real work.

Install

On a Debian base today; shipping as navi's default editor from the get-go in navi 1.5 “mika” — the NaviVim update.

git clone https://github.com/xvoidsx/navivim ~/NaviVim
cd ~/NaviVim
./install.sh              # full setup: apt deps, Neovim 0.11+, plugins
./install.sh --no-apt     # skip apt (deps already present)
./install.sh --system     # navi distro installer (as root): system-wide
                          # install, /etc/skel seed, default editor

The script installs Neovim from the upstream release tarball (Debian stable's 0.10 is too old), links the repo to ~/.config/nvim, seeds the nightshadeNeon theme, and syncs plugins headlessly. Language servers and formatters install via :Mason on first launch.

One file per feature

No framework distro underneath — every plugin is chosen on purpose, each in its own lua/plugins/*.lua file: sidebar, completion, search, LSP, treesitter, UI, git, editing, terminal, theme. The whole config stays readable enough to learn from. Plugin versions are pinned in lazy-lock.json for reproducible builds.

Docs