@@ -547,11 +547,6 @@ impl Component for EditorView {
547 // clear status
547 // clear status
548 cx.editor.status_msg = None;
548 cx.editor.status_msg = None;
550− //canonicalize the key
551− if key.modifiers == KeyModifiers::SHIFT {
552− key.modifiers = KeyModifiers::NONE;
555 let (view, doc) = cx.editor.current();
550 let (view, doc) = cx.editor.current();
556 let mode = doc.mode();
551 let mode = doc.mode();
@@ -570,7 +565,7 @@ impl Component for EditorView {
570 match mode {
565 match mode {
571 Mode::Insert => {
566 Mode::Insert => {
572 // record last_insert key
567 // record last_insert key
573− self.last_insert.1.push(key);
568+ self.last_insert.1.push(canonicalize_key(&mut key));
575 // let completion swallow the event if necessary
570 // let completion swallow the event if necessary
576 let mut consumed = false;
571 let mut consumed = false;
@@ -595,7 +590,7 @@ impl Component for EditorView {
596 // if completion didn't take the event, we pass it onto commands
591 // if completion didn't take the event, we pass it onto commands
597 if !consumed {
592 if !consumed {
598− self.insert_mode(&mut cxt, key);
593+ self.insert_mode(&mut cxt, canonicalize_key(&mut key));
600 // lastly we recalculate completion
595 // lastly we recalculate completion
601 if let Some(completion) = &mut self.completion {
596 if let Some(completion) = &mut self.completion {
@@ -606,7 +601,7 @@ impl Component for EditorView {
609− mode => self.command_mode(mode, &mut cxt, key),
604+ mode => self.command_mode(mode, &mut cxt, canonicalize_key(&mut key)),
@@ -695,3 +690,10 @@ impl Component for EditorView {
694+fn canonicalize_key(key: &mut KeyEvent) -> KeyEvent {
695+ if let KeyEvent { code: KeyCode::Char(_), modifiers: KeyModifiers::SHIFT } = key {
696+ key.modifiers = KeyModifiers::NONE;