yazi_widgets/input/commands/
escape.rs1use anyhow::Result;
2use yazi_macro::{act, succ};
3use yazi_parser::VoidOpt;
4use yazi_shared::data::Data;
5
6use crate::input::{Input, InputMode, op::InputOp};
7
8impl Input {
9 pub fn escape(&mut self, _: VoidOpt) -> Result<Data> {
10 let snap = self.snap_mut();
11 match snap.mode {
12 InputMode::Normal => {
13 snap.op = InputOp::None;
14 }
15 InputMode::Insert => {
16 snap.mode = InputMode::Normal;
17 act!(r#move, self, -1)?;
18 }
19 InputMode::Replace => {
20 snap.mode = InputMode::Normal;
21 }
22 }
23 self.snaps.tag(self.limit);
24 succ!();
25 }
26}