Skip to content
AD
Setup navigation
NEOVIMLUALEADER = SPACE

Neovim

A searchable reference for the current Lua configuration. Shortcuts here are derived from the repository rather than remembered manually.

Shortcuts

Search by action, category, mode or key. The leader key is rendered as Space.

General

4
F2

Save the current file

NORMALINSERT
F1m

Insert an MIT license header

NORMAL
F1a

Insert an Apache 2.0 license header

NORMAL
F1p

Insert a proprietary/private header

NORMAL

Navigation

6
CtrlLeft

Move to the previous word

NORMALINSERT
CtrlRight

Move to the next word

NORMALINSERT
Spaceff

Find files with Telescope

NORMAL
Spacefg

Live grep with Telescope

NORMAL
Spacefb

Browse open buffers with Telescope

NORMAL
Spacefh

Search Neovim help tags with Telescope

NORMAL

Editing

3
CtrlDelete

Delete forward by word

NORMALINSERT
CtrlBackspace

Delete the previous word

NORMALINSERT
Spacend

Generate documentation with Neogen

NORMAL

LSP

9
gd

Go to definition

NORMAL
gD

Go to declaration

NORMAL
gi

Go to implementation

NORMAL
gr

Show references

NORMAL
K

Show hover documentation using the custom hover renderer

NORMAL
Ctrlk

Show the current signature

NORMAL
Spacern

Rename the symbol under the cursor

NORMAL
Spaceca

Open LSP code actions

NORMALVISUAL
Spacef

Format through the attached LSP

NORMAL

Diagnostics

5
Spaces

Show diagnostics at the cursor in a focused floating window

NORMAL
[d

Jump to the previous diagnostic

NORMAL
]d

Jump to the next diagnostic

NORMAL
Spacee

Open the diagnostic floating window

NORMAL
Spaceq

Send diagnostics to the location list

NORMAL

Formatting

1
Spacefm

Format the current file with Conform

NORMAL

Git

19
]h

Jump to the next Git hunk

NORMAL
[h

Jump to the previous Git hunk

NORMAL
Spacehs

Stage the current Git hunk

NORMALVISUAL
Spacehr

Reset the current Git hunk

NORMALVISUAL
SpacehShift+S

Stage the current buffer

NORMAL
SpacehShift+R

Reset the current buffer

NORMAL
Spacehp

Preview the current hunk

NORMAL
Spacehd

Diff the current file

NORMAL
SpacehShift+D

Diff the current file against the last commit

NORMAL
Spacehb

Show blame for the current line

NORMAL
SpacehShift+B

Toggle current-line blame

NORMAL
ih

Select a Git hunk

VISUALOPERATOR
Spacegg

Open LazyGit

NORMAL
Spacegf

Open LazyGit for the current file

NORMAL
Spacegl

Open the LazyGit log filter

NORMAL
Spacegd

Open Diffview

NORMAL
Spacegh

Show file history in Diffview

NORMAL
SpacegShift+H

Show repository history in Diffview

NORMAL
Spacegx

Close Diffview

NORMAL

Surround

5
Spacea"

Wrap the current word or selection with double quotes

NORMALVISUAL
Spacea'

Wrap the current word or selection with single quotes

NORMALVISUAL
Spaceap

Wrap the current word or selection with parentheses

NORMALVISUAL
Spaceab

Wrap the current word or selection with brackets

NORMALVISUAL
SpaceaShift+B

Wrap the current word or selection with braces

NORMALVISUAL

Competitive programming

5
F5

Compile and run the current C++ file with sanitizers and timing

NORMAL
F6

Compile and run the current C++ file using input.txt when available

NORMAL
F7

Build the current C++ file only

NORMAL
F8

Open input.txt in a vertical split

NORMAL
Spacect

Load the competitive-programming C++ template into an empty buffer

NORMAL

42 / Norminette

4
F1f

Insert or update the 42 standard header

NORMAL
Spacen

Save the file and trigger the Norminette-on-write workflow when enabled

NORMAL
Spacent

Toggle Norminette diagnostics for the current buffer

NORMAL
Spacecp

Save and run checkp against Python files in a terminal split

NORMAL

Terminal

1
Ctrlq

Leave terminal mode and return to normal mode

TERMINAL

Rust

3
Spacerr

Show Rust runnables

NORMAL
Spacere

Expand the Rust macro under the cursor

NORMAL
Spacerc

Open Cargo.toml through rustaceanvim

NORMAL

Completion

10
Ctrlk

Select the previous completion item

INSERT
Ctrlj

Select the next completion item

INSERT
Ctrlb

Scroll completion documentation up

INSERT
Ctrlf

Scroll completion documentation down

INSERT
CtrlSpace

Open completion

INSERT
Ctrle

Abort completion

INSERT
Enter

Confirm the selected completion item without auto-selecting one

INSERT
Tab

Select the next completion item or expand/jump a snippet

INSERTSELECT
Shift+Tab

Select the previous completion item or jump backward in a snippet

INSERTSELECT
Ctrlx

Debug the rendered completion documentation buffer

INSERT

Configuration features

The parts of the current configuration that materially change the editing workflow.

LSP and tooling

Mason manages basedpyright, clangd, lua_ls, ruff and yamlls, with clang-format, prettierd, rust-analyzer and stylua installed as tools. Neovim 0.11 uses the native vim.lsp.config/vim.lsp.enable flow.

Completion

nvim-cmp combines LSP, LuaSnip, filesystem paths and buffer completion. It uses bordered completion/docs windows, ghost text and custom Doxygen documentation rendering.

Formatting

Conform handles Ruff for Python, Prettierd for web/JSON/YAML/Markdown, clang-format for C/C++, rustfmt for Rust and stylua for Lua. Prettier-oriented filetypes also format on save.

Treesitter

Treesitter highlighting is enabled for Bash, C, C++, Doxygen, JSON, JavaScript, Lua, Markdown, Python, Rust, TSX, TypeScript, Vim and YAML, including the Docker Compose YAML filetype.

Persistent undo

Undo history is persisted under Neovim's state directory, so undo survives editor restarts.

C/C++ documentation

clangd hover is rendered through a custom cleaner and completion documentation converts Doxygen commands into more readable Markdown sections.

42 / Norminette

C and header files under a /42/ path enable Norminette automatically. Saving runs the checker and publishes errors through Neovim diagnostics. Per-buffer toggle commands are available.

Git workflow

Gitsigns provides hunk navigation and staging, LazyGit provides a full Git UI, and Diffview covers file/repository history and diffs.

Rust

rustaceanvim integrates rust-analyzer with Clippy checks, all Cargo features, inlay hints and dedicated runnables/macro/Cargo actions.

Docker Compose YAML

Compose files get a dedicated Neovim path instead of being treated as generic YAML.

01

Dedicated yaml.docker-compose filetype for compose.yml, compose.yaml, docker-compose.yml and common variants.

02

yamlls validation, completion and hover with an explicit Docker Compose schema from the Compose specification.

03

Prettierd formatting through Conform with two-space indentation.

04

Treesitter YAML highlighting registered for the Docker Compose filetype.

05

Neovim diagnostics from the YAML language server.

Configuration source