Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vim

Neovim config. Uses lazy.nvim for plugin management — lazy-lock.json pins exact versions for reproducible installs across machines.

Plugins

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 bindings

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

Setup

macOS / Linux

git clone git@github.com:kristux/vim.git ~/git/vim
ln -s ~/git/vim ~/.config/nvim

Open nvim — lazy.nvim bootstraps itself, then installs all plugins and LSP servers automatically. Quit and reopen once after the initial install.

Windows

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\vim

Create 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 ~/.vim symlink used on macOS/Linux is not needed on Windows — Neovim does not look there on that platform.

Compiler note

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 clang is on PATH
  • MSYS2: install, then pacman -S mingw-w64-x86_64-gcc and add C:\msys64\mingw64\bin to PATH

Adding plugins

Add a spec to lua/plugins.lua, then run :Lazy install inside Neovim. Commit the updated lazy-lock.json to pin the version.

Updating plugins

: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.

About

My vim settings

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages