From 9da040da3f5298e385a73e5ca8a4bbfe2d34dbb4 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Thu, 7 Nov 2024 13:52:13 -0700 Subject: [PATCH] Stop using alt- shortcuts (#20378) Closes #7688 Release Notes: - (breaking change) Stop binding keyboard shortcuts to alt-[a-z]. These get in the way of typing characters. This is usually not an issue for English speakers because we don't use many characters; but for other Latin-based languages with diacritics our shortcuts prevent them typing what they need to type. This primarily affects Zed's extra features: * `alt-q` => `cmd-k q` on maOS, `ctrl-k q` on Linux for `editor::Rewrap` * `alt-z` => `cmd-k z` on macOS `ctrl-k z` on Linux for `editor::ToggleSoftWrap` * `alt-m` => `ctrl-shift-m` for `assistant::ToggleModelSelector` * `alt-v` => `ctrl-shift-v` for `["editor::MovePageUp", { "center_cursor": true }]` (macOS only) * `alt-t` => `cmd-shift-r` on maOS, `ctrl-shift-r` on Linux for `task::Spawn` (The previous binding for `editor::RevealInFileManager` now only applies in the project panel) * `alt-shift-t` => `alt-cmd-r` on maOS, `ctrl-alt-r` on Linux for `task::Rerun` * `alt-shift-f` => `ctrl-shift-f` for `project_panel::SearchInDirectory`. But also overrides some bindings from Readline. * `alt-h` => `alt-backspace` for `editor::DeleteToPreviousWordStart` * `alt-d` => `alt-delete` for `editor::DeleteToNextWordEnd` * `alt-f` => `ctrl-f` for `editor:: MoveToNextWordEnd` (`ctrl-f` was previously `editor::MoveRight`) * `alt-b` => `ctrl-b` for `editor::MoveToNextWordStart` (`ctrl-b` was previously `editor::MoveLeft`) Note that `alt-t` and `alt-shift-t` have been kept as aliases (because no-one complained about `t` yet; but we may remove them completely in the future). --- assets/keymaps/default-linux.json | 13 ++++++++----- assets/keymaps/default-macos.json | 30 +++++++++++++----------------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index f272da80b8..d71707ffbf 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -56,7 +56,8 @@ "shift-tab": "editor::TabPrev", "ctrl-k": "editor::CutToEndOfLine", // "ctrl-t": "editor::Transpose", - "alt-q": "editor::Rewrap", + "ctrl-k ctrl-q": "editor::Rewrap", + "ctrl-k q": "editor::Rewrap", "ctrl-backspace": "editor::DeleteToPreviousWordStart", "ctrl-delete": "editor::DeleteToNextWordEnd", "shift-delete": "editor::Cut", @@ -126,7 +127,8 @@ "shift-enter": "editor::Newline", "ctrl-enter": "editor::NewlineAbove", "ctrl-shift-enter": "editor::NewlineBelow", - "alt-z": "editor::ToggleSoftWrap", + "ctrl-k ctrl-z": "editor::ToggleSoftWrap", + "ctrl-k z": "editor::ToggleSoftWrap", "ctrl-f": "buffer_search::Deploy", "ctrl-h": ["buffer_search::Deploy", { "replace_enabled": true }], // "cmd-e": ["buffer_search::Deploy", { "focus": false }], @@ -169,7 +171,7 @@ "ctrl-k c": "assistant::CopyCode", "ctrl-g": "search::SelectNextMatch", "ctrl-shift-g": "search::SelectPrevMatch", - "alt-m": "assistant::ToggleModelSelector", + "ctrl-shift-m": "assistant::ToggleModelSelector", "ctrl-k h": "assistant::DeployHistory", "ctrl-k l": "assistant::DeployPromptLibrary", "ctrl-n": "assistant::NewContext" @@ -326,7 +328,6 @@ "ctrl-k ctrl-j": "editor::UnfoldAll", "ctrl-space": "editor::ShowCompletions", "ctrl-.": "editor::ToggleCodeActions", - "alt-ctrl-r": "editor::RevealInFileManager", "ctrl-k r": "editor::RevealInFileManager", "ctrl-k p": "editor::CopyPath", "ctrl-\\": "pane::SplitRight", @@ -417,6 +418,8 @@ "ctrl-k shift-up": ["workspace::SwapPaneInDirection", "Up"], "ctrl-k shift-down": ["workspace::SwapPaneInDirection", "Down"], "ctrl-shift-x": "zed::Extensions", + "ctrl-shift-r": "task::Rerun", + "ctrl-alt-r": "task::Rerun", "alt-t": "task::Rerun", "alt-shift-t": "task::Spawn" } @@ -587,7 +590,7 @@ "ctrl-delete": ["project_panel::Delete", { "skip_prompt": false }], "alt-ctrl-r": "project_panel::RevealInFileManager", "ctrl-shift-enter": "project_panel::OpenWithSystem", - "alt-shift-f": "project_panel::NewSearchInDirectory", + "ctrl-shift-f": "project_panel::NewSearchInDirectory", "shift-down": "menu::SelectNext", "shift-up": "menu::SelectPrev", "escape": "menu::Cancel" diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 62dad00e00..a0af408e12 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -51,14 +51,13 @@ "shift-tab": "editor::TabPrev", "ctrl-k": "editor::CutToEndOfLine", "ctrl-t": "editor::Transpose", - "alt-q": "editor::Rewrap", + "cmd-k q": "editor::Rewrap", + "cmd-k cmd-q": "editor::Rewrap", "cmd-backspace": "editor::DeleteToBeginningOfLine", "cmd-delete": "editor::DeleteToEndOfLine", "alt-backspace": "editor::DeleteToPreviousWordStart", "ctrl-w": "editor::DeleteToPreviousWordStart", "alt-delete": "editor::DeleteToNextWordEnd", - "alt-h": "editor::DeleteToPreviousWordStart", - "alt-d": "editor::DeleteToNextWordEnd", "cmd-x": "editor::Cut", "cmd-c": "editor::Copy", "cmd-v": "editor::Paste", @@ -82,13 +81,11 @@ "right": "editor::MoveRight", "ctrl-p": "editor::MoveUp", "ctrl-n": "editor::MoveDown", - "ctrl-b": "editor::MoveLeft", - "ctrl-f": "editor::MoveRight", "ctrl-l": "editor::ScrollCursorCenter", "alt-left": "editor::MoveToPreviousWordStart", - "alt-b": "editor::MoveToPreviousWordStart", + "ctrl-b": "editor::MoveToPreviousWordStart", "alt-right": "editor::MoveToNextWordEnd", - "alt-f": "editor::MoveToNextWordEnd", + "ctrl-f": "editor::MoveToNextWordEnd", "cmd-left": "editor::MoveToBeginningOfLine", "ctrl-a": "editor::MoveToBeginningOfLine", "cmd-right": "editor::MoveToEndOfLine", @@ -100,13 +97,11 @@ "shift-down": "editor::SelectDown", "ctrl-shift-n": "editor::SelectDown", "shift-left": "editor::SelectLeft", - "ctrl-shift-b": "editor::SelectLeft", + "ctrl-shift-b": "editor::SelectToPreviousWordStart", "shift-right": "editor::SelectRight", - "ctrl-shift-f": "editor::SelectRight", + "ctrl-shift-f": "editor::SelectToNextWordEnd", "alt-shift-left": "editor::SelectToPreviousWordStart", // cursorWordLeftSelect - "alt-shift-b": "editor::SelectToPreviousWordStart", "alt-shift-right": "editor::SelectToNextWordEnd", // cursorWordRightSelect - "alt-shift-f": "editor::SelectToNextWordEnd", "ctrl-shift-up": "editor::SelectToStartOfParagraph", "ctrl-shift-down": "editor::SelectToEndOfParagraph", "cmd-shift-up": "editor::SelectToBeginning", @@ -121,7 +116,7 @@ "shift-end": ["editor::SelectToEndOfLine", { "stop_at_soft_wraps": true }], "ctrl-shift-e": ["editor::SelectToEndOfLine", { "stop_at_soft_wraps": true }], "ctrl-v": ["editor::MovePageDown", { "center_cursor": true }], - "alt-v": ["editor::MovePageUp", { "center_cursor": true }], + "ctrl-shift-v": ["editor::MovePageUp", { "center_cursor": true }], "ctrl-cmd-space": "editor::ShowCharacterPalette", "cmd-;": "editor::ToggleLineNumbers", "cmd-alt-z": "editor::RevertSelectedHunks", @@ -140,7 +135,7 @@ "shift-enter": "editor::Newline", "cmd-enter": "editor::NewlineBelow", "cmd-shift-enter": "editor::NewlineAbove", - "alt-z": "editor::ToggleSoftWrap", + "cmd-k z": "editor::ToggleSoftWrap", "cmd-f": "buffer_search::Deploy", "cmd-alt-f": ["buffer_search::Deploy", { "replace_enabled": true }], "cmd-alt-l": ["buffer_search::Deploy", { "selection_search_enabled": true }], @@ -191,7 +186,7 @@ "cmd-k c": "assistant::CopyCode", "cmd-g": "search::SelectNextMatch", "cmd-shift-g": "search::SelectPrevMatch", - "alt-m": "assistant::ToggleModelSelector", + "cmd-shift-m": "assistant::ToggleModelSelector", "cmd-k h": "assistant::DeployHistory", "cmd-k l": "assistant::DeployPromptLibrary", "cmd-n": "assistant::NewContext" @@ -364,7 +359,6 @@ "cmd-k cmd-j": "editor::UnfoldAll", "ctrl-space": "editor::ShowCompletions", "cmd-.": "editor::ToggleCodeActions", - "alt-cmd-r": "editor::RevealInFileManager", "cmd-k r": "editor::RevealInFileManager", "cmd-k p": "editor::CopyPath", "cmd-\\": "pane::SplitRight", @@ -457,7 +451,9 @@ { "context": "Workspace && !Terminal", "bindings": { - "alt-t": "task::Rerun", + "cmd-shift-r": "task::Spawn", + "cmd-alt-r": "task::Rerun", + "alt-t": "task::Spawn", "alt-shift-t": "task::Spawn" } }, @@ -604,7 +600,7 @@ "alt-cmd-r": "project_panel::RevealInFileManager", "ctrl-shift-enter": "project_panel::OpenWithSystem", "cmd-alt-backspace": ["project_panel::Delete", { "skip_prompt": false }], - "alt-shift-f": "project_panel::NewSearchInDirectory", + "cmd-shift-f": "project_panel::NewSearchInDirectory", "shift-down": "menu::SelectNext", "shift-up": "menu::SelectPrev", "escape": "menu::Cancel"