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
The install.sh script bootstraps everything on a fresh machine.
It is interactive and supports macOS, Arch Linux, and Debian/Ubuntu.
# Clone this configuration
git clone https://github.com/remoterabbit/nvim.git ~/.config/nvim
cd ~/.config/nvim
# Run the installer (or: make install)
./install.shThe installer will, with prompts along the way:
- Detect your operating system.
- Install system dependencies (Neovim, ripgrep, fd, fzf, language toolchains,
LSP/formatter tools, a Nerd Font, etc.) via your package manager plus
pipxandnpm. - Back up any existing
~/.config/nvimto a timestamped directory. - Symlink this repository to
~/.config/nvim. - Install plugins with lazy.nvim.
- Install and register the pre-commit hooks.
Note: the installer uses
sudofor system packages and for symlinks under/usr/local/bin. On unsupported systems, install the prerequisites manually and use the manual setup below.
# 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!
- mason-org/mason-lspconfig.nvim
- mason-org/mason.nvim
- neovim/nvim-lspconfig
- onsails/lspkind.nvim
- ray-x/lsp_signature.nvim
- MeanderingProgrammer/render-markdown.nvim
- RRethy/vim-illuminate
- SmiteshP/nvim-navic
- ThePrimeagen/harpoon
- ThePrimeagen/refactoring.nvim
- allaman/emoji.nvim
- andythigpen/nvim-coverage
- chrisgrieser/nvim-scissors
- dhruvasagar/vim-table-mode
- elixir-tools/elixir-tools.nvim
- folke/snacks.nvim
- folke/trouble.nvim
- folke/which-key.nvim
- gennaro-tedesco/nvim-jqx
- j-hui/fidget.nvim
- karb94/neoscroll.nvim
- kevinhwang91/nvim-ufo
- laytan/cloak.nvim
- m4xshen/smartcolumn.nvim
- mfussenegger/nvim-lint
- michaelrommel/nvim-silicon
- mistweaverco/kulala.nvim
- mrjones2014/smart-splits.nvim
- nvim-lua/plenary.nvim
- nvim-lua/plenary.nvim
- nvim-pack/nvim-spectre
- nvim-tree/nvim-web-devicons
- paretje/nvim-man
- pwntester/octo.nvim
- ray-x/go.nvim
- remoterabbit/pr-description.nvim
- sindrets/diffview.nvim
- stevearc/aerial.nvim
- stevearc/conform.nvim
- stevearc/overseer.nvim
- stevearc/profile.nvim
- vuki656/package-info.nvim