A modern, feature-rich Neovim setup built for productivity and development workflow optimization.
π Config Stats: 54 plugins β’ 3 core configs β’ 9 file templates
- Language Server Protocol (LSP) - Full IDE-like features with auto-completion, diagnostics, and code actions
- Debug Adapter Protocol (DAP) - Integrated debugging support for multiple languages
- Tree-sitter - Advanced syntax highlighting and code understanding
- Auto-formatting - Code formatting with conform.nvim and language-specific tools
- Linting - Real-time code analysis and error detection
- Catppuccin Theme - Beautiful, eye-friendly color scheme
- Enhanced UI - Custom statusline, bufferline, and floating windows
- File Explorer - Feature-rich nvim-tree with git integration
- Fuzzy Finding - Telescope for lightning-fast file and content search
- Git Integration - Full git workflow with lazygit, gitsigns, and fugitive
- Terminal Integration - Seamless terminal and tmux navigation
- Session Management - Project-aware sessions and workspace restoration
- Snippet System - Extensive snippet collection for faster coding
- Neotest - Integrated test runner with language-specific adapters
- Code Coverage - Visual coverage indicators
- Pre-commit Hooks - Automated code quality checks and documentation generation
- Neovim 0.10.0+ or later
- Git for plugin management
- Node.js for LSP servers
- Python and pip for additional tools
- Ripgrep for fast searching
- A Nerd Font for icons
# Backup existing config (optional)
mv ~/.config/nvim ~/.config/nvim.backup
# Clone this configuration
git clone https://github.com/remoterabbit/nvim.git ~/.config/nvim
# Start Neovim (plugins will auto-install)
nvim~/.config/nvim/
βββ π lua/
β βββ π config/ # Core configuration
β β βββ options.lua # Neovim options
β β βββ keymaps.lua # Global keymaps
β β βββ lazy.lua # Plugin manager setup
β βββ π plugins/ # Plugin configurations
βββ π docs/ # Auto-generated documentation
β βββ KEYBINDINGS.md # Comprehensive keybinding reference
β βββ PLUGINS.md # Detailed plugin documentation
βββ π scripts/ # Automation scripts
βββ π templates/ # File templates
βββ init.lua # Entry point
βββ stylua.toml # Code formatting config
- Keybindings Reference - Complete list of all keybindings organized by mode
- Plugin Documentation - Detailed information about each plugin
- Contributing Guidelines - How to contribute to this configuration
| Category | Key | Description |
|---|---|---|
| Files | <leader>ff |
Find files |
| Search | <leader>fg |
Live grep |
| Git | <leader>gg |
LazyGit |
| LSP | <leader>ca |
Code actions |
| Debug | <leader>dt |
Toggle breakpoint |
π‘ Tip: Press
<space>in normal mode to see all available keybindings with which-key.
- Create a new file in
lua/plugins/ - Follow the existing plugin structure
- Run
:Lazyto manage plugins
This configuration includes LSP support for:
- Python (Pyright)
- JavaScript/TypeScript (ts_ls)
- Lua (lua_ls)
- Go (gopls)
- Rust (rust-analyzer)
- And many more...
Found a bug or want to add a feature? Contributions are welcome!
- Fork the repository
- Create a feature branch
- Make your changes
- Run pre-commit hooks:
pre-commit run --all-files - Submit a pull request
This configuration is released into the public domain under the Unlicense.
β Star this repo if you find it useful!
- neovim/nvim-lspconfig
- onsails/lspkind.nvim
- ray-x/lsp_signature.nvim
- williamboman/mason-lspconfig.nvim
- williamboman/mason.nvim
- akinsho/bufferline.nvim
- catppuccin/nvim
- nvim-lualine/lualine.nvim
- norcalli/nvim-colorizer.lua
- kristijanhusak/vim-dadbod-ui
- nvim-treesitter/nvim-treesitter
- nvim-treesitter/nvim-treesitter-textobjects
- nvim-telescope/telescope.nvim
- cappyzawa/telescope-terraform.nvim
- mbbill/undotree
- stevearc/aerial.nvim
- laytan/cloak.nvim
- stevearc/conform.nvim
- sindrets/diffview.nvim
- elixir-tools/elixir-tools.nvim
- allaman/emoji.nvim
- j-hui/fidget.nvim
- ray-x/go.nvim
- ThePrimeagen/harpoon
- mistweaverco/kulala.nvim
- L3MON4D3/LuaSnip
- karb94/neoscroll.nvim
- saxon1964/neovim-tips
- andythigpen/nvim-coverage
- warpaint9299/nvim-devdocs
- gennaro-tedesco/nvim-jqx
- mfussenegger/nvim-lint
- paretje/nvim-man
- SmiteshP/nvim-navic
- michaelrommel/nvim-silicon
- kevinhwang91/nvim-ufo
- nvim-tree/nvim-web-devicons
- epwalsh/obsidian.nvim
- pwntester/octo.nvim
- hedyhli/outline.nvim
- stevearc/overseer.nvim
- vuki656/package-info.nvim
- nvim-lua/plenary.nvim
- stevearc/profile.nvim
- ThePrimeagen/refactoring.nvim
- MeanderingProgrammer/render-markdown.nvim
- b0o/schemastore.nvim
- LintaoAmons/scratch.nvim
- m4xshen/smartcolumn.nvim
- mrjones2014/smart-splits.nvim
- folke/snacks.nvim
- nvim-pack/nvim-spectre
- nvim-lua/plenary.nvim
- nvim-telescope/telescope.nvim
- folke/trouble.nvim
- linux-cultist/venv-selector.nvim
- RRethy/vim-illuminate
- dhruvasagar/vim-table-mode
- wakatime/vim-wakatime
- folke/which-key.nvim