Install requires Neovim 0.12+. Always review the code before installing a configuration.
Clone the repository and install the plugins:
git clone git@github.com:zen-zap/nvim_config ~/.config/zen-zap/nvim_configOpen Neovim with this config:
NVIM_APPNAME=zen-zap/nvim_config/ nvimThis configuration uses the folke/lazy.nvim plugin manager. Plugins are organized by purpose and set up in lua/plugins/init.lua; most are lazy‑loaded automatically.
AlexvZyl/nordic.nvim,rebelot/kanagawa.nvim,olivercederborg/poimandres.nvim,rose-pine/neovim,sainnhe/sonokai,sainnhe/everforest,folke/tokyonight.nvim- Additional themes are included for quick cycling (
catppuccin,bamboo.nvim,oldworld.nvim,miasma.nvim,embark,gruber-darker,mellifluous,monochrome,evergarden, etc.) - Use
<leader>csto cycle schemes or<leader>ctto pick with Telescope (see Keybindings below).
hrsh7th/nvim-cmpwith sources for LSP, buffers, and paths.- Uses native Neovim snippets (no
vsnip).
neovim/nvim-lspconfigwith helper plugins likej-hui/fidget.nvim(progress UI) and built‑in support for ESLint, Ruff, and others.
nvim-treesitter/nvim-treesitter(configured to install Rust, RON, C/C++, Java, JSON5, Bash, Lua, Vimscript, Markdown, etc.).
akinsho/bufferline.nvim(buffer tabs)nvim-lualine/lualine.nvim(statusline, theme-aware)folke/noice.nvim(improved command line and LSP documentation)karb94/neoscroll.nvim(smooth scrolling)RRethy/vim-illuminate(highlight word under cursor)windwp/nvim-autopairs(auto‑closing brackets/quotes)folke/which-key.nvim(leader‑key cheat sheet)nvim-telescope/telescope.nvim&nvim-lua/plenary.nvim(fuzzy finder)
nvim-tree/nvim-tree.lua(file tree with git highlighting)nvim-tree/nvim-web-devicons(file icons)echasnovski/mini.nvim(mini.iconsfor icon-provider compatibility)
lukas-reineke/indent-blankline.nvim(indent guides)leap.nvimfrom Codeberg (https://codeberg.org/andyg/leap.nvim)andymass/vim-matchup(improved%matching)
lewis6991/gitsigns.nvim(git decorations & hunk actions)
nvim-neotest/nvim-nio(test runner integration)j-hui/fidget.nvim(LSP progress)nvim-lua/plenary.nvim,MunifTanjim/nui.nvim(utilities used by other plugins)
Many of the color/theme plugins and extras are loaded lazily; you can inspect or add your own by editing lua/plugins/init.lua.
Leader key is set to <Space> throughout the configuration (see lua/config/keymaps.lua).
- File navigation:
<leader>ffind files,<leader>glive grep,<leader>bopen buffers,<leader>?help tags. - LSP:
<leader>ssearch workspace symbols,<leader>rnrename,gdgo to definition,Khover,[d/]dnavigate diagnostics. - Colorschemes:
<leader>cscycle,<leader>ctchoose with Telescope. - Window management:
<leader>-/|to split,<leader>h/j/k/lmove between splits,<leader>wdclose,<leader>twtoggle auto‑wrap. - Buffers:
L/Hcycle next/prev buffer (bufferline integration). - File tree:
<leader>tttoggle NvimTree. - Debugging (DAP):
<F5>continue,<F10>step over,<F11>step into,<F12>step out,<leader>dbtoggle breakpoint,<leader>dropen REPL,<leader>dutoggle UI. - Terminal:
<C-S-c>kills current terminal job. - Utils:
<C-s>save,<leader>qquit,<leader>Qquit all!,<leader><space>clear search,<leader>eselect inner word,<leader>mchange till underscore.
See the full list of mappings and helper comments in
lua/config/keymaps.lua.
Servers are started automatically if their executables are found on the system. The configuration includes sensible defaults, per‑language behaviors (inlay hints, format‑on‑save, etc.) and root detection logic.
Supported/recognized servers:
rust-analyzer– Rustjdtls– Javaclangd– C/C++/Objective‑C/ CUDAtypescript-language-server– JavaScript/TypeScript and Reactvscode-eslint-language-server– ESLint integration for JS/TS/Vue/Sveltepyright-langserver– Pythonruff– Python linting/formattinglua-language-server– Lua (configured for Neovim runtime)bash-language-server– shell scriptsyaml-language-server– YAML filesgopls– Go (with workspace module awareness)
You can extend or override these settings by editing
lua/config/lsp.lua.
- Requires Neovim 0.12+.
- Clone the repo:
git clone git@github.com:zen-zap/nvim_config ~/.config/zen-zap/nvim_config- Launch with custom appname so config directory is used:
NVIM_APPNAME=zen-zap/nvim_config/ nvim- External language servers (rust-analyzer, jdtls, clangd, etc.) must be installed and on your
$PATHfor LSP support to activate. - For Treesitter health checks and parser tooling, install
tree-sitter-cli(npm i -g tree-sitter-cli). - For C/C++ debugging with DAP, install
codelldb(e.g. via:MasonInstall codelldb). - This config is built on top of LazyVim; additional options are in
lua/config/options.luaand can be tweaked as needed.
Hope you have a good time with this. Configuration should work out of the box with minimal tweaks.