mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-12 21:32:40 +00:00
735849e201
Improves the new `Editor::DuplicateSelection` @CharlesChen0823 added in https://github.com/zed-industries/zed/pull/21154. - Merge `duplicate_selection` and `duplicate_line` into single function. - Add keyboard shortcuts to JetBrains and SublimeText keymaps. - If the selection is empty (e.g. just a cursor) make `Editor::DuplicateSelection` fallback to being the same as `Editor::DuplicateLineDown`. - Tested with multiple cursors and for multiple selections. | Editor | Action | macOS | Linux | | ----------- | ------------------- | ----------- | ------------ | | VSCode | Duplicate Selection | | | | JetBrains | Duplicate Selection | cmd-d | ctrl-d | | XCode | Duplicate | cmd-d | N/A | | SublimeText | duplicate_line | cmd-shift-d | ctrl-shift-d | This matches behavior of the `duplicate` functionality in all other major editors, with one exception: other editors change the selection so that the newly duplicated object, current Zed behavior leaves the original selection unchanged (TODO?)
63 lines
2 KiB
JSON
63 lines
2 KiB
JSON
[
|
|
{
|
|
"bindings": {
|
|
"ctrl-shift-[": "pane::ActivatePrevItem",
|
|
"ctrl-shift-]": "pane::ActivateNextItem",
|
|
"ctrl-pageup": "pane::ActivatePrevItem",
|
|
"ctrl-pagedown": "pane::ActivateNextItem"
|
|
}
|
|
},
|
|
{
|
|
"context": "Editor",
|
|
"bindings": {
|
|
"ctrl-shift-up": "editor::MoveLineUp",
|
|
"ctrl-shift-down": "editor::MoveLineDown",
|
|
"ctrl-shift-m": "editor::SelectLargerSyntaxNode",
|
|
"ctrl-shift-l": "editor::SplitSelectionIntoLines",
|
|
"ctrl-shift-a": "editor::SelectLargerSyntaxNode",
|
|
"ctrl-shift-d": "editor::DuplicateSelection",
|
|
"alt-f3": "editor::SelectAllMatches", // find_all_under
|
|
"f12": "editor::GoToDefinition",
|
|
"ctrl-f12": "editor::GoToDefinitionSplit",
|
|
"shift-f12": "editor::FindAllReferences",
|
|
"ctrl-shift-f12": "editor::FindAllReferences",
|
|
"ctrl-.": "editor::GoToHunk",
|
|
"ctrl-,": "editor::GoToPrevHunk",
|
|
"ctrl-k ctrl-u": "editor::ConvertToUpperCase",
|
|
"ctrl-k ctrl-l": "editor::ConvertToLowerCase",
|
|
"shift-alt-m": "markdown::OpenPreviewToTheSide",
|
|
"ctrl-backspace": "editor::DeleteToPreviousWordStart",
|
|
"ctrl-delete": "editor::DeleteToNextWordEnd"
|
|
}
|
|
},
|
|
{
|
|
"context": "Editor && mode == full",
|
|
"bindings": {
|
|
"ctrl-r": "outline::Toggle"
|
|
}
|
|
},
|
|
{
|
|
"context": "Pane",
|
|
"bindings": {
|
|
"f4": "search::SelectNextMatch",
|
|
"shift-f4": "search::SelectPrevMatch",
|
|
"alt-1": ["pane::ActivateItem", 0],
|
|
"alt-2": ["pane::ActivateItem", 1],
|
|
"alt-3": ["pane::ActivateItem", 2],
|
|
"alt-4": ["pane::ActivateItem", 3],
|
|
"alt-5": ["pane::ActivateItem", 4],
|
|
"alt-6": ["pane::ActivateItem", 5],
|
|
"alt-7": ["pane::ActivateItem", 6],
|
|
"alt-8": ["pane::ActivateItem", 7],
|
|
"alt-9": "pane::ActivateLastItem"
|
|
}
|
|
},
|
|
{
|
|
"context": "Workspace",
|
|
"bindings": {
|
|
"ctrl-k ctrl-b": "workspace::ToggleLeftDock",
|
|
// "ctrl-0": "project_panel::ToggleFocus", // normally resets zoom
|
|
"shift-ctrl-r": "project_symbols::Toggle"
|
|
}
|
|
}
|
|
]
|