My modern, fast, and beautiful Neovim configuration built with Lua and lazy.nvim. Features a transparent UI, LazyVim-inspired dashboard, and comprehensive LSP support.
- 🎨 Beautiful UI - Catppuccin colorscheme with transparent backgrounds
- 📁 File Explorer - Neo-tree with comprehensive git integration
- 🔍 Fuzzy Finder - Telescope for files, text search, and more
- 💡 LSP Support - Full language server protocol with Mason
- 🔧 Auto-completion - Smart completion with nvim-cmp
- 🎯 Code Actions - Formatting, linting, and diagnostics
- ⚡ Fast Startup - Optimized with lazy loading
- 🔥 Modern Features - Snacks.nvim for enhanced UI components
██████╗ █████╗ ██╗ ██╗██╗ ██████╗ ██████╗ ██╗ ██╗
██╔══██╗██╔══██╗██║ ██║██║██╔════╝██╔════╝ ██║ ██║
██║ ██║███████║██║ ██║██║██║ ███████╗ ███████║
██║ ██║██╔══██║╚██╗ ██╔╝██║██║ ██╔═══██╗╚════██║
██████╔╝██║ ██║ ╚████╔╝ ██║╚██████╗╚██████╔╝ ██║
╚═════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝
- Neovim 0.9+ - Latest stable version recommended
- Git - For plugin management
- Node.js - For LSP servers and tools
- Ripgrep - For fast text searching
- fd - For fast file finding (optional but recommended)
# Backup existing config (if any)
mv ~/.config/nvim ~/.config/nvim.backup
# Clone this configuration
git clone git@github.com:davic64/nvim-config.git ~/.config/nvim
# Start Neovim (plugins will install automatically)
nvim
On first startup:
- Lazy.nvim will automatically install all plugins
- Mason will prompt to install language servers
- Restart Neovim after installation completes
Key | Mode | Description |
---|---|---|
jk |
Insert | Exit insert mode |
<leader>ee |
Normal | Toggle file explorer |
<leader>ef |
Normal | Focus file explorer |
<leader>er |
Normal | Refresh file explorer |
Key | Description |
---|---|
<leader>ff |
Find files |
<leader>fs |
Find text |
<leader>fr |
Recent files |
<leader>fc |
Find word under cursor |
Key | Description |
---|---|
<S-h> |
Previous buffer |
<S-l> |
Next buffer |
<leader>bd |
Delete buffer |
<leader>bp |
Pick buffer |
<leader>bc |
Pick buffer to close |
Key | Description |
---|---|
<leader>sv |
Split vertically |
<leader>sh |
Split horizontally |
<leader>se |
Equal window sizes |
<leader>sx |
Close current split |
Key | Description |
---|---|
<leader>to |
Open new tab |
<leader>tx |
Close current tab |
<leader>tn |
Go to next tab |
<leader>tp |
Go to previous tab |
<leader>tf |
Open current buffer in new tab |
Key | Description |
---|---|
<leader>qq |
Close all |
<leader>qw |
Save changes |
<leader>nh |
Clear search highlights |
Key | Description |
---|---|
gd |
Go to definition |
gD |
Go to declaration |
gi |
Go to implementation |
gr |
Show references |
K |
Hover documentation |
<leader>ca |
Code actions |
<leader>rn |
Rename symbol |
~/.config/nvim/
├── init.lua # Entry point
├── lazy-lock.json # Plugin version lock
└── lua/davic/
├── core/
│ ├── init.lua # Core module loader
│ ├── options.lua # Vim settings
│ └── keymaps.lua # Key bindings
├── lazy.lua # Plugin manager setup
└── plugins/ # Plugin configurations
├── init.lua # Plugin registry
├── colorscheme.lua # Catppuccin theme
├── lspconfig.lua # LSP configuration
├── telescope.lua # Fuzzy finder
├── neo-tree.lua # File explorer
├── dashboard.lua # Start screen
└── ...
Edit lua/davic/plugins/colorscheme.lua
:
return {
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
config = function()
require("catppuccin").setup({
flavour = "mocha", -- Change to: latte, frappe, macchiato, mocha
transparent_background = true,
})
vim.cmd([[colorscheme catppuccin]])
end,
}
Simple plugins in lua/davic/plugins/init.lua
:
{
"author/plugin-name",
event = "VeryLazy", -- Optional lazy loading
}
Complex plugins - create new file in lua/davic/plugins/
:
-- lua/davic/plugins/new-plugin.lua
return {
"author/plugin-name",
dependencies = { "other/plugin" },
config = function()
require("plugin-name").setup({
-- configuration options
})
end,
}
Edit lua/davic/core/keymaps.lua
:
local keymap = vim.keymap
-- Add your custom keymaps
keymap.set("n", "<leader>xx", ":YourCommand<CR>", { desc = "Description" })
- catppuccin - Beautiful colorscheme
- lualine.nvim - Status line
- bufferline.nvim - Buffer tabs
- noice.nvim - Enhanced UI
- snacks.nvim - Modern UI components
- which-key.nvim - Keybinding help popup
- neo-tree.nvim - File explorer
- telescope.nvim - Fuzzy finder
- telescope-fzf-native.nvim - FZF sorter for Telescope
- telescope-ui-select.nvim - Enhanced UI select
- harpoon - Quick file navigation
- mason.nvim - LSP installer
- nvim-lspconfig - LSP configuration
- nvim-cmp - Auto-completion
- luasnip - Snippet engine
- conform.nvim - Code formatting
- nvim-lint - Linting support
- none-ls.nvim - Additional LSP features
- neoconf.nvim - Project configuration
- neodev.nvim - Neovim Lua development
- nvim-treesitter - Advanced syntax highlighting
- gitsigns.nvim - Git integration
- mini.diff - Git diff indicators
- trouble.nvim - Diagnostics
- todo-comments.nvim - TODO highlights
- illuminate.nvim - Highlight word under cursor
- mini.pairs - Auto pairs
- mini.surround - Surround text
- flash.nvim - Enhanced motions
- vim-tmux-navigator - Tmux integration
⭐ Star this repo if you find it useful!