File tree Expand file tree Collapse file tree 1 file changed +16
-3
lines changed Expand file tree Collapse file tree 1 file changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -136,8 +136,17 @@ impl EditMode for Vi {
136
136
}
137
137
( _, KeyModifiers :: NONE , KeyCode :: Esc ) => {
138
138
self . cache . clear ( ) ;
139
- self . mode = ViMode :: Normal ;
140
- ReedlineEvent :: Multiple ( vec ! [ ReedlineEvent :: Esc , ReedlineEvent :: Repaint ] )
139
+
140
+ ReedlineEvent :: Multiple ( vec ! [
141
+ if self . mode == ViMode :: Insert {
142
+ self . mode = ViMode :: Normal ;
143
+ ReedlineEvent :: Left
144
+ } else {
145
+ ReedlineEvent :: None
146
+ } ,
147
+ ReedlineEvent :: Esc ,
148
+ ReedlineEvent :: Repaint ,
149
+ ] )
141
150
}
142
151
( _, KeyModifiers :: NONE , KeyCode :: Enter ) => {
143
152
self . mode = ViMode :: Insert ;
@@ -188,7 +197,11 @@ mod test {
188
197
189
198
assert_eq ! (
190
199
result,
191
- ReedlineEvent :: Multiple ( vec![ ReedlineEvent :: Esc , ReedlineEvent :: Repaint ] )
200
+ ReedlineEvent :: Multiple ( vec![
201
+ ReedlineEvent :: Left ,
202
+ ReedlineEvent :: Esc ,
203
+ ReedlineEvent :: Repaint
204
+ ] )
192
205
) ;
193
206
assert ! ( matches!( vi. mode, ViMode :: Normal ) ) ;
194
207
}
You can’t perform that action at this time.
0 commit comments