fix Esc closing the editor instead of returning to Vim normal mode
panel.focusMode.exit is bound to Escape in the contributions layer, which outranks the active preset. In Vim insert/visual mode that shadowed the vim preset's `escape → vim.mode.normal` binding, so Esc closed the editor instead of returning to normal mode. Add an optional when-clause to a CommandContribution's defaultBinding (plumbed through to KeymapService.registerCommandBinding, which already accepts one) and guard focusMode.exit's escape with `!vim.insert && !vim.visual` — symmetric with vim.yaml's vim.mode.normal. Esc still exits focus / closes the editor in normal and non-Vim modes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -79,6 +79,10 @@ class DefaultLayoutExtension extends ClideExtension {
|
||||
command: 'panel.focusMode.exit',
|
||||
title: 'Exit Focus Mode',
|
||||
defaultBinding: 'escape',
|
||||
// Stand down in Vim insert/visual mode so Esc returns to normal
|
||||
// mode instead of closing the editor (T-257). Symmetric with
|
||||
// vim.yaml's `vim.mode.normal` (escape when vim.insert||vim.visual).
|
||||
bindingWhen: '!vim.insert && !vim.visual',
|
||||
run: _exitFocusMode,
|
||||
),
|
||||
// Editor split (D-049, D-054)
|
||||
|
||||
Reference in New Issue
Block a user