The perfect blazingly fast Neovim configuration for myself, combining the aesthetics of NvChad with the LSP, formatter and lint configurations from LazyVim.
# optionally uninstall previous nvim config
$ rm -rf ~/.cache/nvim
$ rm -rf ~/.local/share/nvim
$ rm -rf ~/.local/state/nvim
# installation
$ git clone [email protected]:wochap/nvim.git ~/.config/nvim
$ nvim
# wait for lazy.nvim to finish and restart nvim
# enter nvim and repeat once more
IMPORTANT: I disabled nvim builtin syntax which caused severe lag on my system, re enable it commenting out the line lua/custom/init.lua:6
. Alternatively, you can install the Treesitter parser for the specified language or enable syntax for that specified filetype in the current buffer with :set syntax=<filetype>
.
IMPORTANT: I have disabled Treesitter highlighting for minified files and files with long lines. Refer to the is_minfile
function in lua/custom/utils/init.lua
for details.
-
Lag
Try disabling
statuscol.nvim
plugin or use a better fast terminal like foot -
Anything Eslint related
Run in nvim
:w :e
If that didn't work, kill all eslint processes
-
Python LSP/Linters installed by Mason stopped working
Uninstall them and install them again
Any requirement from Mason, conform.nvim, nvim-lint and nvim-dap dependencies
Mason will install nvim-lspconfig lsp servers
- neovim v0.10.0
- neovim-remote
- foot (recommended)
- tree-sitter
- ripgrep (required by telescope)
- fd (required by telescope)
- deno (required by peek)
- nixfmt (required by conform.nvim)
- statix (required by nvim-lint)
- ts-node (required by nvim-dap)
- typescript (required by nvim-lspconfig)
- marksman (required by nvim-lspconfig)
- Learn https://github.com/folke/lazy.nvim, then remove all lazy.nvim plugin specs that you are not going to use in
lua/custom/plugins/*
. For example, if you don't code zig, removelang-zig.lua
. If you don't use Kitty, removelua/custom/plugins/kitty.lua
. - Keymaps are located in
lua/custom/keymaps.lua
(global),lua/custom/plugins/lsp/keymaps.lua
(active when an LSP server is running), and within each plugin spec. - If you need autoformatting on save, create an autocmd that calls
conform.nvim
. - Formatting, linting, and LSP config are the same as in Lazyvim, so feel free to import extras from Lazyvim, and add LSP servers in the same manner you did in Lazyvim.
- If you use a different theme than catppuccino, replace the plugin spec in
lua/custom/plugins/colorscheme/init.lua
. Also, update the configurations for lualine, bufferline, and lazy.nvim.
Lastly read all lua files 😅, starting from lua/custom/init.lua