Convert Figma logo to code with AI

NvChad logoNvChad

Blazing fast Neovim config providing solid defaults and a beautiful UI, enhancing your neovim experience.

24,257
2,109
24,257
0

Top Related Projects

16,437

Neovim config for the lazy

18,030

🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.

12,504

AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins

20,224

A modular Vim/Neovim configuration

13,952

💤 A modern plugin manager for Neovim

A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies, written in Lua, allows for expressive config

Quick Overview

NvChad is a Neovim configuration framework that aims to provide a fast, beautiful, and feature-rich development environment. It offers a pre-configured setup with carefully selected plugins and optimizations, making it easy for users to get started with a powerful Neovim setup without spending hours on configuration.

Pros

  • Easy to install and set up, providing a ready-to-use Neovim configuration
  • Highly customizable with a modular structure and easy-to-modify configuration files
  • Optimized for performance, with fast startup times and efficient plugin management
  • Aesthetically pleasing with a modern UI and customizable themes

Cons

  • May have a learning curve for users new to Neovim or advanced configurations
  • Some users might find the default configuration too opinionated or feature-rich
  • Occasional compatibility issues with certain plugins or system configurations
  • Regular updates may require manual intervention to keep the setup current

Getting Started

To install NvChad, follow these steps:

  1. Ensure you have Neovim 0.9.0 or later installed.
  2. Back up your existing Neovim configuration:
    mv ~/.config/nvim ~/.config/nvim.bak
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
    
  3. Clone the NvChad repository:
    git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1
    
  4. Run Neovim and let it install plugins:
    nvim
    

After installation, you can customize NvChad by modifying the files in ~/.config/nvim/lua/custom/. Refer to the official documentation for more detailed instructions on customization and usage.

Competitor Comparisons

16,437

Neovim config for the lazy

Pros of LazyVim

  • More modular and customizable structure
  • Extensive documentation and user guides
  • Active community with frequent updates and contributions

Cons of LazyVim

  • Steeper learning curve for beginners
  • May require more configuration to achieve desired setup

Code Comparison

LazyVim:

-- LazyVim configuration example
require("lazy").setup({
  spec = {
    { "LazyVim/LazyVim", import = "lazyvim.plugins" },
    { import = "plugins" },
  },
  defaults = { lazy = true },
  install = { colorscheme = { "tokyonight", "habamax" } },
})

NvChad:

-- NvChad configuration example
local custom_init_path = vim.api.nvim_get_runtime_file("lua/custom/init.lua", false)[1]

if custom_init_path then
  dofile(custom_init_path)
end

require("core.utils").load_mappings()

Both LazyVim and NvChad are popular Neovim configurations that aim to enhance the user experience. LazyVim offers a more modular approach with extensive documentation, making it highly customizable but potentially more complex for beginners. NvChad, on the other hand, provides a more streamlined setup that may be easier for newcomers to adopt. The code examples demonstrate the different approaches to configuration and plugin management in each project.

18,030

🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.

Pros of LunarVim

  • More extensive built-in language support and LSP configurations
  • Includes a wider range of pre-configured plugins out of the box
  • Offers a more opinionated setup, which can be beneficial for beginners

Cons of LunarVim

  • Heavier and potentially slower startup time due to more pre-configured features
  • Less minimalistic approach, which may not appeal to users who prefer a leaner setup
  • Steeper learning curve for customization due to its more complex structure

Code Comparison

LunarVim configuration example:

lvim.builtin.alpha.active = true
lvim.builtin.alpha.mode = "dashboard"
lvim.builtin.terminal.active = true
lvim.builtin.nvimtree.setup.view.side = "left"
lvim.builtin.nvimtree.setup.renderer.icons.show.git = false

NvChad configuration example:

local M = {}
M.ui = {
  theme = "onedark",
  transparency = false,
}
M.plugins = {
  user = require "custom.plugins"
}
return M

