aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlesleyrs2022-11-29 22:31:18 +0000
committerBlaž Hrastnik2023-02-28 03:35:52 +0000
commit8dab8a0a039fe1f3dd98fc62ac97d2f1c089793a (patch)
tree0db57f8995015c0b1ddda3ad10b037742ea1e5cb
parenta066815833b322233dc11aeae38679bc8466ec56 (diff)
Add shift-backspace keybind alias for backspace (#4937)
When the Kitty Keyboard Protocol is enabled, S-backspace is distinguished from backspace with no modifiers. This is awkward when typing because it's very easy to accidentally hold shift and press backspace temporarily when typing capital letters. Kakoune (which is also a Kitty Keyboard Protocol application) treats S-backspace as backspace too: https://github.com/mawww/kakoune/blob/3150e9b3cd8e61d9bc68245d67822614d4376cf4/src/input_handler.cc#L1275
-rw-r--r--book/src/keymap.md4
-rw-r--r--helix-term/src/keymap/default.rs2
-rw-r--r--helix-term/src/ui/prompt.rs2
3 files changed, 4 insertions, 4 deletions
diff --git a/book/src/keymap.md b/book/src/keymap.md
index 87867024..bc16aa1a 100644
--- a/book/src/keymap.md
+++ b/book/src/keymap.md
@@ -352,7 +352,7 @@ experience.
| `Alt-d`, `Alt-Delete` | Delete next word | `delete_word_forward` |
| `Ctrl-u` | Delete to start of line | `kill_to_line_start` |
| `Ctrl-k` | Delete to end of line | `kill_to_line_end` |
-| `Ctrl-h`, `Backspace` | Delete previous char | `delete_char_backward` |
+| `Ctrl-h`, `Backspace`, `Shift-Backspace` | Delete previous char | `delete_char_backward` |
| `Ctrl-d`, `Delete` | Delete next char | `delete_char_forward` |
| `Ctrl-j`, `Enter` | Insert new line | `insert_newline` |
@@ -433,7 +433,7 @@ Keys to use within prompt, Remapping currently not supported.
| `Alt-d`, `Alt-Delete`, `Ctrl-Delete` | Delete next word |
| `Ctrl-u` | Delete to start of line |
| `Ctrl-k` | Delete to end of line |
-| `Backspace`, `Ctrl-h` | Delete previous char |
+| `Backspace`, `Ctrl-h`, `Shift-Backspace` | Delete previous char |
| `Delete`, `Ctrl-d` | Delete next char |
| `Ctrl-s` | Insert a word under doc cursor, may be changed to Ctrl-r Ctrl-w later |
| `Ctrl-p`, `Up` | Select previous history |
diff --git a/helix-term/src/keymap/default.rs b/helix-term/src/keymap/default.rs
index 01184f80..7425c815 100644
--- a/helix-term/src/keymap/default.rs
+++ b/helix-term/src/keymap/default.rs
@@ -363,7 +363,7 @@ pub fn default() -> HashMap<Mode, Keymap> {
"A-d" | "A-del" => delete_word_forward,
"C-u" => kill_to_line_start,
"C-k" => kill_to_line_end,
- "C-h" | "backspace" => delete_char_backward,
+ "C-h" | "backspace" | "S-backspace" => delete_char_backward,
"C-d" | "del" => delete_char_forward,
"C-j" | "ret" => insert_newline,
"tab" => insert_tab,
diff --git a/helix-term/src/ui/prompt.rs b/helix-term/src/ui/prompt.rs
index f438231f..35ae8c2a 100644
--- a/helix-term/src/ui/prompt.rs
+++ b/helix-term/src/ui/prompt.rs
@@ -516,7 +516,7 @@ impl Component for Prompt {
alt!('d') | alt!(Delete) | ctrl!(Delete) => self.delete_word_forwards(cx.editor),
ctrl!('k') => self.kill_to_end_of_line(cx.editor),
ctrl!('u') => self.kill_to_start_of_line(cx.editor),
- ctrl!('h') | key!(Backspace) => {
+ ctrl!('h') | key!(Backspace) | shift!(Backspace) => {
self.delete_char_backwards(cx.editor);
(self.callback_fn)(cx, &self.line, PromptEvent::Update);
}