Neovim Configuration based on kickstart.nvim
- Nerd Font
- Git
- GCC
- Make
- unzip
- tree-sitter-cli (if use nvim-treesitter)
- Ripgrep (if use telescope)
- fzf (if use fzf-lua)
- Python (optional, to use LSP)
- Node.js (optional, to use Prettier)
- fd (optioanl, to use venv_selector and fzf-lua)
- llvm and MSVC (optional, C++ in windows)
- optional for fzf-lua: bat, delta
# Linux
git clone https://github.com/zhiim/nvim_config.git ~/.config/nvim
# Windows
git clone https://github.com/zhiim/nvim_config.git $ENV:USERPROFILE\AppData\Local\nvim
nvimlua/config/options.lua
lua/config/mapping.lua and keys in plugin configs.
Plugin system is built with lazy.nvim.
Add plugins by editing lua/plugins/init.lua. Or add a {plugin_name}.lua file in lua/plugins/configs and require it in lua/plugins/init.lua.
Open lazy.nvim panel with command :Lazy.
Built with nvim-treesitter.
Modify nvim-treesitter.opts.ensure_installed in lua/plugins/language/treesitter.lua.
Treesitter usage:
:TSUpdate {language}/allto update Parsers:TSInstallInfoto check installation information for different languagesTSUninstall <package_to_uninstall>to remove an installed package
Mason is used to management language support packages.
Add new packages by modifying vim.list_extend(ensure_installed, {}) in lua/plugins/configs/language/lspconfig.lua.
Open Mason panel by :Mason command.
Mason usage:
:Mason- opens a graphical status window:MasonUpdate- updates all managed registries:MasonInstall <package> ...- installs/re-installs the provided packages:MasonUninstall <package> ...- uninstalls the provided packages:MasonUninstallAll- uninstalls all packages:MasonLog- opens the mason.nvim log file in a new tab window
LSP configuration support is built with nvim-lspconfig.
Add LSP name to servers in lua/plugins/configs/language/lspconfig.lua (check server_configurations for support for specific LSP).
Formatter is built with conform.nvim.
Lintter is built with nvim-lint.
Trun on a formatter or linter by editing lua/plugins/configs/language/conform.lua for formatter and lua/plugins/configs/language/lint.lua for linter.
nvim-dap, nvim-dap-ui plugin have been added for debugging. Plugins for specific language debugging can be found in Debug Adapter installation.
- To share clipboard with system, install
xclipon Linux with X11. But installwin32yankand uninstallxclipfor WSL. - If
nvim-treesitteroutput errorInvalid node type at position x for language x, you can use:echo nvim_get_runtime_file('parser', v:true)to check whether more than one parser is used or not, than rename the nvim parser folder to another name to use treesitter parser only. - set venv searching path by modify
conda_commandandvenv_commandinlua/plugins/config/venv_selector.lua - Debugging C/C++ in Windows with codelldb need a program compiled using
clangwith--target=x86_64-pc-windows-gnu - To use
fishin Windows, setbash_pathand auto startfishevery time enteringbash - To use plugins that depend on
curlwithin MSYS bash, you need to use mingw curl. A solution is setMSYSTEMtoMINGW64in/etc/msystemand/etc/fish/msystem.fish