Both NvChad and LunarVim offer pre-configured Neovim setups, but LunarVim provides a more feature-rich experience out of the box, while NvChad focuses on a minimalistic and fast configuration. LunarVim may be better suited for users who want a comprehensive setup with minimal initial configuration, while NvChad appeals to those who prefer a lighter base to build upon.

12,504

AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins

Pros of AstroNvim

  • More extensive plugin ecosystem with a wider range of pre-configured options
  • Built-in project management and session handling capabilities
  • Advanced diagnostics and debugging features out of the box

Cons of AstroNvim

  • Steeper learning curve due to more complex configuration options
  • Potentially slower startup time due to the larger number of pre-installed plugins
  • May require more system resources compared to NvChad

Code Comparison

AstroNvim configuration example:

return {
  colorscheme = "astrodark",
  lsp = {
    formatting = {
      format_on_save = true,
      timeout_ms = 1000,
    },
  },
}

NvChad configuration example:

local M = {}
M.ui = {
  theme = "onedark",
}
M.plugins = {
  "nvim-treesitter",
  "nvim-lspconfig",
}
return M

Both NvChad and AstroNvim offer powerful Neovim configurations, but they cater to slightly different user preferences. NvChad focuses on simplicity and speed, while AstroNvim provides a more feature-rich environment with additional built-in functionalities. The choice between the two depends on individual needs and the desired level of customization.

20,224

A modular Vim/Neovim configuration

Pros of SpaceVim

  • More extensive plugin ecosystem and layer system for easy configuration
  • Better support for multiple programming languages out of the box
  • Includes a built-in package manager (dein.vim)

Cons of SpaceVim

  • Steeper learning curve due to its complexity
  • Slower startup time compared to NvChad
  • Less focus on modern Neovim features and APIs

Code Comparison

SpaceVim configuration example:

let g:spacevim_enable_debug = 1
let g:spacevim_realtime_leader_guide = 1
call SpaceVim#layers#load('lang#python')
call SpaceVim#layers#load('lang#javascript')
let g:spacevim_custom_plugins = [
    \ ['junegunn/fzf'],
    \ ['junegunn/fzf.vim'],
    \ ]

NvChad configuration example:

local plugins = {
  {
    "nvim-treesitter/nvim-treesitter",
    opts = {
      ensure_installed = { "lua", "javascript", "python" },
    },
  },
  { "nvim-telescope/telescope.nvim", dependencies = { "nvim-lua/plenary.nvim" } },
}
return plugins

SpaceVim uses Vim script for configuration, while NvChad leverages Lua for a more modern and potentially faster setup. NvChad's configuration is generally more concise and focuses on Neovim-specific features.

13,952

💤 A modern plugin manager for Neovim

Pros of lazy.nvim

  • Highly modular and customizable plugin management system
  • Faster startup times due to lazy-loading capabilities
  • Extensive documentation and active community support

Cons of lazy.nvim

  • Steeper learning curve for beginners compared to NvChad's pre-configured setup
  • Requires more manual configuration to achieve a full-featured environment

Code Comparison

lazy.nvim configuration example:

require("lazy").setup({
  "folke/which-key.nvim",
  { "folke/neoconf.nvim", cmd = "Neoconf" },
  "folke/neodev.nvim",
})

NvChad configuration example:

local plugins = {
  ["nvim-treesitter/nvim-treesitter"] = {},
  ["williamboman/mason.nvim"] = {},
  ["neovim/nvim-lspconfig"] = {}
}

While both NvChad and lazy.nvim offer powerful Neovim configurations, they cater to different user preferences. NvChad provides a more opinionated, pre-configured setup that's easier for beginners to get started with, while lazy.nvim offers greater flexibility and control over plugin management and loading. The choice between the two depends on the user's experience level and desired level of customization.

A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies, written in Lua, allows for expressive config

Pros of packer.nvim

  • Lightweight and focused solely on plugin management
  • Offers fine-grained control over plugin loading and configuration
  • Supports lazy-loading and conditional loading of plugins

