Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

What is np?

np is a NixVim configuration designed for Project Oriented Development (POD). It provides a pre-configured Neovim setup that you can import and customize per project without polluting your global environment.

Key Features

  • No Pollution: Project-specific configs via Nix flakes.
  • Modular: Base config + opt-in presets for languages/tools.
  • Nix-Powered: Reproducible builds and easy overrides.

Project Oriented Development

Thanks to Nix, we enter the era of Project Oriented Development. The concept is simple—development should be focused on projects, rather than user OS or user Home space.

This is the first of our projects in this line—to enable operations focused on projects.

Unlike conventional editors like Zed and VSCode, where workspaces or project config files easily provide tailored experiences, Neovim traditionally lacks built-in project-specific configuration. This makes it challenging to customize the editor per project without polluting the global setup. We don't want to lose Neovim just because it doesn't behave project-specific.

This configuration of NixVim ships as a module, so you can import it, override nixvim options to tailor your Nvim configuration per project, and stop worrying about editor behaving badly—due to lack of project-specific configurations—and don't pollute your OS or Home either.

Important Note

np does not provide custom Nix options. It is a pre-configured NixVim setup that you extend or shrink by redefining standard NixVim options.