Skip to main content

⌨️ Keymaps

FtVim comes with a comprehensive set of keymaps designed for efficient editing. The leader key is <Space> by default.

tip

Press <leader> (Space) and wait to see all available keymaps via which-key.

General

KeymapDescription
<C-s>Save file
<Esc>Clear search highlight
jkExit insert mode (alternative to Esc)

Window Navigation

KeymapDescription
<C-h>Go to left window
<C-j>Go to lower window
<C-k>Go to upper window
<C-l>Go to right window

Window Resize

KeymapDescription
<C-Up>Increase window height
<C-Down>Decrease window height
<C-Left>Decrease window width
<C-Right>Increase window width

Move Lines

KeymapModeDescription
<A-j>Normal/Insert/VisualMove line(s) down
<A-k>Normal/Insert/VisualMove line(s) up

Indenting

KeymapModeDescription
<VisualIndent left (stays in visual mode)
>VisualIndent right (stays in visual mode)

Find (Leader + f)

All find commands use snacks.nvim picker.

KeymapDescription
<leader>ffFind files
<leader>frRecent files
<leader>fbFind buffers
<leader>fsFind string (grep)
<leader>fcFind string under cursor
<leader>fhFind help tags
<leader>fkFind keymaps
<leader>fCFind commands
<leader>fHFind highlights
<leader>fMFind man pages
<leader>fRFind registers
<leader>flResume last search
<leader>fnNew file

Picker Navigation

When the picker is open:

KeymapDescription
<C-j> / <C-n>Next item
<C-k> / <C-p>Previous item
<CR>Confirm selection
<Esc>Close picker

Buffers (Leader + b)

KeymapDescription
<S-h>Previous buffer
<S-l>Next buffer
<leader>bbPrevious buffer
<leader>bnNext buffer
<leader>bdClose buffer
<leader>bDForce close buffer
<leader>bfFind buffer
<leader>bjJump to buffer (pick)
<leader>bePick buffer to close
<leader>bhClose buffers to the left
<leader>blClose buffers to the right
<leader>bWSave without formatting
<leader>bDSort buffers by directory
<leader>bLSort buffers by language

Code / LSP (Leader + c)

KeymapDescription
gdGo to definition
grGo to references
gIGo to implementation
gyGo to type definition
gDGo to declaration
KHover documentation
gKSignature help
<C-k> (insert)Signature help
<leader>caCode action
<leader>crRename symbol
<leader>cdGo to definition
<leader>ciGo to implementation
<leader>ctGo to type definition
<leader>csSignature help
<leader>cvHover
<leader>cxRename
<leader>chToggle inlay hints

Git (Leader + g)

KeymapDescription
<leader>gbGit branches
<leader>gcGit commits
<leader>gCGit buffer commits
<leader>goGit status
]hNext hunk
[hPrevious hunk
<leader>ghsStage hunk
<leader>ghrReset hunk
<leader>ghSStage buffer
<leader>ghuUndo stage hunk
<leader>ghRReset buffer
<leader>ghpPreview hunk
<leader>ghbBlame line
<leader>ghBBlame buffer
<leader>ghdDiff this
<leader>ghDDiff this ~

Windows (Leader + w)

KeymapDescription
<leader>wdClose window
<leader>wwNew window
<leader>wshSplit horizontal
<leader>wsvSplit vertical

Tabs (Leader + Tab)

KeymapDescription
<leader><tab><tab>New tab
<leader><tab>dClose tab
<leader><tab>]Next tab
<leader><tab>[Previous tab
<leader><tab>lLast tab
<leader><tab>fFirst tab
<leader><tab>oClose other tabs

Terminal

KeymapDescription
<C-\>Toggle terminal
<leader>tfFloat terminal
<leader>thHorizontal terminal
<leader>tvVertical terminal

In terminal mode, use <C-h/j/k/l> to navigate to other windows.

Explorer

KeymapDescription
<leader>eToggle file explorer (Neo-tree)

In Neo-tree:

KeymapDescription
lOpen file/expand folder
hClose folder
<Space>None (disabled to preserve leader)

Diagnostics (Leader + x)

KeymapDescription
<leader>xdToggle diagnostics on/off
<leader>xlLocation list
<leader>xqQuickfix list
[qPrevious quickfix item
]qNext quickfix item

Plugins (Leader + p)

KeymapDescription
<leader>lOpen Lazy (plugin manager)
<leader>plOpen Lazy
<leader>piInstall plugins
<leader>puUpdate plugins
<leader>psSync plugins
<leader>pSClear unused plugins

Other

KeymapDescription
<leader>;Dashboard
<leader>/Comment line
<leader>/ (visual)Comment selection
<leader>qqQuit
<leader>KKeywordprg
gcoAdd comment below
gcOAdd comment above
]]Next reference
[[Previous reference

FtVim (Leader + F)

KeymapDescription
<leader>FkView all keymaps

With 42 Extra Enabled

KeymapDescription
<leader>FhInsert 42 header
<leader>FfFormat C code (42 norm)
<leader>FcCount lines (42)

Treesitter (Leader + T)

KeymapDescription
<leader>TiTreesitter info

Mason (Leader + c + m)

KeymapDescription
<leader>cmmOpen Mason