My neovim configuration. Plain vim is not supported.
- neovim >= 0.11
gitand a C compiler (treesitter parsers are compiled locally)node(the language servers installed by mason are node based)
git clone git@github.com:jdeniau/.vim.git ~/.vim
cd ~/.vim/
sh install.shinstall.sh symlinks the repo to ~/.config/nvim and lets lazy.nvim
bootstrap itself. Treesitter parsers and language servers install on first
start; :Lazy, :Mason and :checkhealth will tell you where things stand.
The PHP language server runs in free mode unless a licence key is present. Drop the key (the same one as the VSCode extension) into:
~/.config/intelephense/licence.txt
It is read at startup and deliberately kept outside this repository.
Formatting is handled by conform.nvim on save, linting by nvim-lint (PHP) and
by the eslint / ts_ls language servers (JS/TS). Both prefer a project-local
binary — vendor/bin/php-cs-fixer, node_modules/.bin/prettier — and fall
back to whatever is on $PATH. Nothing is installed globally on your behalf.
Leader is ,. Everything below LSP is a neovim 0.11 default except gd.
| Key | Action |
|---|---|
<C-p> |
Find files |
,a |
Grep in project |
,b |
Buffers |
,d |
Diagnostics |
,s |
Document symbols |
| Key | Action |
|---|---|
gd |
Go to definition |
K |
Hover |
grn |
Rename |
gra |
Code action (adds missing PHP use statements) |
grr |
References |
gri |
Implementation |
grt |
Type definition |
gO |
Document symbols |
<C-s> |
Signature help (insert mode) |
<A-j> / <A-k> |
Next / previous error |
| Key | Action |
|---|---|
]c / [c |
Next / previous hunk |
,hp |
Preview hunk |
,hb |
Blame line |
| Key | Action |
|---|---|
<F7> |
Toggle undo tree |
,F |
Format buffer |
,n |
Toggle search highlight |
,f |
Toggle left columns (numbers, fold column, git signs) |
<F1> |
Escape |
<Home> |
First non-blank character |
<S-Insert> |
Paste (middle click) |
<C-h> / <C-l> |
Left / right, in insert mode |
<M-h> |
Escape, in insert mode |
| Key | Action |
|---|---|
<C-l> / <C-h> |
Next / previous tab |
<C-j> / <C-k> |
Move tab right / left |
<C-A-l> / <C-A-h> |
Move tab right / left |
:t, :Tabe |
Abbreviations for :tabe |
:TabCloseRight |
Close every tab to the right |
:wro writes the current file through sudo tee, for the times you opened a
root-owned file as yourself.
init.lua leader, lazy.nvim bootstrap
lua/config/ options, autocmds, keymaps, user commands
lua/plugins/ one spec file per concern
lazy-lock.json pinned plugin revisions
Since August 2026, this repository does not handle vim anymore, but only neovim. If you want support for vim, you need to use the vim-compat branch.