A modular, multi-language development environment built on LazyVim
Multi-language support, minimalist design, and advanced developer tools
- Web Development: HTML/CSS, JavaScript, Tailwind CSS
- Backend: Python, Elixir, Ruby, Java, SQL
- Mobile: Swift, Dart (Flutter)
- Functional: Clojure, Standard ML
- Creative Coding: SonicPi (music programming)
- Emerging: Nim, Mojo, V, QBE IR, ISPC
- DevOps: Docker, CMake, Nix, Shell scripting
- Clean Interface - No line numbers, auto-hiding elements
- Focus Mode - Distraction-free coding environment
- Multiple Themes - Extensive colorscheme support with custom fixes
- Responsive UI - Adapts to your workflow needs
- Debugging - Full DAP integration with multiple language support
- Git Integration - Advanced git workflows and browsing
- LSP Configuration - Comprehensive language server setup
- Testing - Built-in test running and debugging
- Code Quality - Formatting, linting, and static analysis
- Documentation - Docsets integration and help systems
- CodeCompanion - Chat, inline code suggestions, and automated workflows
- Multiple Providers - OpenAI, Anthropic, Google Gemini, and more (optional)
- Semantic Code Search - Enhanced navigation and analysis
- Systems Programming: Rust, C, Zig, Hare, Odin
- Web Development: HTML/CSS, JavaScript, Tailwind CSS
- Backend: Python, Elixir, Ruby, Java, SQL
- Mobile: Swift, Dart (Flutter)
- Functional: Clojure, Standard ML
- Creative Coding: SonicPi (music programming)
- Emerging: Nim, Mojo, V, QBE IR, ISPC
- DevOps: Docker, CMake, Nix, Shell scripting
- Clean Interface - No line numbers, auto-hiding elements
- Focus Mode - Distraction-free coding environment
- Multiple Themes - Extensive colorscheme support with custom fixes
- Responsive UI - Adapts to your workflow needs
- Debugging - Full DAP integration with multiple language support
- Git Integration - Advanced git workflows and browsing
- LSP Configuration - Comprehensive language server setup
- Testing - Built-in test running and debugging
- Code Quality - Formatting, linting, and static analysis
- Documentation - Docsets integration and help systems
- Neovim 0.11+
- Git
- A Nerd Font (recommended)
- Node.js (for some language servers)
-
Backup your current config:
mv ~/.config/nvim ~/.config/nvim.bak mv ~/.local/share/nvim ~/.local/share/nvim.bak
-
Clone this configuration:
git clone https://github.com/igorgue/dotnvim ~/.config/nvim
-
Start Neovim:
nvim
-
Let plugins install automatically - LazyVim will bootstrap and install everything on first run.
~/.config/nvim/
├── init.lua # Entry point
├── lua/
│ ├── config/ # Core Neovim configuration
│ │ ├── autocmds.lua # Auto commands
│ │ ├── keymaps.lua # Key mappings
│ │ ├── lazy.lua # Plugin manager setup
│ │ ├── options.lua # Neovim options
│ │ └── cmds.lua # Custom commands
│ ├── plugins/ # Plugin configurations
│ │ ├── ai/ # AI-related plugins
│ │ │ ├── codecompanion.lua
│ │ │ ├── copilot.lua
│ │ │ └── ...
│ │ ├── extras/ # Optional features
│ │ │ ├── lang/ # Language-specific configs
│ │ │ ├── ai/ # Additional AI tools
│ │ │ └── ...
│ │ ├── coding.lua # Code editing enhancements
│ │ ├── colorscheme.lua # Theme configuration
│ │ ├── editor.lua # Editor functionality
│ │ ├── git.lua # Git integration
│ │ ├── lsp.lua # Language server setup
│ │ ├── treesitter.lua # Syntax highlighting
│ │ └── ui.lua # User interface
│ └── utils/ # Utility functions
├── snippets/ # Custom code snippets
├── ftplugin/ # Filetype-specific settings
└── assets/ # Documentation assets
This configuration is built on LazyVim, making it highly modular and customizable:
- Add Languages: Create files in
lua/plugins/extras/lang/
- Customize Keymaps: Edit
lua/config/keymaps.lua
- Add Plugins: Create new files in
lua/plugins/
- Theme Changes: Modify
lua/plugins/colorscheme.lua
- Enable/Disable AI Features: AI tools are optional and can be configured in
lua/plugins/extras/ai/
This config includes many LazyVim extras for enhanced functionality:
- DAP (Debug Adapter Protocol)
- Language support for 20+ languages
- Advanced editor features (Navic, Dial, Snacks Explorer)
- Code formatting and linting
This configuration embraces:
- Minimalist Aesthetics - Clean, focused interface
- Multi-Language Flexibility - One config for all your projects
- Modern Tooling - Latest Neovim features and plugins
- Developer Productivity - Reduce friction, increase flow
This is a personal configuration, but feel free to:
- Open issues for bugs or suggestions
- Fork and adapt to your needs
- Share improvements via pull requests
See LICENSE file for details.
Built with 👿 by @igorgue