Skip to content

How to Use Neovim: Lazy Configuration & Plugin Guide

This guide focuses on Neovim-specific features, plugin usage, and configuration best practices. For basic Vim commands and navigation, please refer to the Vim Cheatsheet.

We have converted most of the key-bindings that are compatible with Neovim in the Vim Cheatsheet.

General Keybindings

Neovim Keybindings

Modes:

  • Normal (n)
  • Insert (i)
  • Visual (v)
  • Command (c)
  • Terminal (t)
A - Alt
C - Control
S - Shift
<leader> - Space (default)

In most modern editors like VS Code, a “tab” represents an open file. In Vim/Neovim, this concept is called a “buffer” - which is an in-memory representation of a file. When we refer to Buffer(Tab) in the keybindings below, we mean switching between open files, similar to switching tabs in other editors.

Quick Definitions:

  • Buffer: A buffer is the in-memory text of a file being edited. Multiple buffers can exist for different files.
  • Tab: In Vim, a tab is actually a collection of windows arranged in a specific layout. This is different from the “tabs” concept in modern editors.
KeyDescriptionMode
jDownn, v
<Down>Downn, v
kUpn, v
<Up>Upn, v
<C-h>Go to Left Windown
<C-j>Go to Lower Windown
<C-k>Go to Upper Windown
<C-l>Go to Right Windown
<C-Up>Increase Window Heightn
<C-Down>Decrease Window Heightn
<C-Left> (Mac: <C-A-Left>)Decrease Window Widthn
<C-Right> (Mac: <C-A-Right>)Increase Window Widthn
<A-k>Move Line Upn, i, v
<A-j>Move Line Downn, i, v
<S-h>Go to Prev Buffer (Tab)n
<S-l>Go to Next Buffer (Tab)n
[bGo to Prev Buffern
]bGo to Next Buffern
<leader>bbSwitch to Other Buffer (Tab)n
<leader>bdDelete Buffer (Close tab)n
<leader>boDelete Other Buffers (Close other tabs)n
<leader>bDDelete Buffer and Window (Close tab and window)n
<esc>Escape and Clear hlsearchi, n, s
<leader>urRedraw / Clear hlsearch / Diff Updaten
nNext Search Resultn, v, o
NPrev Search Resultn, v, o
<C-s>Save Filei, v, n, s
<leader>KKeywordprgn
gcoAdd Comment Belown
gcOAdd Comment Aboven
<leader>lLazyn
<leader>fnNew Filen
<leader>xlLocation Listn
<leader>xqQuickfix Listn
[qPrevious Quickfixn
]qNext Quickfixn
<leader>cfFormatn, v
<leader>cdLine Diagnosticsn
]dNext Diagnosticn
[dPrev Diagnosticn
]eNext Errorn
[ePrev Errorn
]wNext Warningn
[wPrev Warningn
<leader>ufToggle Auto Format (Global)n
<leader>uFToggle Auto Format (Buffer)n
<leader>usToggle Spellingn
<leader>uwToggle Wrapn
<leader>uLToggle Relative Numbern
<leader>udToggle Diagnosticsn
<leader>ulToggle Line Numbersn
<leader>ucToggle Conceal Leveln
<leader>uAToggle Tablinen
<leader>uTToggle Treesitter Highlightn
<leader>ubToggle Dark Backgroundn
<leader>uDToggle Dimmingn
<leader>uaToggle Animationsn
<leader>ugToggle Indent Guidesn
<leader>uSToggle Smooth Scrolln
<leader>dppToggle Profilern
<leader>dphToggle Profiler Highlightsn
<leader>uhToggle Inlay Hintsn
<leader>gbGit Blame Linen
<leader>gBGit Browse (open)n, v
<leader>gYGit Browse (copy)n, v
<leader>qqQuit Alln
<leader>uiInspect Posn
<leader>uIInspect Treen
<leader>LLazyVim Changelogn
<leader>fTTerminal (cwd)n
<leader>ftTerminal (Root Dir)n
<c-/>Terminal (Root Dir)n
<c-_>which_key_ignoren, t
<C-/>Hide Terminalt
<leader>-Split Window Belown
<leader>|Split Window Rightn
<leader>wdDelete Windown
<leader>wmToggle Zoom Moden
<leader>uZToggle Zoom Moden
<leader>uzToggle Zen Moden
<leader><tab>lLast Tabn
<leader><tab>oClose Other Tabsn
<leader><tab>fFirst Tabn
<leader><tab><tab>New Tabn
<leader><tab>]Next Tabn
<leader><tab>dClose Tabn
<leader><tab>[Previous Tabn