我发现vim
,如果我尝试编辑一个文件,而作为普通用户我没有写权限,即使我使用sudo
,我也无法写入它,但如果我使用nano
编辑同一个文件,它就可以工作。
例如如果我这样做:
sudo vim /var/path/to/file.conf
我将在文件中得到此信息但无法编辑该文件:
"/var/path/to/file.conf" [readonly]
但如果我这样做:
sudo nano /var/path/to/file.conf
它将能够写入文件,为什么会这样,为什么不像 那样sudo
授予写入权限?这是某种错误吗?还是这只是注定要发生的事情?因为这很烦人。vim
nano
操作系统信息:
Description: Ubuntu 15.04
Release: 15.04
封装信息:
vim:
Installed: 2:7.4.488-3ubuntu2
Candidate: 2:7.4.488-3ubuntu2
Version table:
*** 2:7.4.488-3ubuntu2 0
500 http://gb.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
100 /var/lib/dpkg/status
答案1
这是 vim(和 vi)的预期行为。
当您编辑只读文件时,尝试以通常的方式(使用 )写入文件:w
会失败。这是为了防止您意外更改您可能不想更改的只读文件。
如果你真的想要覆盖您拥有的文件的只读权限,并将更改写入文件,您必须使用:w!
命令所以 vim 知道这是你想要的。
- 这类似于
:q
如果有未保存的更改则不会退出,但:q!
会退出。
如果您想在一个命令中写入任何更改并退出,则可以使用:wq!
或:x!
。