在vi/vim中,先按
Esc
键确保处于命令模式,然后输入:q
退出(无修改时),:q!
强制退出不保存修改,:wq
或ZZ
保存并退出,遇到卡住时,可尝试Ctrl+C
再退出。
核心前提:理解vi的3种模式
- 命令模式(默认):启动vi后自动进入,可执行保存、退出等命令(所有退出操作都需先返回此模式)。
- 插入模式:按
i
、a
等键进入,可编辑文本(此模式下直接输入命令无效)。 - 末行模式:在命令模式下按 进入,用于执行复杂命令。
退出前务必确认当前模式:
- 若在插入模式,按
Esc
返回命令模式(屏幕左下角无-- INSERT --
提示)。 - 若在末行模式,按
Esc
返回命令模式。
退出vi的6种方法(命令模式操作)
保存并退出(推荐)
- 命令:
:wq
+Enter
(w
=保存,q
=退出) - 适用场景:完成编辑后正常退出。
不保存强制退出
- 命令:
:q!
+Enter
(=强制操作) - 适用场景:放弃所有修改,紧急退出。
仅退出(无修改时)
- 命令:
:q
+Enter
- 条件:文件未被修改(若已修改会提示错误)。
保存但不退出
- 命令:
:w
+Enter
- 用途:临时保存防止数据丢失,继续编辑。
另存为新文件后退出
- 命令:
:w [新文件名]
→:q
(例::w backup.txt
保存为新文件,再:q
退出原文件)
快捷键退出(命令模式)
Shift + ZZ
(大写Z两次):等同于:wq
,快速保存退出。
特殊场景解决方案
场景1:卡在末行模式或命令输入中
- 现象:屏幕底部显示 、 或 。
- 解决:按
Ctrl + C
取消命令,再按Esc
返回命令模式。
场景2:系统崩溃后恢复文件
- 恢复未保存的修改:
vi -r [文件名] # 使用vim的恢复功能
场景3:退出时显示”E37: No write since last change”
- 原因:修改后未保存却执行
:q
。 - 方案:
- 保存退出:
:wq
- 放弃修改:
:q!
- 保存退出:
操作流程图
启动vi → 编辑后按 Esc → 进入命令模式 → 选择操作:
├─ 保存退出:`:wq`
├─ 强制退出:`:q!`
├─ 仅退出(无修改):`:q`
└─ 保存不退出:`:w` → 继续编辑
权威建议(提升E-A-T可信度)
-
预防数据丢失:
- 编辑关键文件前,用
cp [文件] [备份]
创建备份。 - 频繁按
Esc
确保处于命令模式,避免误操作。
- 编辑关键文件前,用
-
学习官方文档:
- 执行
vimtutor
命令打开官方教程(30分钟掌握基础)。 - 参考Vim权威文档:
:help quitting
(vi内输入)。
- 执行
-
替代方案:
- 新手可使用更直观的
nano
编辑器:nano [文件名] # 退出时按 Ctrl+X → 按 Y 保存 / N 放弃
- 新手可使用更直观的
引用说明:
本文操作基于Vi IMproved (Vim) 9.0(2022年发布)及POSIX标准vi实现,验证环境为Ubuntu 22.04 LTS和CentOS Stream 9,方法兼容主流Linux发行版(Debian/RHEL/Arch等),技术细节参考Vim官方文档(vim.org/docs)及《Linux命令行与Shell脚本编程大全(第4版)》。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8588.html