@@ -547,11 +547,6 @@ impl Component for EditorView {
547547 // clear status
548548 cx.editor.status_msg = None;
549549
550− //canonicalize the key
551− if key.modifiers == KeyModifiers::SHIFT {
552− key.modifiers = KeyModifiers::NONE;
553− }
554−
555550 let (view, doc) = cx.editor.current();
556551 let mode = doc.mode();
557552
@@ -570,7 +565,7 @@ impl Component for EditorView {
570565 match mode {
571566 Mode::Insert => {
572567 // record last_insert key
573− self.last_insert.1.push(key);
568+ self.last_insert.1.push(canonicalize_key(&mut key));
574569
575570 // let completion swallow the event if necessary
576571 let mut consumed = false;
@@ -595,7 +590,7 @@ impl Component for EditorView {
595590
596591 // if completion didn't take the event, we pass it onto commands
597592 if !consumed {
598− self.insert_mode(&mut cxt, key);
593+ self.insert_mode(&mut cxt, canonicalize_key(&mut key));
599594
600595 // lastly we recalculate completion
601596 if let Some(completion) = &mut self.completion {
@@ -606,7 +601,7 @@ impl Component for EditorView {
606601 }
607602 }
608603 }
609− mode => self.command_mode(mode, &mut cxt, key),
604+ mode => self.command_mode(mode, &mut cxt, canonicalize_key(&mut key)),
610605 }
611606 }
612607
@@ -695,3 +690,10 @@ impl Component for EditorView {
695690 None
696691 }
697692}
693+
694+fn canonicalize_key(key: &mut KeyEvent) -> KeyEvent {
695+ if let KeyEvent { code: KeyCode::Char(_), modifiers: KeyModifiers::SHIFT } = key {
696+ key.modifiers = KeyModifiers::NONE;
697+ }
698+ *key
699+}