vim: Add support for temporary normal mode (ctrl-o) within insert mode (#19454)
Support has been added for the ctrl-o command within insert mode. Ctrl-o is used to partially enter normal mode for 1 motion to then return back into insert mode. Release Notes: - vim: Added support for `ctrl-o` in insert mode to enter temporary normal mode --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This commit is contained in:
parent
254ce74036
commit
b1cd9e4d24
14 changed files with 145 additions and 11 deletions
|
@ -3,6 +3,7 @@ use std::{cell::RefCell, rc::Rc};
|
|||
use crate::{
|
||||
insert::NormalBefore,
|
||||
motion::Motion,
|
||||
normal::InsertBefore,
|
||||
state::{Mode, Operator, RecordedSelection, ReplayableAction, VimGlobals},
|
||||
Vim,
|
||||
};
|
||||
|
@ -308,6 +309,11 @@ impl Vim {
|
|||
|
||||
actions.push(ReplayableAction::Action(EndRepeat.boxed_clone()));
|
||||
|
||||
if self.temp_mode {
|
||||
self.temp_mode = false;
|
||||
actions.push(ReplayableAction::Action(InsertBefore.boxed_clone()));
|
||||
}
|
||||
|
||||
let globals = Vim::globals(cx);
|
||||
globals.dot_replaying = true;
|
||||
let mut replayer = globals.replayer.get_or_insert_with(Replayer::new).clone();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue