A blazing fast, fully-featured Neovim configuration built for Linux and macOS. It includes LSP support, debugging (DAP), AI assistance (Copilot), and a refined UI, all managed by lazy.nvim.
Important
🪟 Windows Users: Please check the windows branch for a configuration optimized for PowerShell and Windows build tools.
Ensure your system has the necessary build tools and runtimes.
Ubuntu / Debian:
sudo apt update
sudo apt install neovim build-essential ripgrep fd-find git
Fedora / RHEL:
sudo dnf install neovim gcc make ripgrep fd-find git
Arch Linux:
sudo pacman -S neovim base-devel ripgrep fd git
macOS (Homebrew):
brew install neovim ripgrep fd gcc
For Mason.nvim to install language servers (LSP) and formatters, you need:
- Node.js (npm): Required for
pyright,ts_ls,bashls, etc. - Python: Required for
debugpyand Python tooling. - Rust (Cargo): Optional, but recommended for compiling some tools.
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
git clone [https://github.com/ashwani1330/neovimrc.git](https://github.com/ashwani1330/neovimrc.git) ~/.config/nvim
Open nvim in your terminal. lazy.nvim will automatically bootstrap and install all plugins.
- Wait for the dashboard to appear.
- Run
:checkhealthto verify everything is green.
Leader Key: Space
CLICK TO VIEW ALL KEYBINDINGS
| Key | Action |
|---|---|
<leader>pv |
Toggle File Explorer (NvimTree) |
<leader>e / - |
Edit Parent Directory (Oil.nvim) |
<leader>w |
Save File |
<leader>q |
Quit |
<leader>Q |
Force Quit All |
Ctrl+h/j/k/l |
Navigate between splits |
Ctrl+Arrows |
Resize splits |
<C-\> |
Toggle Terminal |
<leader>fb |
Switch Buffers (Telescope) |
| Key | Action |
|---|---|
gd |
Go to Definition |
K |
Hover Documentation |
<leader>vrr |
Find References |
<leader>vca |
Code Action |
<leader>vrn |
Rename Symbol |
<leader>vd |
Show Diagnostics (Float) |
<leader>vws |
Workspace Symbols |
[d / ]d |
Previous / Next Diagnostic |
<leader>f |
Format File |
| Key | Action |
|---|---|
<leader>ff |
Find Files |
<leader>fg |
Live Grep (Search text) |
<leader>fr |
Recent Files |
<leader>fw |
Grep String (Word under cursor) |
<leader>fc |
Fuzzy find in current buffer |
<leader>fs |
Document Symbols |
<leader>px |
Project/Telescope Commands |
<leader>fh |
Help Tags |
<leader>fk |
Keymaps |
| Key | Action |
|---|---|
| Ghost Text | |
Ctrl+J |
Accept Suggestion |
Ctrl+L |
Accept Next Word |
Ctrl+H |
Dismiss Suggestion |
Alt+] |
Next Suggestion |
Alt+[ |
Previous Suggestion |
| Chat Agent | |
<leader>aa |
Toggle Chat Sidebar |
<leader>aq |
Quick Chat Input |
<leader>ae |
Explain Code (Visual) |
<leader>af |
Fix Bug (Visual) |
<leader>at |
Generate Tests (Visual) |
| Key | Action |
|---|---|
<leader>gs |
Git Status |
<leader>gc |
Git Commit |
<leader>gp |
Git Push |
<leader>gP |
Git Pull |
<leader>gd |
Git Diff |
<leader>gl |
Git Log |
]c / [c |
Next / Previous Hunk |
<leader>hs |
Stage Hunk |
<leader>hr |
Reset Hunk |
<leader>hp |
Preview Hunk |
<leader>tb |
Toggle Blame Ghost Text |
| Key | Action |
|---|---|
F5 |
Start / Continue |
F10 |
Step Over |
F11 |
Step Into |
F12 |
Step Out |
<leader>db |
Toggle Breakpoint |
<leader>dB |
Conditional Breakpoint |
<leader>du |
Toggle Debug UI |
<leader>dr |
Open REPL |
<leader>dt |
Terminate |
| Key | Action |
|---|---|
<leader>u |
Toggle UndoTree |
<leader>xx |
Toggle Trouble (Diagnostics) |
<leader>h |
Clear Search Highlight |
<leader>r |
Replace word under cursor |
Alt+j/k |
Move lines up/down |
- Plugin Manager: lazy.nvim
- LSP: Mason, Mason-LSPConfig, nvim-lspconfig
- Completion: nvim-cmp, LuaSnip
- Formatting: Conform.nvim
- Explorer: Oil.nvim (Buffer-like file editing) & Nvim-Tree
- Fuzzy Finder: Telescope.nvim (with fzf-native for speed)
- Git: Gitsigns & Fugitive
- AI: Github Copilot & CopilotChat.nvim
- Debugging: nvim-dap & nvim-dap-ui
1. "Make" not found / Telescope FZF error
Ensure you have make and gcc installed (see Requirements). Then run:
:Lazy build telescope-fzf-native.nvim
2. Treesitter errors on startup If syntax highlighting is missing, run:
:TSUpdate
3. Icons are missing or look weird Make sure you are using a Nerd Font in your terminal.