mirror of
https://github.com/nushell/reedline.git
synced 2024-10-05 21:38:16 +03:00
Move left when exiting insert mode (#699)
Signed-off-by: Andrei Stan <andreistan2003@gmail.com>
This commit is contained in:
parent
ab1b47ef40
commit
02f551d42e
@ -136,8 +136,17 @@ impl EditMode for Vi {
|
|||||||
}
|
}
|
||||||
(_, KeyModifiers::NONE, KeyCode::Esc) => {
|
(_, KeyModifiers::NONE, KeyCode::Esc) => {
|
||||||
self.cache.clear();
|
self.cache.clear();
|
||||||
self.mode = ViMode::Normal;
|
|
||||||
ReedlineEvent::Multiple(vec![ReedlineEvent::Esc, ReedlineEvent::Repaint])
|
ReedlineEvent::Multiple(vec![
|
||||||
|
if self.mode == ViMode::Insert {
|
||||||
|
self.mode = ViMode::Normal;
|
||||||
|
ReedlineEvent::Left
|
||||||
|
} else {
|
||||||
|
ReedlineEvent::None
|
||||||
|
},
|
||||||
|
ReedlineEvent::Esc,
|
||||||
|
ReedlineEvent::Repaint,
|
||||||
|
])
|
||||||
}
|
}
|
||||||
(_, KeyModifiers::NONE, KeyCode::Enter) => {
|
(_, KeyModifiers::NONE, KeyCode::Enter) => {
|
||||||
self.mode = ViMode::Insert;
|
self.mode = ViMode::Insert;
|
||||||
@ -188,7 +197,11 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
result,
|
result,
|
||||||
ReedlineEvent::Multiple(vec![ReedlineEvent::Esc, ReedlineEvent::Repaint])
|
ReedlineEvent::Multiple(vec![
|
||||||
|
ReedlineEvent::Left,
|
||||||
|
ReedlineEvent::Esc,
|
||||||
|
ReedlineEvent::Repaint
|
||||||
|
])
|
||||||
);
|
);
|
||||||
assert!(matches!(vi.mode, ViMode::Normal));
|
assert!(matches!(vi.mode, ViMode::Normal));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user