My personal Neovim configuration with LSP support, AI integration, and customized keybindings.
- LSP Support: Full language server protocol integration for multiple languages
- Markdown Preview: Multiple preview options (browser and native webview)
- Completion: nvim-cmp with LSP sources (Tab completion disabled)
- Git Integration: Fugitive, Gitsigns, and Diffview
- File Navigation: Telescope fuzzy finder and Harpoon
- Debugging: DAP (Debug Adapter Protocol) support
- AI tools: OpenCode side split and Claude terminal launcher
- Neovim 0.12-compatible configuration
- Augment removed from the active setup
nvim-treesitter/playgroundremoved because it is incompatible with the current treesitter API- Forgejo is the default git remote for this repo
<leader>tc- Toggle autocomplete on/off<C-n>/<C-p>- Navigate completion suggestions<C-y>- Accept completion<C-Space>- Trigger completion
<leader>mp- Toggle Markdown Preview (browser-based)<leader>pk- Open Peek preview (native webview)<leader>pc- Close Peek preview
<leader>oc- Open OpenCode in a side split<leader>cc- Open Claude in a top terminal split
<leader>pf- Find files<C-p>- Git files<leader>/- Live grep<leader>pb- Browse buffers
gd- Go to definitiongr- Go to referencesgi- Go to implementationK- Hover documentation<leader>rn- Rename symbol<leader>ca- Code actions
<leader>gs- Git status (Fugitive)<leader>gp- Preview git hunk<leader>gb- Git blame line
- Tab key inserts literal tabs (autocomplete acceptance disabled)
- Dark chalkboard color theme
- Custom status line with git integration
- Automatic formatting on save for supported languages
This repo is synced into ~/.config/nvim by Home Manager from the separate system configuration repo.
# Clone and work locally
git clone ssh://forgejo@parrisisland.netmaker:2224/kenneth/nvim.git ~/.config/nvim
cd ~/.config/nvimForgejo is the default remote for this repo.
git remote -voriginpoints to the private Forgejo repositorygithubpoints to GitHub
Push commands:
git push origin main
git push github mainInstall the local git hook once:
./scripts/install-git-hooks.shAfter that, every push validates that Neovim starts cleanly:
nvim --headless '+q'