Skip to content

Key Reference

Every default key, by mode. Use your browser's search — or the search box above — to find one fast.

INFO

Keys marked kitty only require the kitty keyboard protocol, auto-detected at startup on supported terminals — see Terminal compatibility. Legacy terminal encodings cannot transmit those key combinations, so the bindings are unavailable there.

Normal mode

Movement

KeyAction
h / Move left one grapheme
l / Move right one grapheme
j / Move down one visual line
k / Move up one visual line
wSelect next word (plus one adjacent whitespace run by default — see word-selects-whitespace)
bSelect previous word (plus one adjacent whitespace run by default)
W / BWORD variants of w / b
HomeStart of line (idiomatic form is g h)
EndEnd of line (idiomatic form is g l)
{Up to the blank line above this paragraph
}Down to the start of the next paragraph
PageDown / PageUpScroll one viewport down / up
Ctrl+d / Ctrl+uScroll half a viewport down / up
Ctrl+oJump list back
Ctrl+iJump list forward
TabJump list forward (under kitty, Tab focuses the next pane instead)
Ctrl+h/j/k/l/w/bOne-shot extend of the corresponding motion (kitty only)

Character find

KeyAction
f + charFind char forward (inclusive)
F + charFind char backward (inclusive)
t + charFind char forward (exclusive — stops before)
T + charFind char backward (exclusive — stops after)
=Repeat last find forward
-Repeat last find backward

After f/F/t/T, HUME waits for the target character. Tab counts as a target character; a line ending never does, since these motions never leave the current line.

Selection

KeyAction
eToggle Extend mode
;Collapse to head, exit Extend
Ctrl+;Collapse to anchor, exit Extend (kitty only)
Ctrl+eSwap anchor and head
%Select entire buffer
xSelect current line (forward)
XSelect current line (backward)
Ctrl+xSame as x but always extends
Ctrl+XSame as X but always extends (kitty only)
SSplit multi-line selections on newlines
CCopy each selection to the line below
_Trim leading/trailing whitespace from each selection
,Keep only the primary selection
Ctrl+,Remove primary, promote next (kitty only)
( / )Cycle primary backward / forward
*Search the whole word under the cursor

Text objects (use the m prefix):

SequenceAction
m i w / m a wInner / around word
m i W / m a WInner / around WORD
m i ( / m a (Inner / around () (also ), [/], {/}, </>)
m i " / m a "Inner / around "…"
m i ' / m a 'Inner / around '…'
m i ` / m a `Inner / around `…`
m i a / m a aInner / around argument
m i l / m a lInner / around line
m i iSelect the text typed during the last insert
m mSelect the word under the cursor (plus one adjacent whitespace run by default, same rule as w/b — see word-selects-whitespace)
M MWORD variant of m m
m s + charSelect surrounding delimiter pair
m w + charWrap each selection with a delimiter pair
m /Turn all search matches in the buffer into selections

Editing

KeyAction
dDelete selection (to kill ring)
cChange (delete + Insert mode)
yYank (clipboard + kill ring)
pPaste after (smart source)
PPaste before
[ / ]Cycle kill ring older / newer and re-paste (only after a p/P)
r + charReplace every selected character (line endings are left alone). Enter/Tab count as the character, replacing with a newline/tab
JJoin the selected lines into one
&Align selections into a column
uUndo
U / Ctrl+rRedo
.Repeat last editing action

Entering other modes

KeyAction
iInsert before selection
aInsert after selection
IInsert at first non-blank on line
AInsert at end of line
oOpen new line below, insert
OOpen new line above, insert
:Open command line
/Search forward
?Search backward
KeyAction
nNext match
NPrevious match
sSelect within (regex filter on each selection)
Ctrl+/Use the selected text literally as the search pattern (kitty only)

Macros

KeyAction
Q Q or Q qStart recording into default register q
Q <0-9>Start recording into a numbered register
Q (while recording)Stop recording
q qReplay register q
q <0-9>Replay a numbered register
<count> q qReplay q <count> times

Numbered registers are shared between macros and yanked text — last write wins. Recording is ignored in read-only buffers and during replay.

See Register prefix for the full register list.

Other

KeyAction
" + regRegister prefix (09, k, c, b)
19 then [0-9]*Numeric count prefix (0 is a digit only inside a count; otherwise unbound)

Goto prefix (g)

Press g then a second key:

KeyAction
g gGo to first line of buffer
g eGo to last line of buffer
g hGo to line start
g lGo to line end
g sGo to first non-blank on line
g uLowercase the selection
g UUppercase the selection
g CCapitalize each word in the selection

View prefix (z)

Press z then a second key:

KeyAction
z zCenter view on cursor
z tScroll cursor to top of screen
z bScroll cursor to bottom of screen

Pane prefix (Ctrl+p)

Press Ctrl+p then a second key:

KeyAction
Ctrl+p pFocus next pane
Ctrl+p hFocus pane to the left
Ctrl+p jFocus pane below
Ctrl+p kFocus pane above
Ctrl+p lFocus pane to the right
Ctrl+p sSplit the focused pane, stacking the new pane below it
Ctrl+p vSplit the focused pane side by side
Ctrl+p cClose the focused pane (does nothing if it's the only pane)
TabFocus next pane (kitty only)

Insert mode

KeyAction
Esc / Ctrl+cReturn to Normal mode
/ / / Move cursor
Home / EndGo to line start / end
TabInsert tab (literal \t, or spaces to the next tab stop when tab-style = soft)
BackspaceDelete character before cursor; snaps to previous tab stop when in leading whitespace (auto-pairs aware)
DeleteDelete character under cursor
EnterInsert newline, copying leading whitespace from current line (auto-pairs aware)
Ctrl+wDelete word before cursor
Any other characterInsert character (auto-pairs aware)

Insert mode handles auto-pair insertion: typing (, [, {, ", ', or ` inserts the matching close character. Backspace inside an empty pair deletes both characters.

Extend mode

KeyAction
All other keysSame as Normal mode, but motions extend or shrink the selection

The status bar shows EXT in Extend mode.

Command line

KeyAction
EnterExecute command
Esc / Ctrl+cCancel
TabComplete
Shift+TabComplete (previous)
Up / DownRecall previous / next command starting with the typed prefix
Left / RightMove the cursor
BackspaceDelete character before cursor; on empty input, dismiss the command line
Ctrl+wDelete word before cursor

Search mode

Entered with / (forward) or ? (backward). Every keystroke live-previews the next match from the position where search was opened.

KeyAction
Enter (empty input)Cancel and return to Normal
Enter (non-empty)Commit pattern to the search register, jump to first match, return to Normal
Esc / Ctrl+cCancel, restore pre-search selection
Backspace (input non-empty)Delete char and re-preview
Backspace (empties input)Restore pre-search selection, stay in Search mode
Backspace (on empty input)Exit Search mode
Ctrl+wDelete word before cursor
Up / DownRecall previous / next pattern starting with the typed prefix (separate / and ? rings)
Left / RightMove the cursor
Any other characterInsert and re-preview
Tab / Shift+TabNo-op

Select mode

Entered with s from Normal mode (requires at least one non-collapsed selection). Live-previews sub-match selections within the original selections. Does not overwrite the search register, so n/N continue the prior search after Enter.

KeyAction
Enter (empty input)Cancel, restore original selections
Enter (non-empty)Keep the live-preview selections, return to Normal
Esc / Ctrl+cCancel, restore original selections
Backspace (input non-empty)Delete char and re-preview
Backspace (empties input or on empty)Restore original selections, stay in Select mode
Ctrl+wDelete word before cursor
Left / RightMove the cursor
Any other characterInsert and re-preview
Tab / Shift+Tab / Up / DownNo-op (Select mode has no pattern history)

Released under the MIT License.