From 656edc4b2e12ece61f10be8dc28ea60303d04c48 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Thu, 23 May 2024 21:09:32 -0600 Subject: [PATCH] Vim smorgasbord (#12222) Release Notes: - vim: Added `]d/[d` for go to prev/next diagnostic - vim: Added `]c/[c` to go to prev/next git change (`:diff` and `:revert` show the diff and revert it) - vim: Added `g cmd-d` for go to implementation --- assets/keymaps/vim.json | 7 ++++++- docs/src/vim.md | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index cea64b6843..045beffece 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -155,6 +155,7 @@ "g shift-t": "pane::ActivatePrevItem", "g d": "editor::GoToDefinition", "g shift-d": "editor::GoToTypeDefinition", + "g cmd-d": "editor::GoToImplementation", "g x": "editor::OpenUrl", "g n": "vim::SelectNextMatch", "g shift-n": "vim::SelectPreviousMatch", @@ -384,7 +385,11 @@ "ctrl-pageup": "pane::ActivatePrevItem", // tree-sitter related commands "[ x": "editor::SelectLargerSyntaxNode", - "] x": "editor::SelectSmallerSyntaxNode" + "] x": "editor::SelectSmallerSyntaxNode", + "] d": "editor::GoToDiagnostic", + "[ d": "editor::GoToPrevDiagnostic", + "] c": "editor::GoToHunk", + "[ c": "editor::GoToPrevHunk" } }, { diff --git a/docs/src/vim.md b/docs/src/vim.md index 600317a838..b66178c381 100644 --- a/docs/src/vim.md +++ b/docs/src/vim.md @@ -16,10 +16,11 @@ Vim mode has several "core Zed" key bindings, that will help you make the most o ``` # Language server -g d Go to definition -g D Go to type definition -c d Rename (change definition) -g A Go to All references to the current word +g d Go to definition +g D Go to type definition +g cmd-d Go to implementation +c d Rename (change definition) +g A Go to All references to the current word g s Find symbol in current file g S Find symbol in entire project @@ -29,6 +30,10 @@ g [ Go to previous diagnostic g h Show inline error (hover) g . Open the code actions menu +# Git +] c Go to previous git change +[ c Go to next git change + # Treesitter ] x Select a smaller syntax node [ x Select a larger syntax node @@ -190,6 +195,9 @@ Currently supported vim-specific commands: As any Zed command is available, you may find that it's helpful to remember mnemonics that run the correct command. For example: ``` +:diff Toggle Hunk [Diff] +:diffs Toggle all Hunk [Diffs] +:revert Revert Selected Hunks :cpp [C]o[p]y [P]ath to file :crp [C]opy [r]elative [P]ath :reveal [Reveal] in finder