Make Shift+Backspace erase a character in insert mode
Terminals that support CSI u escape codes (like iTerm2, Kitty and foot)
allow us to map <s-backspace> independently of <backspace>.
Users expect that <s-backspace> does the same as <backspace>,
especially when typing ALL_CAPS. Make it so.
The first version of 0cf719103
(Make Shift+Space insert a space in
insert mode, 2022-02-09) did that already but I later dropped it
because I wasn't sure if it's right.
This commit is contained in:
parent
ce75867e44
commit
dbd8cf2145
|
@ -469,7 +469,7 @@ public:
|
||||||
m_cursor_pos = 0;
|
m_cursor_pos = 0;
|
||||||
else if (key == Key::End or key == ctrl('e'))
|
else if (key == Key::End or key == ctrl('e'))
|
||||||
m_cursor_pos = m_line.char_length();
|
m_cursor_pos = m_line.char_length();
|
||||||
else if (key == Key::Backspace or key == ctrl('h'))
|
else if (key == Key::Backspace or key == shift(Key::Backspace) or key == ctrl('h'))
|
||||||
{
|
{
|
||||||
if (m_cursor_pos != 0)
|
if (m_cursor_pos != 0)
|
||||||
{
|
{
|
||||||
|
@ -810,7 +810,7 @@ public:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (key == Key::Escape or key == ctrl('c') or
|
else if (key == Key::Escape or key == ctrl('c') or
|
||||||
((key == Key::Backspace or key == ctrl('h')) and line.empty()))
|
((key == Key::Backspace or key == shift(Key::Backspace) or key == ctrl('h')) and line.empty()))
|
||||||
{
|
{
|
||||||
history_push(line);
|
history_push(line);
|
||||||
context().print_status(DisplayLine{});
|
context().print_status(DisplayLine{});
|
||||||
|
@ -1263,7 +1263,7 @@ public:
|
||||||
m_completer.reset();
|
m_completer.reset();
|
||||||
pop_mode();
|
pop_mode();
|
||||||
}
|
}
|
||||||
else if (key == Key::Backspace)
|
else if (key == Key::Backspace or key == shift(Key::Backspace))
|
||||||
{
|
{
|
||||||
Vector<Selection> sels;
|
Vector<Selection> sels;
|
||||||
for (auto& sel : context().selections())
|
for (auto& sel : context().selections())
|
||||||
|
|
Loading…
Reference in New Issue
Block a user