bugsvim is a thoughtfully curated NeoVim configuration built for modern development workflows. It combines the power of Lua-based configuration with a carefully selected collection of plugins to provide a fast, extensible, and enjoyable editing experience.
This configuration is forked from BUGSVIM by Abhra00. We are grateful for the excellent foundation and extend our thanks to:
- Abhra00 for the original BUGSVIM project
- folke and the lazy.nvim team for the exceptional plugin manager
- nvim-treesitter contributors for intelligent syntax parsing
- All maintainers of the plugins integrated into this configuration
- Tokyo Night colorscheme with carefully tuned defaults
- Dynamic statusline via lualine showing real-time editor information
- Smart session persistence that survives restarts
- Smooth animations and visual feedback
- Complete LSP ecosystem with support for:
- Lua (lua-language-server)
- Python (Pyright + Ruff)
- TypeScript/JavaScript (ts_ls)
- C/C++ (clangd)
- Rust (rust-analyzer)
- Bash (bash-language-server)
- HTML, CSS, Tailwind CSS
- Hyprland (hyprls)
- Java (JDTLS)
- Enhanced diagnostics with inline error messages, gutter signs, and floating windows
- Advanced code completion via Blink Cmp with intelligent caching
- Multi-formatter support via Conform (stylua, shfmt, clang-format, prettier)
- Real-time linting with nvim-lint
- Interactive debugging support via nvim-dap
- Treesitter-powered syntax highlighting and text objects
- Fast fuzzy finding and navigation
- Git integration with gitsigns for inline blame and diff hunks
- Task & TODO tracking with todo-comments
- Smart snippets for rapid coding
- Lazy loading for sub-millisecond startup times
- Which-key integration for discoverable keybindings
- Beautiful UI with Noice.nvim - command palette and event notifications in popup windows
- Spring Boot development support
- Java Development via JDTLS
- Markdown support with live preview in browser (markdown-preview.nvim)
- Enhanced markdown editing with checkbox and table support (markdown.nvim)
- Snacks.nvim for notifications, animations, and quality-of-life features
- Mini.nvim utilities for enhanced editing
- LazyDev for integrated Neovim API documentation
- Persistent undo history
- Auto-formatting on save
- Smart keybindings
- Graceful error handling
bugsvim provides automated installation and update scripts for major distributions.
git clone https://github.com/dwilliam62/bugsvim ~/.config/bugsvim
cd ~/.config/bugsvim
bash install.shinstall.sh detects your OS/distro and dispatches to the matching driver in installers/. It is the intended entry point - the per-distro commands below are explicit fallbacks for when you want to pick the driver yourself.
git clone https://github.com/dwilliam62/bugsvim ~/.config/bugsvim
cd ~/.config/bugsvim
bash installers/install-arch.sh
# Or update existing installation
bash installers/install-arch.sh -ugit clone https://github.com/dwilliam62/bugsvim ~/.config/bugsvim
cd ~/.config/bugsvim
bash installers/install-debian.sh
# Or update existing installation
bash installers/install-debian.sh -ugit clone https://github.com/dwilliam62/bugsvim ~/.config/bugsvim
cd ~/.config/bugsvim
bash installers/install-fedora.sh
# Or update existing installation
bash installers/install-fedora.sh -ugit clone https://github.com/dwilliam62/bugsvim ~/.config/bugsvim
cd ~/.config/bugsvim
bash installers/install-gentoo.sh
# Or update existing installation
bash installers/install-gentoo.sh -ugit clone https://github.com/dwilliam62/bugsvim ~/.config/bugsvim
cd ~/.config/bugsvim
bash installers/install-opensuse.sh
# Or update existing installation
bash installers/install-opensuse.sh -ugit clone https://github.com/dwilliam62/bugsvim ~/.config/bugsvim
cd ~/.config/bugsvim
bash installers/install-alpine.sh
# Or update existing installation
bash installers/install-alpine.sh -ugit clone https://github.com/dwilliam62/bugsvim ~/.config/bugsvim
cd ~/.config/bugsvim
bash installers/install-bazzite.sh
# Or update existing installation
bash installers/install-bazzite.sh -u# FreeBSD
bash installers/install-freebsd.sh
# OpenBSD
bash installers/install-openbsd.sh
# NetBSD
bash installers/install-netbsd.shgit clone https://github.com/dwilliam62/bugsvim $env:LOCALAPPDATA\bugsvim
Set-Location $env:LOCALAPPDATA\bugsvim
.\install-windows.ps1The installation scripts provide:
- Full Installation: Detects distribution, backs up existing NeoVim configurations, installs required system packages/LSPs, configures user-level npm, verifies setup, and copies config to
~/.config/nvim. - Modular Update Mode (
-u/--update): Checks/installstree-sitter-cli, cleans legacynvim-treesittercaches from oldermastercheckouts, and synchronizes the latest configuration. - Config Update Mode (
-c/--update-config): Pulls the repo, backs up~/.config/nvim, re-syncs it from the repo (removing files that no longer exist upstream) and runs:Lazy syncso new plugins get installed.
See INSTALL.md and INSTALL-SCRIPTS.md for detailed instructions.
| Package | Purpose |
|---|---|
| neovim (0.10+) | Text editor (0.10, 0.11, 0.12+) |
| git | Version control |
| tree-sitter-cli | Treesitter parser compiler |
| ripgrep | Fast file search |
| fd | Fast directory traversal |
| curl | Network requests |
| build-essential / @development-tools | C/C++ compilation |
| pkg-config | Development libraries |
| LSP | Language(s) | Installation |
|---|---|---|
| lua-language-server | Lua | System package |
| clangd | C/C++ | System package |
| pyright | Python | pip3 or AUR |
| ts_ls | TypeScript/JavaScript | Npm |
| rust-analyzer | Rust | System package |
| bash-language-server | Bash/Shell | Npm |
| html | HTML | Npm |
| cssls | CSS | Npm |
| tailwindcss | Tailwind CSS | Npm |
| hyprls | Hyprland Config | AUR / Manual build |
| JDTLS | Java | Npm |
| Formatter | Language(s) | Installation |
|---|---|---|
| stylua | Lua | System package |
| shfmt | Shell/Bash | System package |
| clang-format | C/C++ | System package |
| prettier | Web (JS/CSS/HTML) | Npm |
| prettierd | Web (daemon mode) | Npm |
| Tool | Purpose | Installation |
|---|---|---|
| lazygit | Git UI client | System package |
| bat | Better cat |
System package |
| wl-clipboard | Clipboard access (Wayland) | System package |
After installation:
# Reload your shell to apply PATH changes
source ~/.$(basename $SHELL)rc
# Launch NeoVim
nvim
# Plugins will auto-install on first launch
# Verify LSP status: :LspInfo
# Check health: :checkhealthFor detailed post-installation setup, see POST-INSTALL.md.
All configuration is organized in ~/.config/nvim/lua/:
nvim/
βββ init.lua # Entry point
βββ lua/
βββ config/ # Core configuration
β βββ options.lua # Editor options & settings
β βββ keymaps.lua # Key bindings
β βββ lazy.lua # Plugin manager setup
β βββ autocmds.lua # Auto commands
β βββ globals.lua # Global variables
βββ plugins/ # Plugin specifications
βββ servers/ # LSP configurations
βββ utils/ # Utility functions
For common issues and solutions, see POST-INSTALL.md.
This project is licensed under the GNU General Public License v3 (GPL-3.0).
You are free to:
- Use this software for any purpose
- Distribute copies
- Modify the source code
Under the condition that:
- You provide source code availability (include it or link to it)
- Any modified versions must also use GPL-3.0
- You include the license and copyright notices
See the LICENSE file for the full text.
For issues or contributions, visit the GitHub repository.



