Skip to content
/ nvim Public

Pragmatic batteries-included Neovim config for AI-augmented coding - built for real, day-to-day work. 67+ plugins, 20 LSPs, ~100ms startup.

Notifications You must be signed in to change notification settings

ph1losof/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

241 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Neovim Config <3

Startuptime: 99.5ms

Based on the actual CPU time of the Neovim process till UIEnter.
This is more accurate than `nvim --startuptime`.
 LazyStart 6.34ms
 LazyDone  94.1ms (+87.75ms)
 UIEnter   99.5ms (+5.4ms)

Introduction

Most Neovim configurations pretend like they are being used to get actual work done. This one is.

This is the Neovim configuration I use daily in large production codebases. Every plugin, keymap, and option earns its place through real usage - if something breaks or slows me down, it gets fixed or removed. All plugins are actively used and I keep it as minimal as possible, but I never compromise on developer experience - if there's a better path, I always take it.

It contains a lot of "hacks" and little known tricks I've accumulated over the years to make overral experience better, which you won't find in any other dotfiles - all of this comes from battle-testing plugins in real projects and digging through countless GitHub issues to find solutions that actually work.

I actively keep it up to date with modern approaches, plugins, and ecosystem changes. Even though it is opinionated, it strikes a good balance between being ready to use now and providing good defaults as a starting point for your own configuration.

Highlights

  • 67+ plugins organized across 38 separate plugin files
  • 20 language servers configured with smart root detection and conditional attachment
  • AI-augmented development via Claude Code and Codeium integration
  • Custom tree-sitter parser (edf) for .env file syntax highlighting
  • Format on save with conform.nvim (prettier, stylua, ruff, rustfmt, and more)
  • 10+ linters running via nvim-lint
  • Modern completion via blink.cmp with AI and LSP sources
  • Sensitive data masking with shelter.nvim
  • Environment variable management with ecolog2.nvim
  • REST client via kulala.nvim
  • Database interface via vim-dadbod

Languages Supported

TypeScript/JavaScript, React/Vue/Astro, Python, Rust, Lua, SQL, Bash, HTML/CSS/Tailwind, Markdown, TOML, YAML, JSON, Docker, GraphQL, Prisma, and Graphviz DOT.

Installation

Prerequisites

Required:

  • Neovim >= 0.10
  • git, make, unzip
  • C compiler (gcc or clang) — needed by tree-sitter to compile parsers
  • ripgrep — used by snacks.nvim picker for live grep
  • Node.js & npm — required by many LSP servers and tools
  • Nerd Font — provides icons used throughout the UI (vim.g.have_nerd_font is set to true)
  • Clipboard toolpbcopy/pbpaste (macOS), xclip/xsel (Linux), or win32yank (Windows)

Recommended:

  • mise — runtime version manager (config prepends mise shims to PATH)
  • lazygit — terminal UI for git, integrated via snacks.nvim (<leader>lg)
  • fd — faster file finding for the picker

Optional (language-specific):

  • Deno — for Deno project support (LSP activates when deno.json/deno.jsonc is present)
  • Python 3 — for Python development (pyright + ruff)
  • Rust/cargo — for Rust development (rust-analyzer + rustfmt)

Setup

  1. Clone this repository:

    git clone https://github.com/ph1losof/nvim ~/.config/nvim
  2. Open Neovim — Lazy.nvim will auto-install all plugins on first launch:

    nvim
  3. Install all LSP servers, formatters, and linters:

    :MasonInstallAll
  4. Verify tree-sitter parsers are installed:

    :TSUpdate

Project Structure

~/.config/nvim/
├── init.lua                  # Entry point (leader key, loads config modules)
├── lua/
│   ├── config/
│   │   ├── lazy.lua          # Lazy.nvim bootstrap and setup
│   │   ├── options.lua       # Vim options and diagnostics
│   │   ├── mappings.lua      # Global keymaps
│   │   └── autocmds.lua      # Autocommands
│   ├── plugins/              # 38 plugin spec files (one per plugin/group)
│   └── helpers.lua           # Shared utility functions
├── snippets/                 # Custom snippets (drizzle, package.json, css)
├── patches/                  # Plugin patches (applied via patchr.nvim)
└── lazy-lock.json            # Plugin version lockfile

Thanks

When I initially started using Neovim, my starting point was NvChad. That's why you may find keybindings similar to NvChad's.

This is a fork of nvim-lua/kickstart.nvim that moves from a single file to a multi-file configuration (huge thanks to them).

About

Pragmatic batteries-included Neovim config for AI-augmented coding - built for real, day-to-day work. 67+ plugins, 20 LSPs, ~100ms startup.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages