Ubuntu – :wq in Vim does not save

vim

I am trying to use :wq to save a text file I have edited in Vim, but when I enter :wq I get the error

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

When I add ! to :wq like :wq!, I get this:

"/etc/dhcp/dhcpd.conf"

"/etc/dhcp/dhcpd.conf" E212: Can't open file for writing

The file I want to edit is dhcpd on the /etc/dhcpd path.

How can I do this?

Best Answer

You need to open the file using superuser permissions as follows:

sudo vi /etc/dhcp/dhcpd.conf

edit the file by pressing i and then save and exit by pressing Esc and then either :wq or :x or just :w to save.


Thanks to Riking for suggesting sudoedit: you can use sudoedit /path/to/file/filename for editing files owned by root rather than using sudo <editor> /pat/to/file/filename. This is useful for enterprise-level machines or production machines since sudoedit logs to /var/log/auth.log.

If you want to change the default editor for sudoedit, do the following:

sudo update-alternatives --config editor

and then press Return and choose the editor of your choice and again press Return.


See also: A discussion on redit on why sudoedit may be advantegeous

Related Question