From 5d0e75dd7396e1ee6c33523a3dceb33c105aac2a Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Thu, 12 Dec 2024 15:37:15 +0000 Subject: [PATCH] Improve emacs keybind with better home/end behavior (#21923) Improve behavior of ctrl-a/ctrl-e home/end in emacs keybind. Follow up to #21921 to add those to Linux emacs keymap too. Release Notes: - emacs: Improved `ctrl-a` / `ctrl-e` / `home` / `end` behavior - emacs: Added for `ctrl-s` / `ctrl-r` / `ctrl-g` for navigating buffer search results --- assets/keymaps/linux/emacs.json | 14 ++++++++++++-- assets/keymaps/macos/emacs.json | 6 ++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/assets/keymaps/linux/emacs.json b/assets/keymaps/linux/emacs.json index 64fb3f0831..c6accd38db 100755 --- a/assets/keymaps/linux/emacs.json +++ b/assets/keymaps/linux/emacs.json @@ -15,8 +15,10 @@ "ctrl-b": "editor::MoveLeft", "ctrl-n": "editor::MoveDown", "ctrl-p": "editor::MoveUp", - "ctrl-a": "editor::MoveToBeginningOfLine", - "ctrl-e": "editor::MoveToEndOfLine", + "home": ["editor::MoveToBeginningOfLine", { "stop_at_soft_wraps": false }], + "end": ["editor::MoveToEndOfLine", { "stop_at_soft_wraps": false }], + "ctrl-a": ["editor::MoveToBeginningOfLine", { "stop_at_soft_wraps": false }], + "ctrl-e": ["editor::MoveToEndOfLine", { "stop_at_soft_wraps": false }], "alt-f": "editor::MoveToNextSubwordEnd", "alt-b": "editor::MoveToPreviousSubwordStart", "ctrl-d": "editor::Delete", @@ -53,6 +55,14 @@ "shift shift": "file_finder::Toggle" } }, + { + "context": "BufferSearchBar > Editor", + "bindings": { + "ctrl-s": "search::SelectNextMatch", + "ctrl-r": "search::SelectPrevMatch", + "ctrl-g": "buffer_search::Dismiss" + } + }, { "context": "Pane", "bindings": { diff --git a/assets/keymaps/macos/emacs.json b/assets/keymaps/macos/emacs.json index c243aadfa8..c6accd38db 100755 --- a/assets/keymaps/macos/emacs.json +++ b/assets/keymaps/macos/emacs.json @@ -15,8 +15,10 @@ "ctrl-b": "editor::MoveLeft", "ctrl-n": "editor::MoveDown", "ctrl-p": "editor::MoveUp", - "ctrl-a": "editor::MoveToBeginningOfLine", - "ctrl-e": "editor::MoveToEndOfLine", + "home": ["editor::MoveToBeginningOfLine", { "stop_at_soft_wraps": false }], + "end": ["editor::MoveToEndOfLine", { "stop_at_soft_wraps": false }], + "ctrl-a": ["editor::MoveToBeginningOfLine", { "stop_at_soft_wraps": false }], + "ctrl-e": ["editor::MoveToEndOfLine", { "stop_at_soft_wraps": false }], "alt-f": "editor::MoveToNextSubwordEnd", "alt-b": "editor::MoveToPreviousSubwordStart", "ctrl-d": "editor::Delete",