:wq in Vim does not save
Solution 1
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
Solution 2
/etc
consists of all configurations files so to edit the files under /etc
you need the superuser permissions but sometime we forget to use sudo
.
but at that time we can also use
:w !sudo tee %
then enter your administrator password
:q!
to exit successfully
Comments
-
Mohammad Reza Rezwani over 1 year
I am trying to use
:wq
to save a text file I have edited in Vim, but when I enter:wq
I get the errorE45: '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?
-
Hauleth almost 10 yearsPrefer
:x
orZZ
to exit and save. It will write only on change.
-
-
Riking almost 10 yearsI prefer
sudoedit
for these situations - it creates a temporary copy, runs the editor, and copies the result. If you previously chosenano
for that command, runEDITOR=vi sudoedit /etc/file
. -
Sajesh Kumar almost 8 yearsYou can add
cmap w!! w !sudo tee > /dev/null %
to your.vimrc
to allow saving via this method with:w!!
. If you're interested in why this method works see stackoverflow.com/questions/2600783/… -
muru almost 8 years
sudoedit
also picks up on theEDITOR
variable, it's easier to set that than configure alternatives