|
323 | 323 | "] x": "editor::SelectSmallerSyntaxNode" |
324 | 324 | } |
325 | 325 | }, |
| 326 | + { |
| 327 | + "context": "vim_mode == helix_select", |
| 328 | + "bindings": { |
| 329 | + "escape": "vim::NormalBefore", |
| 330 | + "ctrl-[": "editor::Cancel", |
| 331 | + ";": "vim::HelixCollapseSelection", |
| 332 | + ":": "command_palette::Toggle", |
| 333 | + "left": "vim::WrappingLeft", |
| 334 | + "right": "vim::WrappingRight", |
| 335 | + "h": "vim::WrappingLeft", |
| 336 | + "l": "vim::WrappingRight", |
| 337 | + "shift-d": "vim::DeleteToEndOfLine", |
| 338 | + "shift-j": "vim::JoinLines", |
| 339 | + "y": "editor::Copy", |
| 340 | + "shift-y": "vim::YankLine", |
| 341 | + "i": "vim::InsertBefore", |
| 342 | + "shift-i": "vim::InsertFirstNonWhitespace", |
| 343 | + "a": "vim::InsertAfter", |
| 344 | + "shift-a": "vim::InsertEndOfLine", |
| 345 | + "o": "vim::InsertLineBelow", |
| 346 | + "shift-o": "vim::InsertLineAbove", |
| 347 | + "~": "vim::ChangeCase", |
| 348 | + "ctrl-a": "vim::Increment", |
| 349 | + "ctrl-x": "vim::Decrement", |
| 350 | + "p": "vim::Paste", |
| 351 | + "shift-p": ["vim::Paste", { "before": true }], |
| 352 | + "u": "vim::Undo", |
| 353 | + "ctrl-r": "vim::Redo", |
| 354 | + "f": ["vim::PushFindForward", { "before": false, "multiline": true }], |
| 355 | + "t": ["vim::PushFindForward", { "before": true, "multiline": true }], |
| 356 | + "shift-f": ["vim::PushFindBackward", { "after": false, "multiline": true }], |
| 357 | + "shift-t": ["vim::PushFindBackward", { "after": true, "multiline": true }], |
| 358 | + "r": "vim::PushReplace", |
| 359 | + "s": "vim::Substitute", |
| 360 | + "shift-s": "vim::SubstituteLine", |
| 361 | + ">": "vim::Indent", |
| 362 | + "<": "vim::Outdent", |
| 363 | + "=": "vim::AutoIndent", |
| 364 | + "g u": "vim::PushLowercase", |
| 365 | + "g shift-u": "vim::PushUppercase", |
| 366 | + "g ~": "vim::PushOppositeCase", |
| 367 | + "\"": "vim::PushRegister", |
| 368 | + "g q": "vim::PushRewrap", |
| 369 | + "g w": "vim::PushRewrap", |
| 370 | + "ctrl-pagedown": "pane::ActivateNextItem", |
| 371 | + "ctrl-pageup": "pane::ActivatePreviousItem", |
| 372 | + "insert": "vim::InsertBefore", |
| 373 | + ".": "vim::Repeat", |
| 374 | + "alt-.": "vim::RepeatFind", |
| 375 | + "alt-;": "vim::OtherEnd", |
| 376 | + // tree-sitter related commands |
| 377 | + "[ x": "editor::SelectLargerSyntaxNode", |
| 378 | + "] x": "editor::SelectSmallerSyntaxNode", |
| 379 | + "] d": "editor::GoToDiagnostic", |
| 380 | + "[ d": "editor::GoToPreviousDiagnostic", |
| 381 | + "] c": "editor::GoToHunk", |
| 382 | + "[ c": "editor::GoToPreviousHunk", |
| 383 | + // Goto mode |
| 384 | + "g n": "pane::ActivateNextItem", |
| 385 | + "g p": "pane::ActivatePreviousItem", |
| 386 | + // "tab": "pane::ActivateNextItem", |
| 387 | + // "shift-tab": "pane::ActivatePrevItem", |
| 388 | + "shift-h": "pane::ActivatePreviousItem", |
| 389 | + "shift-l": "pane::ActivateNextItem", |
| 390 | + "g l": "vim::EndOfLine", |
| 391 | + "g h": "vim::StartOfLine", |
| 392 | + "g s": "vim::FirstNonWhitespace", // "g s" default behavior is "space s" |
| 393 | + "g e": "vim::EndOfDocument", |
| 394 | + "g y": "editor::GoToTypeDefinition", |
| 395 | + "g r": "editor::FindAllReferences", // zed specific |
| 396 | + "g t": "vim::WindowTop", |
| 397 | + "g c": "vim::WindowMiddle", |
| 398 | + "g b": "vim::WindowBottom", |
| 399 | + |
| 400 | + "x": "editor::SelectLine", |
| 401 | + "shift-x": "editor::SelectLine", |
| 402 | + "%": "editor::SelectAll", |
| 403 | + // Window mode |
| 404 | + "space w h": "workspace::ActivatePaneLeft", |
| 405 | + "space w l": "workspace::ActivatePaneRight", |
| 406 | + "space w k": "workspace::ActivatePaneUp", |
| 407 | + "space w j": "workspace::ActivatePaneDown", |
| 408 | + "space w q": "pane::CloseActiveItem", |
| 409 | + "space w s": "pane::SplitRight", |
| 410 | + "space w r": "pane::SplitRight", |
| 411 | + "space w v": "pane::SplitDown", |
| 412 | + "space w d": "pane::SplitDown", |
| 413 | + // Space mode |
| 414 | + "space f": "file_finder::Toggle", |
| 415 | + "space k": "editor::Hover", |
| 416 | + "space s": "outline::Toggle", |
| 417 | + "space shift-s": "project_symbols::Toggle", |
| 418 | + "space d": "editor::GoToDiagnostic", |
| 419 | + "space r": "editor::Rename", |
| 420 | + "space a": "editor::ToggleCodeActions", |
| 421 | + "space h": "editor::SelectAllMatches", |
| 422 | + "space c": "editor::ToggleComments", |
| 423 | + "space y": "editor::Copy", |
| 424 | + "space p": "editor::Paste", |
| 425 | + // Match mode |
| 426 | + "m m": "vim::Matching", |
| 427 | + "m i w": ["workspace::SendKeystrokes", "v i w"], |
| 428 | + "shift-u": "editor::Redo", |
| 429 | + "ctrl-c": "editor::ToggleComments", |
| 430 | + "d": "vim::HelixDelete", |
| 431 | + "c": "vim::Substitute", |
| 432 | + "shift-c": "editor::AddSelectionBelow", |
| 433 | + "alt-shift-c": "editor::AddSelectionAbove" |
| 434 | + } |
| 435 | + }, |
326 | 436 | { |
327 | 437 | "context": "vim_mode == insert", |
328 | 438 | "bindings": { |
|
428 | 538 | "g h": "vim::StartOfLine", |
429 | 539 | "g s": "vim::FirstNonWhitespace", // "g s" default behavior is "space s" |
430 | 540 | "g e": "vim::EndOfDocument", |
| 541 | + "g .": "vim::HelixGotoLastModification", // go to last modification |
431 | 542 | "g r": "editor::FindAllReferences", // zed specific |
432 | 543 | "g t": "vim::WindowTop", |
433 | 544 | "g c": "vim::WindowMiddle", |
434 | 545 | "g b": "vim::WindowBottom", |
435 | 546 |
|
| 547 | + "shift-r": "editor::Paste", |
436 | 548 | "x": "editor::SelectLine", |
437 | 549 | "shift-x": "editor::SelectLine", |
438 | 550 | "%": "editor::SelectAll", |
|
0 commit comments