1
0

keymap.json 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. [
  2. {
  3. "bindings": {
  4. "cmd-k cmd-,": "zed::OpenSettings",
  5. "cmd-shift-r": "editor::Rename",
  6. "cmd-shift-c": "workspace::CopyRelativePath",
  7. "cmd-alt-shift-c": "editor::CopyPermalinkToLine",
  8. "cmd-o": "file_finder::Toggle",
  9. "cmd-shift-o": ["projects::OpenRecent", { "create_new_window": false }],
  10. "cmd-t": "outline::Toggle",
  11. "cmd-shift-t": "pane::ReopenClosedItem",
  12. "cmd-p": "command_palette::Toggle",
  13. "cmd-shift-p": "project_symbols::Toggle",
  14. "alt-cmd-o": "workspace::Open",
  15. "cmd-alt-n": ["task::Spawn", { "task_name": "agent terminal" }],
  16. // Navigation hierarchy, kept parallel with Ghostty + tmux:
  17. // cmd-alt-arrow -> tabs (flat, left/right only) [same as Ghostty]
  18. // ctrl-shift-arrow -> panes/splits (the 2D grid) [same as tmux]
  19. // Tabs can't share tmux's shift-arrow here because that's text selection.
  20. "cmd-alt-left": "pane::ActivatePreviousItem",
  21. "cmd-alt-right": "pane::ActivateNextItem",
  22. "ctrl-shift-left": "workspace::ActivatePaneLeft",
  23. "ctrl-shift-right": "workspace::ActivatePaneRight",
  24. "ctrl-shift-up": "workspace::ActivatePaneUp",
  25. "ctrl-shift-down": "workspace::ActivatePaneDown"
  26. }
  27. },
  28. {
  29. "context": "Editor",
  30. "bindings": {
  31. "cmd-shift-k": "editor::DeleteLine",
  32. // "cmd-shift-e": "pane::RevealInProjectPanel"
  33. "alt-shift-i": "editor::SplitSelectionIntoLines",
  34. "cmd-,": "editor::Hover",
  35. "cmd-;": "editor::FindAllReferences",
  36. "cmd-alt-ctrl-[": "editor::FoldSelectedRanges",
  37. "cmd-k cmd-l": "vim::ConvertToLowerCase",
  38. "cmd-k cmd-u": "editor::ConvertToUpperCase",
  39. "cmd-k cmd-i": "editor::ConvertToUpperCamelCase",
  40. "cmd-k cmd-o": "editor::ConvertToLowerCamelCase"
  41. }
  42. },
  43. {
  44. "context": "ProjectPanel",
  45. "bindings": {
  46. "cmd-h": "project_panel::CollapseAllEntries"
  47. }
  48. },
  49. {
  50. "context": "ProjectPanel && not_editing",
  51. "bindings": {
  52. "alt-enter": "project_panel::Open"
  53. }
  54. },
  55. {
  56. // cmd-N selects tab N (mac-native). This shadows the default
  57. // workspace::ActivatePane (jump to split N), so that moves to ctrl-N below
  58. // — which was the now-redundant default tab binding (pane::ActivateItem).
  59. "context": "Pane",
  60. "bindings": {
  61. "cmd-1": ["pane::ActivateItem", 0],
  62. "cmd-2": ["pane::ActivateItem", 1],
  63. "cmd-3": ["pane::ActivateItem", 2],
  64. "cmd-4": ["pane::ActivateItem", 3],
  65. "cmd-5": ["pane::ActivateItem", 4],
  66. "cmd-6": ["pane::ActivateItem", 5],
  67. "cmd-7": ["pane::ActivateItem", 6],
  68. "cmd-8": ["pane::ActivateItem", 7],
  69. "cmd-9": ["pane::ActivateItem", 8],
  70. "ctrl-1": ["workspace::ActivatePane", 0],
  71. "ctrl-2": ["workspace::ActivatePane", 1],
  72. "ctrl-3": ["workspace::ActivatePane", 2],
  73. "ctrl-4": ["workspace::ActivatePane", 3],
  74. "ctrl-5": ["workspace::ActivatePane", 4],
  75. "ctrl-6": ["workspace::ActivatePane", 5],
  76. "ctrl-7": ["workspace::ActivatePane", 6],
  77. "ctrl-8": ["workspace::ActivatePane", 7],
  78. "ctrl-9": ["workspace::ActivatePane", 8]
  79. }
  80. }
  81. // inline suggestions
  82. // {
  83. // "context": "Editor && inline_completion && !showing_completions",
  84. // "bindings": {
  85. // // "tab": "editor::Tab",
  86. // // "alt+tab": "editor::AcceptInlineCompletion"
  87. // "tab": "editor::AcceptInlineCompletion"
  88. // }
  89. // },
  90. // {
  91. // "context": "Editor && showing_completions",
  92. // "bindings": {
  93. // "enter": "editor::Newline",
  94. // "tab": "editor::ConfirmCompletion"
  95. // }
  96. // }
  97. ]