Exiting vi requires precise mode awareness and command execution. Follow these expert methods to avoid errors:
Standard Exits
- Save & quit: From Normal mode, press ESC followed by :wq then ENTER.
- Quit without saving changes: Press ESC, then type :q! and ENTER.
- Quit if no modifications: After ESC, enter :q and press ENTER.
Special Scenarios
Force quit during input mode: First press ESC to return to Normal mode (watch for cursor/status changes), then execute :q!.
Recover terminal after crash: Use stty sane in your shell after CTRL + C terminates vi.

Discard changes without quitting: Press ESC, then type :e! to reload original file.
Error Prevention
- Always confirm current mode. Unresponsive commands? Hammer ESC twice.
- Check bottom-left for before executing colon commands.
- Save work incrementally with :w to prevent data loss.
Advanced Shortcuts
- SHIFT + ZZ: Save and exit equivalent to :wq (Normal mode only).
- 😡: Save only if modified, then exit.
When encountering E37: No write since last change, add to override (e.g., :q!). For read-only files, use :wq! to force-write if file permissions allow.