如何在Linux/Unix上以只读模式在vim中打开文件

时间:2020-01-09 10:40:33  来源:igfitidea点击:

如何以读取(只读)模式打开必要的文件,以避免意外编辑诸如/etc/resolv.conf或生产服务器上的大型配置文件或编程文件之类的文件。
在Linux或类似Unix的系统上,如何在vim文本编辑器中以只读模式打开文件?
您可以以只读模式启动vim或vi文本编辑器。
您将受到保护,无法写入文件。
在vim中有多种方法可以实现写保护模式。

如何以只读模式打开文件:

  • 在vim中使用view命令。语法是:view {file-name}
  • 使用vim/vi命令行选项。语法是:vim -R {file-name}
  • 使用命令行选项不允许修改:语法为:vim -M {file-name}

选项

最简单的语法是:

$ view my-important.file

如果尝试写,将出现以下错误:

E45: 'readonly' option is set (add ! to override)

因此,只需添加!强制覆盖它:

:w!

或者

:x!

-R选项强制为只读模式。
将设置只读选项。
您仍然可以编辑缓冲区,但是可以防止意外覆盖文件。
如果确实要覆盖文件,请在Ex命令中添加一个感叹号,如:w!:x!一样。

# vim -R /etc/httpd/httpd.conf

如果您进行了某些修改并想要强行保存,请执行:

:w!

-m选项强制修改文件为禁用模式。
重置写选项。
您仍然可以修改缓冲区,但是根本无法写入文件:

$ vim -m mycode.py

-M选项强制取消可修改和写入选项的设置,因此不允许进行更改并且不能写入文件。

$ vim -M my-service.sh

如果尝试插入或修改文本,则会在屏幕上出现错误,E21:不能进行更改,可修改处于关闭状态:
使用-M选项以只读模式在vim中的选项卡中打开文件

关于在vim/vi中以只读模式打开选项卡的说明

语法如下所示,以打开一个新选项卡:

:tab sview file

或在同一窗格中打开:

:view file

例如,以只读模式编辑/etc/nginx/nginx.conf:

$ sudo vim -M /etc/nginx/nginx.conf

现在,在新选项卡中以只读模式打开一个名为/etc/nginx/conf.d/theitroad.local.conf或/etc/nginx/conf.d/default.conf的文件,使用:

:tab sview /etc/nginx/conf.d/default.conf

要转到下一个标签类型:

:tabn

要转到上一个标签类型:

:tabp

要列出所有选项卡,请执行:

:tabs