mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 17:36:19 +04:00
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:
3150e9b3cd/src/input_handler.cc (L1275)
This commit is contained in:
parent
a066815833
commit
8dab8a0a03
@ -352,7 +352,7 @@ ## Insert mode
|
|||||||
| `Alt-d`, `Alt-Delete` | Delete next word | `delete_word_forward` |
|
| `Alt-d`, `Alt-Delete` | Delete next word | `delete_word_forward` |
|
||||||
| `Ctrl-u` | Delete to start of line | `kill_to_line_start` |
|
| `Ctrl-u` | Delete to start of line | `kill_to_line_start` |
|
||||||
| `Ctrl-k` | Delete to end of line | `kill_to_line_end` |
|
| `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-d`, `Delete` | Delete next char | `delete_char_forward` |
|
||||||
| `Ctrl-j`, `Enter` | Insert new line | `insert_newline` |
|
| `Ctrl-j`, `Enter` | Insert new line | `insert_newline` |
|
||||||
|
|
||||||
@ -433,7 +433,7 @@ ## Prompt
|
|||||||
| `Alt-d`, `Alt-Delete`, `Ctrl-Delete` | Delete next word |
|
| `Alt-d`, `Alt-Delete`, `Ctrl-Delete` | Delete next word |
|
||||||
| `Ctrl-u` | Delete to start of line |
|
| `Ctrl-u` | Delete to start of line |
|
||||||
| `Ctrl-k` | Delete to end 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 |
|
| `Delete`, `Ctrl-d` | Delete next char |
|
||||||
| `Ctrl-s` | Insert a word under doc cursor, may be changed to Ctrl-r Ctrl-w later |
|
| `Ctrl-s` | Insert a word under doc cursor, may be changed to Ctrl-r Ctrl-w later |
|
||||||
| `Ctrl-p`, `Up` | Select previous history |
|
| `Ctrl-p`, `Up` | Select previous history |
|
||||||
|
@ -363,7 +363,7 @@ pub fn default() -> HashMap<Mode, Keymap> {
|
|||||||
"A-d" | "A-del" => delete_word_forward,
|
"A-d" | "A-del" => delete_word_forward,
|
||||||
"C-u" => kill_to_line_start,
|
"C-u" => kill_to_line_start,
|
||||||
"C-k" => kill_to_line_end,
|
"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-d" | "del" => delete_char_forward,
|
||||||
"C-j" | "ret" => insert_newline,
|
"C-j" | "ret" => insert_newline,
|
||||||
"tab" => insert_tab,
|
"tab" => insert_tab,
|
||||||
|
@ -516,7 +516,7 @@ fn handle_event(&mut self, event: &Event, cx: &mut Context) -> EventResult {
|
|||||||
alt!('d') | alt!(Delete) | ctrl!(Delete) => self.delete_word_forwards(cx.editor),
|
alt!('d') | alt!(Delete) | ctrl!(Delete) => self.delete_word_forwards(cx.editor),
|
||||||
ctrl!('k') => self.kill_to_end_of_line(cx.editor),
|
ctrl!('k') => self.kill_to_end_of_line(cx.editor),
|
||||||
ctrl!('u') => self.kill_to_start_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.delete_char_backwards(cx.editor);
|
||||||
(self.callback_fn)(cx, &self.line, PromptEvent::Update);
|
(self.callback_fn)(cx, &self.line, PromptEvent::Update);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user