Neovim Configuration based on kickstart.nvim
- Nerd Font
- Git
- GCC
- Make
- Python (optional, to use LSP)
- Ripgrep (optional, to search with telescope)
- Node.js (optional, to use Prettier)
- fd (optioanl, to use venv_selector)
- llvm and MSVC (optional, C++ in windows)
# 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
nvim
lua/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}/all
to update Parsers:TSInstallInfo
to 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
xclip
on Linux with X11. But installwin32yank
and uninstallxlibp
for WSL. - If
nvim-treesitter
output 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_command
andvenv_command
inlua/plugins/config/venv_selector.lua
- Debugging C/C++ in Windows with codelldb need a program compiled using
clang
with--target=x86_64-pc-windows-gnu
- To use
fish
in Windows, setbash_path
and auto startfish
every time enteringbash
- To use plugins that depend on
curl
within MSYS bash, you need to use mingw curl. A solution is setMSYSTEM
toMINGW64
in/etc/msystem
and/etc/fish/msystem.fish