Skip to content

davic64/nvim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Configuration

My modern, fast, and beautiful Neovim configuration built with Lua and lazy.nvim. Features a transparent UI, LazyVim-inspired dashboard, and comprehensive LSP support.

✨ Features

  • 🎨 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
██████╗  █████╗ ██╗   ██╗██╗ ██████╗ ██████╗ ██╗  ██╗
██╔══██╗██╔══██╗██║   ██║██║██╔════╝██╔════╝ ██║  ██║
██║  ██║███████║██║   ██║██║██║     ███████╗ ███████║
██║  ██║██╔══██║╚██╗ ██╔╝██║██║     ██╔═══██╗╚════██║
██████╔╝██║  ██║ ╚████╔╝ ██║╚██████╗╚██████╔╝     ██║
╚═════╝ ╚═╝  ╚═╝  ╚═══╝  ╚═╝ ╚═════╝ ╚═════╝      ╚═╝

🛠️ Installation

Prerequisites

  • 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)

Quick Install

# 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

First Launch

On first startup:

  1. Lazy.nvim will automatically install all plugins
  2. Mason will prompt to install language servers
  3. Restart Neovim after installation completes

⌨️ Key Bindings

Leader Key: Space

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

File Operations

Key Description
<leader>ff Find files
<leader>fs Find text
<leader>fr Recent files
<leader>fc Find word under cursor

Buffer Management

Key Description
<S-h> Previous buffer
<S-l> Next buffer
<leader>bd Delete buffer
<leader>bp Pick buffer
<leader>bc Pick buffer to close

Window Management

Key Description
<leader>sv Split vertically
<leader>sh Split horizontally
<leader>se Equal window sizes
<leader>sx Close current split

Tab Management

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

Quick Actions

Key Description
<leader>qq Close all
<leader>qw Save changes
<leader>nh Clear search highlights

LSP Features

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

🔧 Configuration Structure

~/.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
        └── ...

🎨 Customization

Changing Colorscheme

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,
}

Adding New Plugins

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,
}

Modifying Key Bindings

Edit lua/davic/core/keymaps.lua:

local keymap = vim.keymap

-- Add your custom keymaps
keymap.set("n", "<leader>xx", ":YourCommand<CR>", { desc = "Description" })

🚀 Included Plugins

UI & Appearance

File Management

LSP & Completion

Development Tools

Editing Enhancement


Star this repo if you find it useful!

About

My modern, fast, and beautiful Neovim configuration built with Lua and lazy.nvim.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages