vi/vim提示只读时可:wq!强制保存、:w !sudo tee %提权写入、chmod +w %改权限、sudo vim重开、remount,rw修复挂载。

如果您在银河麒麟V10系统中使用vi/vim编辑器打开文件时提示只读状态,且无法正常保存修改,则可能是由于文件权限不足、文件系统挂载为只读、或vi/vim自身检测到只读标志所致。以下是多种可立即生效的强制保存方法:
一、使用:wq!强制覆盖保存
该方法适用于文件本身具有写入权限但vi/vim因元数据识别为只读的情形,命令会忽略只读警告并尝试写入磁盘。
1、按下Esc键,确保退出插入模式,进入正常模式。
2、输入:wq!并按回车键。
3、若当前用户对文件所在目录具备写权限,且文件系统非只读挂载,操作将成功保存并退出。
二、使用:w !sudo tee %强制提权写入
该方法绕过vi/vim的权限检查机制,利用shell管道将缓冲区内容通过sudo权限的tee命令重写至原文件,适用于普通用户无文件写权限但拥有sudo权限的场景。
1、按下Esc键返回正常模式。
2、输入:w !sudo tee %并按回车键。
3、系统将提示输入当前用户密码,正确输入后,tee命令将把编辑内容写入当前文件路径(%代表当前文件名)。
4、此时文件内容已更新,但vi/vim仍处于打开状态;如需退出,再输入:q即可。
三、先修改文件权限再保存
该方法直接解决根本原因——文件缺少写权限,适用于用户对文件有所有权或能获取root权限的情况,修改后可使用常规:wq保存。
1、在vi/vim中按下Esc键,输入:!chmod +w %并回车,临时为当前文件添加写权限。
2、若提示权限拒绝,切换至终端执行:sudo chmod +w /path/to/current/file。
3、返回vi/vim,输入:wq保存退出。
四、通过sudo直接以root身份重开文件
该方法避免权限适配问题,以root用户身份重新加载文件进行编辑,确保全程具备完全控制权,适用于系统配置文件等关键只读文件。
1、退出当前vi/vim(输入:q!放弃未保存更改)。
2、在终端中执行:sudo vim /path/to/file(将/path/to/file替换为实际路径)。
3、编辑完成后,按Esc键,输入:wq即可保存并退出。
五、检查并修复挂载点只读状态
当文件位于U盘、移动硬盘或挂载目录时,即使文件权限正确,若整个挂载点被系统设为只读(ro),所有写操作均会失败。必须先确认并修正挂载选项。
1、在终端运行:mount | grep $(df . | tail -1 | awk '{print $1}'),查看当前文件所在设备的挂载参数是否含ro。
2、若存在ro,尝试重新挂载为读写:sudo mount -o remount,rw /mount/point(将/mount/point替换为实际挂载路径)。
3、挂载成功后,回到vi/vim中执行:wq即可保存。