Cons of packer.nvim

  • Requires more manual setup and configuration compared to NvChad
  • Steeper learning curve for beginners
  • Lacks pre-configured settings and optimizations found in NvChad

Code Comparison

NvChad configuration example:

local plugins = {
  ["nvim-treesitter/nvim-treesitter"] = {},
  ["neovim/nvim-lspconfig"] = {},
  ["hrsh7th/nvim-cmp"] = {},
}

packer.nvim configuration example:

use {
  'nvim-treesitter/nvim-treesitter',
  'neovim/nvim-lspconfig',
  'hrsh7th/nvim-cmp',
}

NvChad is a comprehensive Neovim configuration that provides a pre-configured setup with various plugins and optimizations. It offers a more user-friendly experience out of the box, especially for beginners. On the other hand, packer.nvim is a plugin manager that focuses solely on managing and loading plugins efficiently. It provides more flexibility and control over plugin configuration but requires more manual setup and knowledge from the user.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

NvChad

Home • Install • Contribute • Support • Features

Neovim Minimum Version GitHub Issues Discord Matrix Telegram

Showcase

What is it?

  • NvChad is a neovim config written in lua aiming to provide a base configuration with very beautiful UI and blazing fast startuptime (around 0.02 secs ~ 0.07 secs). We tweak UI plugins such as telescope, nvim-tree etc well to provide an aesthetic UI experience.

  • Lazy loading is done 93% of the time meaning that plugins will not be loaded by default, they will be loaded only when required also at specific commands, events etc. This lowers the startuptime and it was like 0.07~ secs tested on an old pentium machine 1.4ghz + 4gb ram & HDD.

  • NvChad is supposed to be used with its starter config, so nvchad main repo ( this repo ) can be imported as a plugin via lazy's import feature and then you can easily use this repo's modules like autocmds etc.

Theme Showcase

Images (Click to expand!)

4 themes radium 1 radium 2 radium 3

(Note: these are just 4-5 themes, NvChad has around 56 themes)

UI related plugins used

Images (Click to expand!)

Nvim-tree.lua

Fast file tree:

Telescope-nvim

A fuzzy file finder, picker, sorter, previewer and much more:

Our own statusline written from scratch

NvChad UI

Tabufline (our own pertab bufferline)

  • Here's a video that showcases it.

NvCheatsheet ( our UI Plugin )

Plugins list

History

  • I (@siduck i.e creator of NvChad) in my initial days of learning to program wanted a lightweight IDE for writing code, I had a very low end system which was like 1.4ghz pentium + 4gb ram & HDD. I was into web dev stuff so many suggested me to use vscode but that thing was very heavy on my system, It took more ram than my browser! ( minimal ungoogled chromium ) so I never tried it again, sublime text was nice but the fear of using proprietary software XD for a linux user bugged me a lot. Then I tried doom-emacs which looked pretty but it was slow and I was lost within its docs, I tried lunarvim but too lazy to read the docs. Doom-emacs and lunarvim inspired me to make a config which is the prettiest + very fast and simple.

  • I'm decent at ricing i.e customizing system and making it look pretty so I posted my neovim rice on neovim subreddit, my neovim-dotfiles github repo blew up and then I had to come up with a name, I was amazed by the chad meme lol so I put NvChad as the name, the chad word in here doesnt literally mean the chad guy but in the sense such as chad linux vs windows i.e meaning superior, best etc. NvChad was made for my personal use but it gained some popularity which inspired me to make a public config i.e config usable by many and less hassle to update as everyone's going to use the same base config (NvChad) with their custom modifications (which are gitignored so that wont mess up), without the custom config stuff users would have to keep a track of every commit and copy paste git diffs to manually update nvchad.

:gift_heart: Support

If you like NvChad and would like to support & appreciate it via donation then I'll gladly accept it.

kofi paypal buymeacoffee patreon

Credits

  • Elianiva helped me with NeoVim Lua related issues many times, helped me in my initial neovim journey!
  • @lorvethe for making the beautiful NvChad logo.