A modern Neovim setup with AI-powered coding, extensive language support, and IDE features.
Perfect for developers seeking a single, unified environment for web development, backend systems, mobile apps, and competitive programming.
- π Installation
- β¨ Features
- βοΈ Configuration
- π Structure
- π οΈ Customization Guide
- π Troubleshooting
- π€ Contributing
- π License
- π Credits
- π Links
In windows, you can use scoop to install them.
-
Docker:
-
Git:
-
Telescope:
-
Mason.nvim:
-
Tree-sitter:
-
Nerd Font (For Icons):
bash <(curl -s https://raw.githubusercontent.com/Alexis12119/nvim-config/main/installer/install.sh)Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-WebRequest https://raw.githubusercontent.com/Alexis12119/nvim-config/main/installer/install.ps1 -UseBasicParsing |
Invoke-Expression-
Backup your current Neovim configuration:
# Linux/macOS mv ~/.config/nvim ~/.config/nvim.backup mv ~/.local/share/nvim ~/.local/share/nvim.backup # Windows mv $env:LOCALAPPDATA\nvim $env:LOCALAPPDATA\nvim.backup mv $env:LOCALAPPDATA\nvim-data $env:LOCALAPPDATA\nvim-data.backup
-
Clone this configuration:
# Linux/macOS git clone https://github.com/Alexis12119/nvim-config.git ~/.config/nvim # Windows git clone https://github.com/Alexis12119/nvim-config.git $env:LOCALAPPDATA\nvim
-
Start Neovim and let Lazy install the plugins:
nvim
- Supermaven - AI-powered code completion
- LuaSnip - Snippet engine
- Mini Comment/Surround - Quick commenting and surrounding
- Yanky - Enhanced yank/paste functionality
- Refactoring - Code refactoring tools
- Compiler.nvim - Code compilation and running with task management
- Debug Adapter Protocol - Integrated debugging
- Telescope - Fuzzy finder and picker
- Aerial - Code outline/symbols
- Inc-rename - Incremental renaming
- Dial - Enhanced increment/decrement
- Custom GitHub Dark Dimmed theme with extensive language-specific highlighting
- Indent Blankline - Visual indentation guides
- Treesitter Context - Context-aware code display
- Noice - Modern UI for commands and notifications
- Which-key - Keybinding helper
- Snacks.nvim - Modern UI components and utilities
- TypeScript/JavaScript - Full TS/JS support with Volar/VTSLS
- Vue - Vue.js framework
- Svelte - Svelte framework
- Astro - Astro framework
- Tailwind CSS - Utility-first CSS
- HTML/CSS/JSON/YAML - Web standards
- Python - Python development with venv-selector
- Go - Go language support
- Rust - Rust programming with rustaceanvim
- Java - Java development with nvim-java and Spring Boot support
- C/C++ - C/C++ with Clangd
- C#/.NET - .NET development with easy-dotnet.nvim
- Kotlin - Kotlin language
- Ruby - Ruby development
- PHP - PHP development with Laravel framework support
- Zig - Zig language
- SQL - Database queries with vim-dadbod suite
- Docker - Container support
- Git - Version control with Diffview integration
- Prisma - Database ORM
- CMake - Build system
- Toml - Configuration files
- Markdown - Documentation with preview
- Typst - Modern typesetting
- Prettier - Code formatting
- ESLint - JavaScript linting
- Neoconf - Project configuration
- Project.nvim - Project management with custom patterns
- Rest - HTTP client with kulala.nvim
- Dot - Graphviz support
- Neotest - Testing framework with multi-language adapters
- Real-time Collaboration - Nomad for pair programming
- Database Integration - vim-dadbod for database management
- Framework Support - Laravel, Spring Boot, Flutter-tools
- Competitive Programming - cphelper.nvim
- Performance Optimizations - Custom Neovim options for better responsiveness
This configuration includes extensive language support through LazyVim Extras. If you're seeing too many notifications about missing language servers or tools, you can easily remove unwanted language integrations:
- Open LazyExtras:
:LazyExtrasor press<leader>le - Navigate to the language/category you want to remove
- Press
xto toggle the extra off (it will be marked withβ) - Restart Neovim to apply changes
Edit lazyvim.json in your config root and remove unwanted extras from the list.
- Web Development: TypeScript, Vue, Svelte, Astro, Tailwind CSS
- Backend Languages: Java, C#, PHP, Rust, Go, Kotlin, Ruby, Zig
- Database Tools: SQL, Prisma, vim-dadbod suite
- Framework Support: Laravel, Spring Boot, Flutter-tools
- Theme: Custom GitHub Dark Dimmed with extensive language-specific highlighting
- Telescope Style: Borderless
- Custom Highlights: Detailed syntax highlighting for Python, Java, JavaScript/TypeScript, Go, Rust, PHP, Dart, C#, and more
To change the colorscheme, edit lua/config/globals.lua and modify the vim.g.colorscheme value:
Available themes:
tokyonight- Default modern dark themenvchad- Base46 NvChad themes
Example:
vim.g.colorscheme = "tokyonight" -- Switch theme- Performance Optimizations: Faster completion (100ms updatetime), optimized UI settings
- Custom LSP Settings: Tailored configurations for each language
- AI Integration: Supermaven for intelligent code completion
- Project Management: Custom patterns for project detection
- Database Tools: Integrated vim-dadbod suite for database management
The following plugins are intentionally disabled to avoid conflicts:
- nvim-tree - File explorer (disabled)
- oil.nvim - Buffer explorer (disabled)
- opencode - AI assistant (disabled, Supermaven used instead)
~/.config/nvim/
βββ installer/ # Installation scripts
β βββ install.ps1 # PowerShell installer
β βββ install.sh # Shell installer
β βββ install_requirements.ps1
βββ lua/
β βββ config/ # Core configuration (options, keymaps, autocmds)
β β βββ statusline/ # Custom statusline configuration
β β βββ tabufline/ # Tabline configuration
β βββ plugins/ # Plugin configurations
β β βββ ai/ # AI-related plugins
β β βββ collaboration/ # Real-time collaboration
β β βββ colorscheme/ # Theme configuration
β β βββ dap/ # Debug Adapter Protocol (DAP) configurations
β β βββ editor/ # Core editor plugins
β β βββ fun/ # Fun and experimental plugins
β β βββ integration/ # Integration plugins
β β βββ langs/ # Language-specific tools
β β βββ lsp/ # LSP configurations and settings
β β β βββ settings/ # Language-specific LSP settings
β β βββ ui/ # User interface plugins
β β βββ util/ # Utility plugins
β βββ themes/ # Custom themes (GitHub Dark Dimmed)
β βββ chadrc.lua # NvChad configuration
β βββ highlights.lua # Custom syntax highlighting
βββ snippets/ # Code snippets
β βββ snipmate/ # Snipmate format snippets
β βββ vscode/ # VSCode format snippets
βββ README.md
βββ init.lua # Entry point
βββ lazyvim.json # LazyVim extras configuration
βββ .luarc.json # Lua language server config
βββ ginit.vim # GUI Neovim configuration
βββ stylua.toml # StyLua formatter configuration
βββ LICENSE # License file
- Compiler.nvim - Code compilation and task management
- Nomad - Real-time collaboration for pair programming
- Database Tools - vim-dadbod suite for database management
- Framework Support - Laravel, Spring Boot, Flutter-tools, .NET Framework
- Competitive Programming - cphelper.nvim
- Custom Theme - Extensive GitHub Dark Dimmed customization
- Project Management - Custom project detection patterns
- Python Development - venv-selector integration
- Testing - Multi-language neotest adapters
- Performance - Optimized Neovim options for better responsiveness
- nvim-tree and oil.nvim (file explorers)
- opencode plugins (using Supermaven instead)
- Create a new file in
lua/plugins/directory - Follow the
LazySpecformat used in existing plugin files - Use the import system in
lua/plugins/init.lua
- Edit
lua/themes/github_dark_dimmed.luafor theme colors - Modify
lua/highlights.luafor additional syntax highlighting - Language-specific highlights are defined in the theme file
- Language-specific LSP settings are in
lua/plugins/lsp/settings/ - Create new files for additional language servers
- Plugin not loading: Check if plugin is enabled in configuration
- LSP not starting: Verify language server is installed and configured
- Theme issues: Ensure terminal supports true colors (24-bit)
- Performance: Check for heavy plugins or large files
- Check LazyVim documentation for base functionality
- Review plugin-specific documentation in their repositories
- Open an issue on this repository for configuration-specific problems
Feel free to submit issues and enhancement requests!
- Fork repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- LazyVim - The base configuration
- NvChad - UI components and inspiration
- All the plugin authors and contributors
- LazyVim Docs: https://lazyvim.github.io/
- Neovim: https://neovim.io/