A modern, feature-rich Neovim configuration built on LazyVim with support for multiple programming languages, elegant UI enhancements, and powerful development tools. Tuned for Neovide, smooth scrolling, Discord Rich Presence, AI-assisted workflows, and rich Treesitter-powered syntax highlighting.
- LazyVim Foundation: Built on the excellent LazyVim starter template with intelligent lazy-loading
- Multi-Language Support: First-class support for Python, Go, Java, TypeScript, and Web development
- Neovide Ready: Fully optimized for Neovide GUI with smooth cursor animations, transparency, padding, and fullscreen controls
- Beautiful UI: Modern colorschemes with Rosepine Moon as the default, plus Gruvbox and Tokyodark variants
- Smooth Scrolling: neoscroll.nvim for animated scrolling and comfortable navigation
- Dashboard & Clean Indent View: Snacks dashboard enabled, with indent guides from indent-blankline and mini.indentscope disabled for a cleaner look
- Discord Rich Presence: presence.nvim integration with handy keymaps to toggle status
- AI Assistance: GitHub Copilot completions and Copilot Chat with rich prompts and keybindings
- Powerful Tools: Integrated development utilities including Docker support, Linux tools, and more
- Smart Completion: Blink completion engine for lightning-fast code completion
- File Navigation: NeoTree file explorer with floating and sidebar modes
- Fuzzy Finding: Telescope for files, live grep, and symbol navigation
- Relative Line Numbers: Hybrid line numbers for efficient navigation
- Professional Keybindings: Carefully curated keyboard shortcuts for optimal workflow
Below are a few more looks at the setup in action.
Focused editing view with LSP, Telescope, smooth scrolling
Dev workflow view with NeoTree, terminal splits, and Copilot integration.
- Neovim: v0.9.0 or later
- Node.js: For LSP and code completion
- Python: For Python language support and general tools
- Git: For plugin management with lazy.nvim
- A Nerd Font: For icons and visual elements (recommended: JetBrains Mono or Fantasque Sans Mono)
- Docker: For Docker plugin and container development
- Language Servers: Automatically installed for supported languages
Ensure you have Neovim 0.9.0+ installed:
nvim --versionInstall a Nerd Font. Popular choices:
Replace your existing Neovim config:
# Backup your current config if needed
mv ~/.config/nvim ~/.config/nvim.backup
# Clone this configuration
git clone <your-repo-url> ~/.config/nvimnvimLazy.nvim will automatically:
- Download and install all plugins
- Install language servers and tools
- Set up the development environment
The first startup may take 2-3 minutes as plugins are downloaded and compiled.
.config/nvim/
โโโ init.lua # Main entry point with Neovide config
โโโ lazy-lock.json # Plugin version lock file
โโโ lazyvim.json # LazyVim configuration metadata
โโโ stylua.toml # Lua code formatting configuration
โ
โโโ lua/
โโโ config/ # Core configuration
โ โโโ autocmds.lua # Autocommands and event handlers
โ โโโ keymaps.lua # Custom keybindings
โ โโโ lazy.lua # Plugin manager setup
โ โโโ options.lua # Editor settings and preferences
โ
โโโ plugins/ # Plugin specifications and configs
โโโ colorschemes.lua # Color theme configurations
โโโ copilot-chat.lua # GitHub Copilot + CopilotChat integration
โโโ docker.lua # Docker integration
โโโ example.lua # Example plugin setup
โโโ go.lua # Go language support
โโโ java.lua # Java language support
โโโ linux-tools.lua # Linux development tools
โโโ mini.lua # mini.nvim core plugin
โโโ neo-tree.lua # File explorer configuration
โโโ neoscroll.lua # Smooth scrolling
โโโ presence.lua # Discord Rich Presence
โโโ python.lua # Python language support
โโโ telescope.lua # Fuzzy finder configuration
โโโ theme.lua # UI theme customization
โโโ treesitter.lua # Treesitter + context and highlighting
โโโ typescript.lua # TypeScript/JavaScript support
โโโ ui.lua # UI tweaks, dashboard, and indent settings
โโโ web.lua # Web development tools
โโโ config/ # Core configuration
โ โโโ autocmds.lua # Autocommands and event handlers
โ โโโ keymaps.lua # Custom keybindings
โ โโโ lazy.lua # Plugin manager setup
โ โโโ options.lua # Editor settings and preferences
โ
โโโ plugins/ # Plugin specifications and configs
โโโ colorschemes.lua # Color theme configurations (with clear header)
โโโ copilot-chat.lua # GitHub Copilot + CopilotChat integration
โโโ docker.lua # Docker integration
โโโ example.lua # Example plugin setup
โโโ go.lua # Go language support (with clear header)
โโโ java.lua # Java language support (with clear header)
โโโ linux-tools.lua # Linux development tools
โโโ mini.lua # mini.nvim core plugin
โโโ neo-tree.lua # File explorer configuration
โโโ neoscroll.lua # Smooth scrolling
โโโ presence.lua # Discord Rich Presence
โโโ python.lua # Python language support (with clear header)
โโโ telescope.lua # Fuzzy finder configuration
โโโ theme.lua # UI theme customization
โโโ treesitter.lua # Treesitter + context and highlighting
โโโ typescript.lua # TypeScript/JavaScript support (with clear header)
โโโ ui.lua # UI tweaks, dashboard, and indent settings
โโโ web.lua # Web development tools (with clear header)
| Binding | Action |
|---|---|
<Space> |
Leader key |
<Tab> |
Next buffer |
<S-Tab> |
Previous buffer |
<C-x> |
Close current buffer |
<leader>X |
Force close buffer (discard changes) |
<leader>bo |
Close other buffers |
| Binding | Action |
|---|---|
<leader><Tab> |
Toggle NeoTree (sidebar left) |
<leader>e |
Toggle NeoTree (floating) |
<leader>ff |
Find files in current directory |
<leader>fp |
Find plugin files |
| Binding | Action |
|---|---|
<leader>wx |
Close current window |
For more keybindings, see keymaps.lua and the LazyVim documentation.
Edit lua/plugins/colorschemes.lua:
-- Default colorscheme: Rosepine Moon
return {
{
"rose-pine/neovim",
name = "rose-pine",
priority = 1000,
lazy = false,
config = function()
require("rose-pine").setup({
variant = "moon",
styles = { transparency = true },
disable_background = true,
disable_float_background = true,
})
vim.cmd("colorscheme rose-pine-moon")
end,
},
}Other available themes: Gruvbox (with dark hard and light soft variants) and Tokyodark.
Edit lua/config/options.lua to customize:
- Font and font size
- Tab width and indentation
- Line number display
- Scroll behavior
- Mouse and clipboard settings
Add new keybindings to lua/config/keymaps.lua:
local map = vim.keymap.set
map("n", "<leader>custom", "<cmd>echo 'Custom binding'<cr>", { desc = "Custom action" })Edit init.lua to customize Neovide-specific settings:
- Cursor animation styles
- Opacity and transparency
- Scroll animations
- Window blur effects
- Refresh rate settings
- LSP: Pyright
- Formatting: Black
- Linting: Ruff
- Configuration: lua/plugins/python.lua
- LSP: gopls
- Formatting: gofmt
- Testing tools integrated
- Configuration: lua/plugins/go.lua
- LSP: Eclipse JDT
- Build tools: Maven, Gradle support
- Configuration: lua/plugins/java.lua
- LSP: TypeScript-language-server
- Formatting: Prettier
- Framework support: React, Vue, Angular
- Configuration: lua/plugins/typescript.lua
- HTML, CSS, SCSS support
- Emmet abbreviations
- Live reload capabilities
- Configuration: lua/plugins/web.lua
This config includes Docker integration for containerized development workflows:
# Docker commands and container management available within Neovim
# See lua/plugins/docker.lua for configuration detailsLanguage-specific plugin configurations are organized as single files in lua/plugins/ for each language (not in subfolders), with clear headers for maintainability:
- Python: lua/plugins/python.lua โ LSP (Pyright), formatting (Black), linting (Ruff), DAP, testing, and virtualenv support
- Go: lua/plugins/go.lua โ LSP (gopls), formatting, testing, debugging, and keymaps
- Java: lua/plugins/java.lua โ LSP (Eclipse JDT), DAP, Maven/Gradle, Treesitter
- TypeScript/JavaScript: lua/plugins/typescript.lua โ LSP, formatting (Prettier), ESLint, framework support
- Web: lua/plugins/web.lua โ HTML, CSS, SCSS, Tailwind, Emmet, colorizer, and related tools
Enhanced Linux development experience with integrated tools for system programming and scripting.
Configuration: lua/plugins/linux-tools.lua
This config uses lazy.nvim for plugin management.
:Lazy " Open lazy.nvim UI
:Lazy sync " Sync all plugins
:Lazy update " Update all plugins
:Lazy install " Install missing plugins
:checkhealth " Check plugin healthThe configuration is optimized for performance with:
- Smart lazy-loading of plugins
- Disabled unnecessary rtp plugins
- Configurable checker for plugin updates
- Efficient plugin defaults
This configuration includes copilot.lua and copilot-chat.nvim for AI-powered code assistance.
- Open Copilot Chat:
<leader>ccq(quick chat) - Toggle Chat Panel:
<leader>cct - Code Actions: Copilot suggestions available in insert mode
See lua/plugins/copilot.lua for configuration.
:Lazy sync
:checkhealthLSPs are auto-installed for recognized file types. Manually trigger installation:
:Mason " Open Mason UIEnsure you have installed a Nerd Font and configured it in your terminal or Neovide settings.
Update font in lua/config/options.lua:
vim.o.guifont = "YourFont Nerd Font:h14"Check loaded plugins:
:Lazy profileFeel free to customize this configuration to match your workflow. Some ideas:
- Add language-specific plugins
- Create custom keybindings
- Integrate additional LSPs
- Add snippets and abbreviations
- Modify color schemes and themes
This Neovim configuration is provided as-is. Refer to individual plugin licenses for details.
Happy coding! ๐
For questions or issues, please check the LazyVim documentation or the respective plugin repositories.


