A comprehensive Neovim configuration for jaehong21
powered by lazy.nvim
package manager, featuring modern LSP integration, extensive plugin ecosystem,
and multi-language development support.
This configuration uses lazy.nvim, a modern plugin manager for Neovim that provides:
- Lazy Loading: Plugins are loaded only when needed, improving startup time
- Automatic Installation: Missing plugins are automatically installed on first run
- Lockfile Support:
lazy-lock.json
ensures reproducible plugin versions - Performance Monitoring: Built-in profiling to track plugin load times
- Simple Configuration: Each plugin is configured in its own file under
- Configuration Merging:
opts
tables are automatically merged when importing specs, enabling modular configuration of tools like conform.nvim and nvim-lint across multiple fileslua/plugins/
- Dependency Management: Automatic handling of plugin dependencies
~/.config/nvim/
βββ init.lua # Entry point
βββ lazy-lock.json # Plugin version lockfile
βββ stylua.toml # Lua formatting configuration
βββ lua/
βββ config/ # Core configuration
β βββ init.lua # Main config loader
β βββ keymaps.lua # Key mappings
β βββ options.lua # Vim options
βββ lsp/ # Language Server configurations
β βββ bash.lua
β βββ dockerfile.lua
β βββ go.lua
β βββ java.lua
β βββ json.lua
β βββ lua.lua
β βββ makefile.lua
β βββ markdown.lua
β βββ nix.lua
β βββ python.lua
β βββ rust.lua
β βββ terraform.lua
β βββ web.lua
β βββ yaml.lua
βββ plugins/ # Plugin configurations
βββ aerial.lua # Code outline viewer
βββ autopairs.lua # Auto bracket pairing
βββ barbar.lua # Buffer tabline
βββ blink-cmp.lua # Completion engine
βββ colorscheme.lua # Theme configuration
βββ comment.lua # Smart commenting
βββ conform.lua # Code formatting
βββ copilot.lua # AI code assistance
βββ dashboard.lua # Start screen
βββ explorer.lua # File explorer
βββ gitsigns.lua # Git integrations
βββ harpoon.lua # Quick file navigation
βββ highlight-colors.lua # Highlight color
βββ indent.lua # Indentation guides
βββ lualine.lua # Status line
βββ markdown-preview.lua # Markdown preview
βββ noice.lua # UI enhancements
βββ nvim-lint.lua # Linting
βββ nvim-lspconfig.lua # LSP client config
βββ nvim-treesitter.lua # Syntax highlighting
βββ nvim-ufo.lua # Code folding
βββ oil.lua # File manager
βββ picker.lua # Fuzzy finder
βββ snacks.lua # Utilities
βββ todo-comments.lua # TODO highlighting
βββ trouble.lua # Diagnostics viewer
βββ wakatime.lua # Time tracking
- Native Vim LSP: Uses
vim.lsp
for language server integration - LSP installed manually: Language servers are installed from nixpkgs manually
- Multi-language Support: Dedicated configurations for 15+ languages
- Auto-completion: Powered by blink-cmp for fast, intelligent completions
- Diagnostics: Real-time error detection and inline hints
- Code Actions: Quick fixes and refactoring suggestions
- Go - Full LSP support with gopls
- Python - Enhanced with pylsp/pyright
- Rust - Comprehensive rust-analyzer integration
- JavaScript/TypeScript - Modern web development tools
- Java - Enterprise development support
- Lua - Neovim configuration development
- Bash/Shell - Script development tools
- Docker - Dockerfile support
- Terraform - Infrastructure as code
- Nix - Package management
- Markdown - Documentation writing
- JSON/YAML - Configuration files
- Makefile - Build automation
- Code Formatting: Conform.nvim with format-on-save
- Linting: nvim-lint for additional code quality checks
- Git Integration: Built-in git commands and UI
- File Management: Multiple file explorers (snacks explorer, oil)
- Fuzzy Finding: Fast file and content search
- Debugging: Multi-language debug support
- AI Assistance: GitHub Copilot integration
- Modern UI: Enhanced with noice.nvim and snacks.nvim
- Status Line: Informative lualine configuration
- Buffer Management: Barbar for tab-like buffer navigation
- Code Outline: Aerial for symbol navigation
- Folding: UFO for improved code folding
- Indentation: Visual guides for code structure
-
Backup existing configuration (if any):
mv ~/.config/nvim ~/.config/nvim.bak
-
Clone this configuration:
git clone <your-repo-url> ~/.config/nvim
-
Start Neovim:
nvim
-
Wait for installation: lazy.nvim will automatically install all plugins on first run
- Fast Startup: Lazy loading ensures quick Neovim startup times
- Consistent Formatting: Stylua and conform.nvim maintain code quality
- Productive Workflow: Carefully chosen keymaps and integrations
- Extensible: Modular plugin structure for easy customization
- Modern Tooling: Latest Neovim features and plugin ecosystem
- Multi-language: Comprehensive support for diverse development needs
This configuration aims to provide a comfortable and productive development environment with modern tooling and extensive language support, all managed efficiently through lazy.nvim's powerful plugin management system.