My custom configuration for NeoVim uses NvChad as the base and includes some additional plugins to enhance its core functionality.
The purpose of this configuration is to retain the default NvChad settings while adding extra features and language support specific to my personal stack.
The configuration can be used as is and does not require any additional
setup or setup or settings. Some Mason packages aren't avaliable on certain ARM
processors and Android (Termux). Check mason.lua
file for more info on how to get those.
- Install NeoVim
- Install and initialize NvChad v2.0 by running the following command:
git clone -b v2.0 --single-branch https://github.com/NvChad/NvChad.git ~/.config/nvim && nvim
- Run the following commands to delete pregenerated config files and install this config:
rm -rf ~/.config/nvim/lua/custom git clone https://github.com/v3ceban/nvchad-config.git ~/.config/nvim/lua/custom
- ??????
- PROFIT
- Uses vscode-langservers for LSP and linting
- Uses prettier for formatting
- Uses emmet for LSP snippets
- Uses vscode-langservers for LSP and linting
- Uses prettier for formatting
- Uses tailwindcss-language-server for Tailwind LSP
- Uses rustywind for Tailwind classes organization
- Uses typescript-language-server for LSP
- Uses eslint_d for linting
- Uses prettier for formatting
- Requires eslint config to run linting server
- Run
npm init
if not already done - Run
npm init @eslint/config@latest
in the root of the project
- Run
- Uses prisma-language-server for LSP in Prisma files
- Uses intelephense as LSP and linter
- Uses php-cs-fixer for formatting
- Requires .git file to run linting server
- To create .git run
git init
in the root of the project
- Uses lua-language-server for LSP and linting
- Uses stylua for formatting
- Uncomment Mason overrides to install the packages that don't work on ARM
- Uses bash-language-server for LSP
- Uses clangd for LSP and linting
- Uses clang-format for formatting
- Requires clang:
sudo dnf install clang
- Uncomment Mason overrides to install the packages that don't work on ARM
- Uses python-lsp-server for linting
- Uses black for formatting
- Uses gopls for LSP and linting
- Uses gofumpt, goimports-reviser, and golines for formatting
- Uses solargraph for LSP and linting
- 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
- Uses Dockerfile Language Server for LSP
Enables Copilot integration and quick commands
- Uses the Copilot plugin for autocompletion
- Uses the CopilotChat.nvim plugin for chat functionality
- Run
:Copilot auth
to authenticate with GitHub - Press
<M-l>
in insert mode to accept Copilot autocompletion suggestions - Press
<leader>-C
in normal or visual mode to see avaliable Copilot Chat commands
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.
Automatically closes and renames HTML tags
- Uses Nvim-ts-autotag plugin
Great plugin for surrounding text with brackets, quotes, and tags
- Uses Nvim-surround plugin
- Default keybinds in visual mode changed from
S
tos
- See
:h nvim-surround
for usage info
Plugin to resolve git conflicts
- Uses git-conflict plugin
- Mapped to
<leader>cX
, whereX
is the conflict resolution option - See
:h git-conflict
for usage info
Plugin to get better at vim
- Uses vim-be-good plugin
- Mapped to
<leader>gg