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
157157 "7": ["vim::Number", 7],
158158 "8": ["vim::Number", 8],
159159 "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",
205160 "ctrl-w d": "editor::GoToDefinitionSplit",
206161 "ctrl-w g d": "editor::GoToDefinitionSplit",
207162 "ctrl-w shift-d": "editor::GoToTypeDefinitionSplit",
@@ -546,7 +501,57 @@ · 338 unmodified lines
546501 }
547502 },
548503 {
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",
550555 "bindings": {
551556 ":": "command_palette::Toggle",
552557 "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