在 vim 中浏览核心系统文件时,应通过 vim -r 或 view 命令启动只读模式,或运行中执行 :set readonly 或 :set nomodifiable 锁定编辑;状态栏显示 [readonly],:w 将报错 e21;退出用 :q 或 :q!;敏感文件可叠加 chmod a-w 系统级只读防护。

在 Vim 中浏览 /etc/passwd、/etc/fstab 等核心系统文件时,启用只读模式是防止误保存修改的最直接手段。Vim 本身不依赖插件即可实现真正只读——关键在于启动方式和状态控制。
启动时强制只读打开
用 vim -R filename 或 view filename 命令打开文件,Vim 会以只读模式启动:
-
-R参数让 Vim 忽略文件写权限,全程禁用写入操作(包括:w) -
view是 Vim 的只读专用入口,本质等价于vim -R - 状态栏会显示 [readonly],且尝试
:w会提示 E21: Cannot make changes, 'modifiable' is off
运行中切换为只读状态
若已普通方式打开文件,可立即补救:
- 输入
:set readonly—— 立即锁定编辑能力,但允许移动光标、搜索、跳转 - 输入
:set nomodifiable—— 比 readonly 更严格,连撤销(u)、替换(r)等非保存类修改也禁止 - 两者可组合使用:
:set ro noma,确保万无一失
验证与退出保障
只读设置生效后,需确认并安全退出:
- 用
:set readonly?查看是否启用(返回 readonly 表示已开启) - 退出时用
:q即可;若误改过内容,Vim 不会提示保存,直接退出 - 想强制放弃所有更改并退出:输入
:q!(即使未设只读也有效)
配合系统级只读更稳妥
对极敏感文件(如 /boot/grub/grub.cfg),建议叠加操作系统层防护:
- 临时移除写权限:
sudo chmod a-w /path/to/file,Vim 自动识别并进入只读状态 - 查看权限是否生效:
ls -l /path/to/file,确认末位无w - 操作完恢复权限:
sudo chmod u+w /path/to/file(仅限必要时)











