Skip to content

v3ceban/nvchad-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NvChad-Config

My custom configuration for NeoVim uses NvChad as the base and includes some additional plugins to enhance its core functionality.

This config transforms NeoVim into a full-fledged IDE with LSP support, linting, formatting, autocompletion, AI-powered code suggestions, and more. It also includes some quality of life improvements and additional features to make coding more enjoyable.

The configuration can be used as is and doesn't require any further setup.

Note

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

Important

This configuration is now on version 2.5 and requires a fresh install to work properly. The old configuration can be accessed on "v2.0" branch. It will not be maintained or updated any longer.

Installation

  1. Install NeoVim

  2. Install NvChad v2.5 dependencies (Git, Nerd Font, GCC, Make, Ripgrep)

  3. Run the following commands to delete or move out of the way any old config files:

     # Backup if you want to keep the old config
     mv ~/.config/nvim{,.bak}
     mv ~/.local/share/nvim{,.bak}
     mv ~/.local/state/nvim{,.bak}
    
     # Delete if you don't want to keep the old config
     rm -rf ~/.config/nvim
     rm -rf ~/.local/state/nvim
     rm -rf ~/.local/share/nvim
  4. Clone this repository into ~/.config/nvim:

     # Clone this repo
     git clone https://github.com/v3ceban/nvchad-config.git ~/.config/nvim
  5. ??????

  6. PROFIT

Currently Supported Languages

HTML

CSS

JavaScript/TypeScript

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

Extra Plugins/Features (not included in NvChad)

Abolish.vim

Plugin that helps with abbreviations and substitutions.

  • Uses Abolish.vim plugin
  • Mapped to <leader>sr to search and replace words or selections with substitutions
    • :Subvert/child{,ren}/adult{,s}/g turns child into adult and children into adults
    • :Subvert/di{e,ce}/spinner{,s}/g turns die into spinner and dice into spinners
    • If no {} is provided, the plugin works the same as :s
  • Can do much more, see :h abolish for usage info

Avante

This is still work in progress, and Avante can be disabled by commenting the corresponding lines in plugins.lua. As plugin matures it can potentially replace CopilotChat and, possibly, Copilot itself. To use with anything other than Copilot, API keys need to be set in environment variables (e.g. OPENAI_API_KEY="your key").

Copilot

Enables Copilot integration and quick commands

  • Uses the Copilot plugin for autocompletion
  • Run :Copilot auth to authenticate with GitHub
  • Press <M-l> in insert mode to accept Copilot autocompletion suggestions
  • Press <M-j> or <M-k> in insert mode to cycle through suggestions
  • Uses the CopilotChat.nvim plugin for chat and some extra functionality
    • <leader>cc to open chat
      • <leader>h in chat window to show help
    • <leader>cr to run a command
    • <leader>cs to search with perplexity
    • <leader>ce to edit selected code

Flash.nvim

Navigation with search labels and treesitter

  • Uses the Flash.nvim plugin
  • Enabled in search mode by default
  • Treesitter nodes mapped to <leader>st

Git-conflict

Plugin that helps resolve git conflicts

  • Uses git-conflict plugin
  • Mapped to <leader>cX, where X is the conflict resolution option
  • See :h git-conflict for usage info

Nvim-surround

Great plugin for surrounding text with brackets, quotes, and html tags

  • Uses Nvim-surround plugin
  • Default keybinds in visual mode changed from S to s
  • See :h nvim-surround for usage info

Nvim-ts-autotag

Automatically closes and renames HTML tags

Sort Motion.vim

Adds a sorting functionality using text objects and motions

  • Uses Sort Motion.vim plugin
  • Provides gs motion to sort lines or text objects
    • gs in visual mode to sort selection
    • gsip in normal mode to sort paragraph
    • gsi{ to sort inside curly braces
    • etc...

Vim-matchquote

Extends the built-in % command to match quotes and brackets

  • Uses vim-matchquote plugin
  • Replaces the built-in % command
  • Just works

Useful Links

Conform.nvim formatters

LSPconfig builtins

None-ls builtins

Null-ls builtins

NvChad repository

Nvim-lint linters

About

Custom NeoVim config with LSP and Linters

Resources

Stars

Watchers

Forks

Languages