Skip to content

carlospr-dev/nvim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Configuration

A modern, feature-rich Neovim configuration built on NvChad v2.5 with carefully selected plugins for an enhanced development experience.

✨ Features

  • 🎨 Beautiful UI: Catppuccin theme with customized statusline and dashboard
  • 🤖 AI Integration: Avante.nvim for AI-powered coding assistance
  • 🔍 Smart Navigation: Flash.nvim for quick movement, enhanced Telescope fuzzy finding
  • 🔧 Development Tools: Complete LSP setup, linting, formatting, and auto-completion
  • 📝 Enhanced Editing: Surround operations, sort motions, and advanced text manipulation
  • 🌳 Git Integration: Conflict resolution and status indicators
  • 📚 Markdown Support: Live rendering and enhanced editing capabilities

Note

Some Mason packages aren't available on certain ARM processors. Watch for errors and install manually if needed.

Important

This configuration requires NvChad v2.5. For older versions, check the v2.0 branch (no longer maintained).

🚀 Installation

Prerequisites

  • Neovim >= 0.9.0
  • Git
  • A Nerd Font (for icons)
  • GCC or equivalent C compiler
  • Make
  • Ripgrep (for Telescope live grep)

Setup Steps

  1. Backup existing configuration (if any):

    # Backup approach (recommended)
    mv ~/.config/nvim{,.bak}
    mv ~/.local/share/nvim{,.bak}
    mv ~/.local/state/nvim{,.bak}
    
    # Or delete completely
    rm -rf ~/.config/nvim ~/.local/state/nvim ~/.local/share/nvim
  2. Clone this configuration:

    git clone https://github.com/v3ceban/nvchad-config.git ~/.config/nvim
  3. Launch Neovim:

    nvim

    Lazy.nvim will automatically install all plugins on first launch.

  4. Enjoy your enhanced Neovim experience! 🎉

🛠️ Configuration Structure

lua/
├── configs/           # Plugin configurations
│   ├── avante.lua    # AI assistant settings
│   ├── cmp.lua       # Completion configuration
│   ├── conform.lua   # Formatting settings
│   ├── lspconfig.lua # LSP server configurations
│   └── ...
├── chadrc.lua        # NvChad configuration
├── mappings.lua      # Custom keybindings
├── options.lua       # Neovim options
└── plugins.lua       # Plugin specifications

🎯 Key Bindings

The configuration uses <Space> as the leader key. All bindings are discoverable through Which-key.

Quick Access

  • <Space>e - Toggle file explorer (NvimTree)
  • <Space>ff - Find files
  • <Space>fw - Find word (live grep)
  • <Space>fo - Recent files
  • <Space>th - Theme selector

AI Features (Avante)

  • <M-a> - Toggle AI chat window
  • <leader>am - Change AI provider/model
  • <leader>ae - Edit selection with AI
  • <leader>ah - View chat history

Navigation & Movement

  • s + motion - Flash jump to location
  • <leader>st - Treesitter node selection
  • % - Enhanced bracket/quote matching

Text Manipulation

  • cs - Change surrounding
  • ds - Delete surrounding
  • ys - Add surrounding
  • gs - Sort motion/selection

🌐 Language Support

HTML

CSS

JavaScript/TypeScript

JSON

  • Uses json-lsp for LSP in JSON files
  • Uses fixjson for formatting JSON files

PHP

  • Uses intelephense for LSP and linting
  • Uses php-cs-fixer for formatting
  • Requires a git repo to run linting server
    • To create .git run git init in the root of the project

Lua

Bash

C/C++

Python

Go

Markdown

  • Uses Render Markdown for inline markdown rendering
  • Uses markdowny.nvim for some markdown features in Visual mode
    • <C-k> to add a link
    • <C-b> to make text bold
    • <C-i> to make text italic
    • <C-e> to make text inline code or code block in V-Line mode

Docker

🔌 Key Plugins & Features

Core Framework

AI & Productivity

Advanced search and replace with smart substitutions.

  • <leader>sr - Search and replace with pattern matching
  • :Subvert/child{,ren}/adult{,s}/g - Smart pluralization handling
  • Works with abbreviations and case coercion

AI-powered code editing with multiple provider support.

Supported Providers:

  • Copilot (Claude 3.5 Sonnet - default)
  • OpenAI, Deepseek, Groq, Ollama
  • Web search via Tavily

Key Features:

  • Code generation and editing
  • File operations and web search
  • Clean chat interface
  • Context-aware suggestions

Development Tools

Navigation & UI

Text Editing & Manipulation

Git & Version Control

Markdown & Documentation

🎨 Customization

Theme

Modify the theme in lua/chadrc.lua:

M.base46 = {
  theme = "catppuccin", -- Change to your preferred theme
}

Adding Plugins

Add new plugins to lua/plugins.lua:

{
  "author/plugin-name",
  event = "VeryLazy",
  config = function()
    -- Plugin configuration
  end,
}

Custom Keybindings

Add mappings in lua/mappings.lua:

map("n", "<leader>xx", "<cmd>YourCommand<CR>", { desc = "Description" })

🔧 Troubleshooting

Common Issues

  • Plugins not loading: Run :Lazy sync to update plugins
  • LSP not working: Check :LspInfo for server status
  • Icons missing: Install a Nerd Font and configure your terminal
  • Mason packages failing: Some packages aren't available on ARM - install manually

Getting Help

  • :help <plugin-name> - Plugin documentation
  • :checkhealth - System health check
  • :Lazy - Plugin manager interface
  • :Mason - LSP server manager

📚 Useful Resources

🤝 Contributing

Contributions are welcome! Please feel free to submit issues and pull requests to improve this configuration.


Enjoy your enhanced Neovim experience!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages