Zed Vim Key Mappings: Normal Mode
This post provides a detailed reference for the key mappings available in the Normal Mode of Zed’s Vim editor.
| Key | Command |
|---|---|
g r | editor::GoToReferences |
g R | editor::Rename |
g ] | editor::GoToNextDiagnostic |
[ g | editor::GoToPrevDiagnostic |
g . | editor::OpenCodeActions |
g l | editor::SelectNext |
g L | editor::SelectPrev |
g c | editor::SelectAll |
z z | editor::Fold |
z o | editor::Unfold |
z m | editor::FoldAll |
z r | editor::UnfoldAll |
] b | editor::GoToNextBuffer |
[ b | editor::GoToPrevBuffer |
space w | workspace::Save |
space q | workspace::CloseWindow |
space h | pane::ActivatePrevItem |
space j | pane::ActivateNextItem |
space k | pane::ActivatePrevItem |
space l | pane::ActivateNextItem |
g h | pane::GoBack |
g H | pane::GoForward |
g / | project_search::ToggleFocus |
g f | file_finder::Toggle |
g p | project_panel::ToggleFocus |
g x | diagnostics::Deploy |
c x | vim::Exchange |
g R | vim::ReplaceWithRegister |
g c | editor::ToggleComments |
g C | editor::ToggleComments |
[ h | git::PrevChange |
] h | git::NextChange |
d o | git::ViewHunk |
d O | git::ViewHunk |
[ d | editor::GoToPrevDiff |
] d | editor::GoToNextDiff |
g s | editor::ExpandToWord |
] e | editor::GoToNextLineEnd |
<ctrl-i> | pane::GoForward |
<ctrl-o> | pane::GoBack |
<ctrl-w> v | pane::SplitRight |
<ctrl-w> s | pane::SplitDown |
<ctrl-w> w | pane::ActivateNext |
<ctrl-w> W | pane::ActivatePrev |
<ctrl-w> h | pane::ActivateLeft |
<ctrl-w> j | pane::ActivateDown |
<ctrl-w> k | pane::ActivateUp |
<ctrl-w> l | pane::ActivateRight |
<ctrl-w> = | pane::Balance |
<ctrl-w> q | pane::CloseActiveItem |
<ctrl-w> g f | file_finder::Toggle in a split |
<ctrl-w> g d | editor::GoToDefinition in a split |
<ctrl-w> g D | editor::GoToTypeDefinition in a split |
<ctrl-w> g r | editor::GoToReferences in a split |
z <enter> | editor::FollowLink |
g <enter> | editor::FollowLink |
g e | editor::GoToEndOfLine |
g m | editor::GoToLine |
<ctrl-d> | editor::ScrollHalfPageDown |
<ctrl-u> | editor::ScrollHalfPageUp |
<ctrl-f> | editor::ScrollPageDown |
<ctrl-b> | editor::ScrollPageUp |
<ctrl-e> | editor::ScrollDown |
<ctrl-y> | editor::ScrollUp |
z t | editor::ScrollToTop |
z b | editor::ScrollToBottom |
z . | editor::ScrollToCenter |
H | editor::GoToScreenTop |
M | editor::GoToScreenMiddle |
L | editor::GoToScreenBottom |
g a | editor::CodeActions |
<ctrl-g> | editor::ShowCursorPosition |
g I | editor::GoToFirstColumn |
g ~ | editor::ToggleCase |
g U | editor::UpperCase |
g u | editor::LowerCase |
g ? | editor::Rot13 |
g J | editor::JoinLines |
g k | editor::MoveLineUp |
g j | editor::MoveLineDown |
<ctrl-a> | editor::Increment |
<ctrl-x> | editor::Decrement |
g v | editor::SelectLast |
[ | vim::MoveToPrevParagraph |
] | vim::MoveToNextParagraph |
[- | vim::PrevIndent |
]- | vim::NextIndent |
[+ | vim::PrevIndent |
]+ | vim::NextIndent |
[= | vim::PrevIndent |
]= | vim::NextIndent |
g d | editor::GoToDefinition |
g D | editor::GoToTypeDefinition |
g A | editor::GoToReferences |
g t | pane::ActivateNextItem |
g T | pane::ActivatePrevItem |
g n | editor::GoToNextWord |
g N | editor::GoToPrevWord |
g # | editor::SelectPrevWord |
g * | editor::SelectNextWord |
> > | editor::Indent |
< < | editor::Outdent |
d i d | git::ViewHunk |
c i d | git::ViewHunk |
y i d | git::ViewHunk |
d s d | git::ViewHunk |
c s d | git::ViewHunk |
y s d | git::ViewHunk |
d a d | git::ViewHunk |
c a d | git::ViewHunk |
y a d | git::ViewHunk |
i a | vim::text_object::ACommand |
a a | vim::text_object::ACommand |
i q | vim::text_object::AString |
a q | vim::text_object::AString |
i Q | vim::text_object::AString |
a Q | vim::text_object::AString |
i B | vim::text_object::MiniBracket |
a B | vim::text_object::MiniBracket |
i b | vim::text_object::MiniBracket |
a b | vim::text_object::MiniBracket |
i ( | vim::text_object::MiniBracket |
a ( | vim::text_object::MiniBracket |
i ) | vim::text_object::MiniBracket |
a ) | vim::text_object::MiniBracket |
i [ | vim::text_object::MiniBracket |
a [ | vim::text_object::MiniBracket |
i ] | vim::text_object::MiniBracket |
a ] | vim::text_object::MiniBracket |
i { | vim::text_object::MiniBracket |
a { | vim::text_object::MiniBracket |
i } | vim::text_object::MiniBracket |
a } | vim::text_object::MiniBracket |
i < | vim::text_object::MiniBracket |
a < | vim::text_object::MiniBracket |
i > | vim::text_object::MiniBracket |
a > | vim::text_object::MiniBracket |
i t | vim::text_object::AnyTag |
a t | vim::text_object::AnyTag |
i s | vim::text_object::ASentence |
a s | vim::text_object::ASentence |
i p | vim::text_object::AParagraph |
a p | vim::text_object::AParagraph |
i w | vim::text_object::AWord |
a w | vim::text_object::AWord |
i W | vim::text_object::AWord |
a W | vim::text_object::AWord |
i ' | vim::text_object::MiniQuote |
a ' | vim::text_object::MiniQuote |
i " | vim::text_object::MiniQuote |
a " | vim::text_object::MiniQuote |
| `i | |
| ` | vim::text_object::MiniQuote |
| `a | |
| ` | vim::text_object::MiniQuote |
i c | vim::text_object::AnyClass |
a c | vim::text_object::AnyClass |
i f | vim::text_object::AnyFunction |
a f | vim::text_object::AnyFunction |
i m | vim::text_object::AnyFunction |
a m | vim::text_object::AnyFunction |
] c | vim::GoToNextFunction |
[ c | vim::GoToPrevFunction |
] m | vim::GoToNextFunction |
[ m | vim::GoToPrevFunction |
] a | vim::GoToNextCommand |
[ a | vim::GoToPrevCommand |
] i | vim::GoToNextItem |
[ i | vim::GoToPrevItem |
] C | vim::GoToNextClass |
[ C | vim::GoToPrevClass |
] f | vim::GoToNextTest |
[ f | vim::GoToPrevTest |
] t | vim::GoToNextTest |
[ t | vim::GoToPrevTest |
] T | vim::GoToNextType |
[ T | vim::GoToPrevType |
] p | vim::GoToNextParameter |
[ p | vim::GoToPrevParameter |
] h | git::NextChange |
[ h | git::PrevChange |
d o | git::ViewHunk |
d O | git::ViewHunk |
y s | vim::Surround |
y S | vim::SurroundLine |
y s s | vim::Surround |
y S S | vim::SurroundLine |
d s | vim::DeleteSurround |
c s | vim::ChangeSurround |
<leader> a | assistant::CycleFocus |
<leader> c | chat_panel::ToggleFocus |
<leader> d | debugger::ToggleFocus |
<leader> e | project_panel::ToggleFocus |
<leader> g | git_panel::ToggleFocus |
<leader> n | notifications::ToggleFocus |
<leader> p | project_panel::ToggleFocus |
<leader> s | project_search::ToggleFocus |
<leader> t | terminal_panel::ToggleFocus |
<leader> x | diagnostics::Deploy |
<leader> o | file_finder::Toggle |
<leader> z | editor::ToggleZenMode |
f | vim::NextCharacter |
F | vim::PrevCharacter |
t | vim::TillNextCharacter |
T | vim::TillPrevCharacter |
; | vim::RepeatCharacterMove |
, | vim::RepeatCharacterMoveBackwards |