Neovim config. Uses lazy.nvim for plugin management — lazy-lock.json pins exact versions for reproducible installs across machines.
| Plugin | Purpose |
|---|---|
| tokyonight.nvim | Colorscheme |
| nvim-treesitter | Syntax highlighting and indentation |
| telescope.nvim | Fuzzy finding (files, grep, buffers) |
| mason.nvim | LSP server installer |
| mason-lspconfig.nvim | Bridges Mason with Neovim's built-in LSP |
| nvim-lspconfig | LSP server defaults for Neovim |
| nvim-cmp | Completion engine |
| pyright | Python navigation, types, and hover |
| ruff | Python linting, formatting, and code actions |
| clangd | C/C++ language server |
| Key | Action |
|---|---|
,ff |
Find files |
,fF |
Find files via Telescope |
,fR |
Refresh Perforce file cache |
,fg |
Live grep (find in files) |
,fw |
Grep word or visual selection |
,fb |
Buffers |
,fr |
Recent files |
gd |
Go to definition |
gD |
Go to declaration |
gr |
References |
gi |
Go to implementation |
gy |
Go to type definition |
K |
Hover docs |
,rn |
Rename symbol |
,ca |
Code action |
,f |
Format buffer |
,ds |
Document symbols |
,ws |
Workspace symbols |
,ci / ,co |
Incoming/outgoing calls |
[d / ]d |
Previous/next diagnostic |
,e |
Show diagnostic float |
,s |
Reload config |
git clone git@github.com:kristux/vim.git ~/git/vim
ln -s ~/git/vim ~/.config/nvimOpen nvim — lazy.nvim bootstraps itself, then installs all plugins and LSP servers automatically. Quit and reopen once after the initial install.
Neovim on Windows reads config from %LOCALAPPDATA%\nvim\ (e.g. C:\Users\you\AppData\Local\nvim\).
Prerequisites: Neovim, Git for Windows, and a C compiler for Treesitter (either LLVM/clang or MSYS2 with mingw-w64-x86_64-gcc).
Clone the repo:
git clone git@github.com:kristux/vim.git $env:USERPROFILE\git\vimCreate a junction (no admin rights required) pointing Neovim at the repo:
New-Item -ItemType Junction -Path "$env:LOCALAPPDATA\nvim" -Target "$env:USERPROFILE\git\vim"Open nvim — same as macOS, lazy.nvim installs everything. Quit and reopen once after the initial install.
Note: the
~/.vimsymlink used on macOS/Linux is not needed on Windows — Neovim does not look there on that platform.
nvim-treesitter compiles parsers from C source. On Windows this requires a compiler on PATH. The easiest options:
- LLVM: install from releases.llvm.org and ensure
clangis onPATH - MSYS2: install, then
pacman -S mingw-w64-x86_64-gccand addC:\msys64\mingw64\bintoPATH
Add a spec to lua/plugins.lua, then run :Lazy install inside Neovim. Commit the updated lazy-lock.json to pin the version.
:Lazy update
Commit the updated lazy-lock.json afterwards. On other machines, run :Lazy restore to sync to the locked versions rather than pulling latest.