A highly customized, performance-oriented Neovim configuration built completely in Lua (with a sprinkle of Fennel). It aims to provide a modern IDE-like experience without the bloat, focusing on aesthetics, speed, and ergonomics.
Philosophy: "VS Code features, Vim speed."
- 🚀 Plugin Management: Powered by lazy.nvim for blazing fast startup times.
- 🧠 LSP: Native
vim.lspconfiguration enhanced with mason.nvim to easily install servers, linters, and formatters. - 🔮 Completion: Ultra-fast completion using blink.cmp and snippet support via LuaSnip.
- 🌲 File Explorer: snacks.nvim explorer on the right sidebar with custom icons.
- 🔭 Fuzzy Finding: snacks.nvim pickers for files, grep, git history, and more.
- 🎨 Theme: Custom nitepal.nvim colorscheme (Work In Progress).
- 🐘 PHP Support: Specialized setup for PHP development (DAP, PHPActor, Code Sniffer).
The configuration follows a modular structure for easy maintenance:
config/nvim/
├── init.lua # Entry point (bootstraps lazy.nvim)
├── flsproject.fnl # Fennel project configuration
├── lua/
│ ├── jascha030/ # Core configuration module
│ │ ├── core/ # Options, globals
│ │ └── ...
│ └── plugins/ # Plugin definitions (Lazy.nvim specs)
│ ├── lsp.lua # LSP & Mason setup
│ ├── completion.lua# Autocompletion
│ └── ...
└── after/ # Filetype specific settings
The Leader Key is set to <Space>.
| Mode | Key | Action |
|---|---|---|
| Normal | <Space>fe |
Toggle File Explorer (Snacks) |
| Normal | <Space>ff |
Find Files (Snacks) |
| Normal | <Space>fg |
Live Grep (Snacks) |
| Normal | <Space>fb |
Find Buffers |
| Normal | <C-h/j/k/l> |
Window Navigation |
Tip: This config uses
which-key.nvim. Press<Space>and wait to see a popup with all available keybindings!
Ensure you have the following installed on your system:
- Neovim (>= 0.9.0)
- Node.js (required for some LSPs/Mason)
- Ripgrep (required for grep pickers)
- fd (optional, improves file finding)
- PHP (if using PHP features)
- Composer
This configuration is part of my dotfiles. To install it separately:
# Backup existing config
mv ~/.config/nvim ~/.config/nvim.bak
# Clone repo (assuming you just want the nvim config)
# Note: This repo is a full dotfiles repo, so you'd normally link it.
git clone https://github.com/jascha030/.dotfiles.git ~/tmp_dotfiles
mkdir -p ~/.config/nvim
cp -r ~/tmp_dotfiles/config/nvim/* ~/.config/nvim/