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-lsp 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 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
Enables ChatGPT integration and quick commands
- Uses ChatGPT.nvim plugin
- Requires api key set as an environment variable called
$OPENAI_API_KEY
- Press
<leader>-C
for the list of quick commands or run:ChatGPT
to see all avaliable functions
Enables Copilot autocompletion
- Uses Copilot plugin
- Run
:Copilot auth
to authenticate
Automatically closes and renames HTML tags
- Uses Nvim-ts-autotag plugin
Great plugin for surrounding text with brackets, quotes, tags, etc
- Uses Nvim-surround plugin
- Default keybinds in visual mode changed from
S
tos
- See
:h nvim-surround
or:h nvim-surround.usage
for usage info
Plugin to get better at vim commands and improve coding speed
- Uses vim-be-good plugin
- Mapped to
<leader>gg