@@ -376,6 +376,14 @@ impl Editor {
377 execute!(stdout, terminal::EnterAlternateScreen)?;
377 execute!(stdout, terminal::EnterAlternateScreen)?;
379+ // Exit the alternate screen and disable raw mode before panicking
380+ let hook = std::panic::take_hook();
381+ std::panic::set_hook(Box::new(move |info| {
382+ execute!(std::io::stdout(), terminal::LeaveAlternateScreen);
379 self.event_loop().await;
387 self.event_loop().await;
381 // reset cursor shape
389 // reset cursor shape