navigation
h,j,k,l
arrow keys (left, down, up, right)
0,^,$
start, start after whitespace or end of line
b,w
previous or next word
ge,e
previous or next end of word
gg,G
start or end of document
gd
definition of element under cursor
gr
refernces of the element under cursor
:{number}
goto line {number}
%
next matching ()[]{}
ctrl+o,ctrl+i
previous or next document location
gf
file under cursor
[f,]f,[F,]F
previous or next function start and end
[[,]]
previous or next reference of a variable
'{modifier}
put cursor in position given by <modifier> (see popup help screen)
{,}
move cursor one paragraph/code block up or down
window navigation
spaceww
switch to other window (useful if overlay blocks view)
ctrl+h,ctrl+l
left or right window (e.g. from file explorer to active tab)
shift+h,shift+l,[b,]b
left or right tab
spacebd,spacebD
close or force close current tab
spacebo
close other tabs
telescope
spaceff
find files
spacesw
fuzzy search for word
spacess
search for symbol
editing
:w
write file / save
d,dd
delete with modifier, delete whole line
A
append at end of line (useful for adding semicolons or commas)
J
join current and next line
o,O
insert new line below or above current line
.
redo last operation
spacecr
smart rename
g~
toggle case with modifier
gzrn{current}{new}
replace next {current} surround with {new} one (cursor has to be placed before first surround)
u,ctrl+r
undo or redo last changes in normal mode
search & replace
f{char}{label},F{char}{label}
in visible screen find {char} and jump to {label} forwards or backwards (provided by nvim-flit)
/{search_term}enter and n,N
search for {search_term} in whole document, next or previous search result
:{range}s/{search_term}/{replace}/{flags}
search for {search_term} and replace with {replace} in {range} (% for whole document or range (#,#) where . is current line and $ is end of document) with {flags} ((g)lobal,(a)ll,(c)onfirm)
macros
q{register}{sequence}q
record macro with {sequence} into {register}
@{register},@@
replay macro in {register} or repeat last
copy & paste
d,dd
delete and copy with modifier or whole line
c,cc
delete and copy with modifier or whole line and enter insert mode
y,yy
copy with modifier or whole line
p,P
paste on new line below or above
insert mode
alt+k,alt+j
move line up and down
ctrl+a
insert previously inserted text
ctrl+u
delete everything left of cursor
ctrl+w
delete word left of cursor
visual mode
v
start visual mode without selection
ctrl+space
start visual mode with smart selection
backspace
exit visual mode (cursor returns to beginning of selection)
esc
exit visual mode (cursor stays at current position)
va{modifier}
select everything between <modifier> including the {modifier} (valid modifiers: ",',`,b,B,<,[,w,s,p,t)
vi{modifier}
select everything between <modifier> without the {modifier} (valid modifiers: ",',`,b,B,<,[,w,s,p,t)
nvim & lazyvim
:q,:qa
close current or all files :width: ,(if last or all files are closed nvim exits)
spacel
open lazy package manager
spacecm
open mason language manager
spacee
open file explorer