History

vim: Make window shortcuts work in other contexts (#20058)

Closes #18552 Release Notes: - vim: Extended `ctrl-w` to work in non-editor contexts (like markdown preview, or screen shares)

Conrad Irwin committed 2 years ago

Commit ea080261 parent daa99391 file · +51 −46Browse files

Unified · Split

assets/keymaps/vim.json+51−46
@@ -157,51 +157,6 @@ · 156 unmodified lines
157 "7": ["vim::Number", 7],157 "7": ["vim::Number", 7],
158 "8": ["vim::Number", 8],158 "8": ["vim::Number", 8],
159 "9": ["vim::Number", 9],159 "9": ["vim::Number", 9],
160 // window related commands (ctrl-w X)
161 "ctrl-w": null,
162 "ctrl-w left": ["workspace::ActivatePaneInDirection", "Left"],
163 "ctrl-w right": ["workspace::ActivatePaneInDirection", "Right"],
164 "ctrl-w up": ["workspace::ActivatePaneInDirection", "Up"],
165 "ctrl-w down": ["workspace::ActivatePaneInDirection", "Down"],
166 "ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"],
167 "ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"],
168 "ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"],
169 "ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"],
170 "ctrl-w ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
171 "ctrl-w ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
172 "ctrl-w ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
173 "ctrl-w ctrl-j": ["workspace::ActivatePaneInDirection", "Down"],
174 "ctrl-w shift-left": ["workspace::SwapPaneInDirection", "Left"],
175 "ctrl-w shift-right": ["workspace::SwapPaneInDirection", "Right"],
176 "ctrl-w shift-up": ["workspace::SwapPaneInDirection", "Up"],
177 "ctrl-w shift-down": ["workspace::SwapPaneInDirection", "Down"],
178 "ctrl-w shift-h": ["workspace::SwapPaneInDirection", "Left"],
179 "ctrl-w shift-l": ["workspace::SwapPaneInDirection", "Right"],
180 "ctrl-w shift-k": ["workspace::SwapPaneInDirection", "Up"],
181 "ctrl-w shift-j": ["workspace::SwapPaneInDirection", "Down"],
182 "ctrl-w g t": "pane::ActivateNextItem",
183 "ctrl-w ctrl-g t": "pane::ActivateNextItem",
184 "ctrl-w g shift-t": "pane::ActivatePrevItem",
185 "ctrl-w ctrl-g shift-t": "pane::ActivatePrevItem",
186 "ctrl-w w": "workspace::ActivateNextPane",
187 "ctrl-w ctrl-w": "workspace::ActivateNextPane",
188 "ctrl-w p": "workspace::ActivatePreviousPane",
189 "ctrl-w ctrl-p": "workspace::ActivatePreviousPane",
190 "ctrl-w shift-w": "workspace::ActivatePreviousPane",
191 "ctrl-w ctrl-shift-w": "workspace::ActivatePreviousPane",
192 "ctrl-w v": "pane::SplitVertical",
193 "ctrl-w ctrl-v": "pane::SplitVertical",
194 "ctrl-w s": "pane::SplitHorizontal",
195 "ctrl-w shift-s": "pane::SplitHorizontal",
196 "ctrl-w ctrl-s": "pane::SplitHorizontal",
197 "ctrl-w c": "pane::CloseAllItems",
198 "ctrl-w ctrl-c": "pane::CloseAllItems",
199 "ctrl-w q": "pane::CloseAllItems",
200 "ctrl-w ctrl-q": "pane::CloseAllItems",
201 "ctrl-w o": "workspace::CloseInactiveTabsAndPanes",
202 "ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes",
203 "ctrl-w n": "workspace::NewFileSplitHorizontal",
204 "ctrl-w ctrl-n": "workspace::NewFileSplitHorizontal",
205 "ctrl-w d": "editor::GoToDefinitionSplit",160 "ctrl-w d": "editor::GoToDefinitionSplit",
206 "ctrl-w g d": "editor::GoToDefinitionSplit",161 "ctrl-w g d": "editor::GoToDefinitionSplit",
207 "ctrl-w shift-d": "editor::GoToTypeDefinitionSplit",162 "ctrl-w shift-d": "editor::GoToTypeDefinitionSplit",
@@ -546,7 +501,57 @@ · 338 unmodified lines
546 }501 }
547 },502 },
548 {503 {
549 "context": "EmptyPane || SharedScreen",504 "context": "ProjectPanel || CollabPanel || OutlinePanel || ChatPanel || VimControl || EmptyPane || SharedScreen || MarkdownPreview || KeyContextView",
505 "bindings": {
506 // window related commands (ctrl-w X)
507 "ctrl-w": null,
508 "ctrl-w left": ["workspace::ActivatePaneInDirection", "Left"],
509 "ctrl-w right": ["workspace::ActivatePaneInDirection", "Right"],
510 "ctrl-w up": ["workspace::ActivatePaneInDirection", "Up"],
511 "ctrl-w down": ["workspace::ActivatePaneInDirection", "Down"],
512 "ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"],
513 "ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"],
514 "ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"],
515 "ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"],
516 "ctrl-w ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
517 "ctrl-w ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
518 "ctrl-w ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
519 "ctrl-w ctrl-j": ["workspace::ActivatePaneInDirection", "Down"],
520 "ctrl-w shift-left": ["workspace::SwapPaneInDirection", "Left"],
521 "ctrl-w shift-right": ["workspace::SwapPaneInDirection", "Right"],
522 "ctrl-w shift-up": ["workspace::SwapPaneInDirection", "Up"],
523 "ctrl-w shift-down": ["workspace::SwapPaneInDirection", "Down"],
524 "ctrl-w shift-h": ["workspace::SwapPaneInDirection", "Left"],
525 "ctrl-w shift-l": ["workspace::SwapPaneInDirection", "Right"],
526 "ctrl-w shift-k": ["workspace::SwapPaneInDirection", "Up"],
527 "ctrl-w shift-j": ["workspace::SwapPaneInDirection", "Down"],
528 "ctrl-w g t": "pane::ActivateNextItem",
529 "ctrl-w ctrl-g t": "pane::ActivateNextItem",
530 "ctrl-w g shift-t": "pane::ActivatePrevItem",
531 "ctrl-w ctrl-g shift-t": "pane::ActivatePrevItem",
532 "ctrl-w w": "workspace::ActivateNextPane",
533 "ctrl-w ctrl-w": "workspace::ActivateNextPane",
534 "ctrl-w p": "workspace::ActivatePreviousPane",
535 "ctrl-w ctrl-p": "workspace::ActivatePreviousPane",
536 "ctrl-w shift-w": "workspace::ActivatePreviousPane",
537 "ctrl-w ctrl-shift-w": "workspace::ActivatePreviousPane",
538 "ctrl-w v": "pane::SplitVertical",
539 "ctrl-w ctrl-v": "pane::SplitVertical",
540 "ctrl-w s": "pane::SplitHorizontal",
541 "ctrl-w shift-s": "pane::SplitHorizontal",
542 "ctrl-w ctrl-s": "pane::SplitHorizontal",
543 "ctrl-w c": "pane::CloseAllItems",
544 "ctrl-w ctrl-c": "pane::CloseAllItems",
545 "ctrl-w q": "pane::CloseAllItems",
546 "ctrl-w ctrl-q": "pane::CloseAllItems",
547 "ctrl-w o": "workspace::CloseInactiveTabsAndPanes",
548 "ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes",
549 "ctrl-w n": "workspace::NewFileSplitHorizontal",
550 "ctrl-w ctrl-n": "workspace::NewFileSplitHorizontal"
551 }
552 },
553 {
554 "context": "EmptyPane || SharedScreen || MarkdownPreview || KeyContextView",
550 "bindings": {555 "bindings": {
551 ":": "command_palette::Toggle",556 ":": "command_palette::Toggle",
552 "g /": "pane::DeploySearch"557 "g /": "pane::DeploySearch"

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t