: wq en Vim no guarda

8

Estoy tratando de usar :wqpara guardar un archivo de texto que he editado en Vim, pero cuando entro :wqme sale el error

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

Cuando agrego !a me :wqgusta :wq!, obtengo esto:

"/etc/dhcp/dhcpd.conf"

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

El archivo que quiero editar está dhcpden la /etc/dhcpdruta.

¿Cómo puedo hacer esto?

Mohammad Reza Rezwani
fuente
Prefiero :xo ZZpara salir y guardar. Solo escribirá sobre el cambio.
Hauleth

Respuestas:

14

Debe abrir el archivo con permisos de superusuario de la siguiente manera:

sudo vi /etc/dhcp/dhcpd.conf

editar el archivo pulsando iy luego en Guardar y salir pulsando Escy luego o :wqo :xo simplemente :wpara ahorrar.


Gracias a Riking por sugerir sudoedit: puede usar sudoedit /path/to/file/filenamepara editar archivos propiedad de root en lugar de usar sudo <editor> /pat/to/file/filename. Esto es útil para máquinas de nivel empresarial o máquinas de producción, ya que sudoedit se registra en /var/log/auth.log.

Si desea cambiar el editor predeterminado para sudoedit, haga lo siguiente:

sudo update-alternatives --config editor

y luego presione Returny elija el editor de su elección y nuevamente presione Return.


Ver también: Una discusión sobre redit sobre por qué sudoedit puede ser ventajoso

Jobin
fuente
3
Prefiero sudoeditestas situaciones: crea una copia temporal, ejecuta el editor y copia el resultado. Si previamente eligió nanoese comando, ejecute EDITOR=vi sudoedit /etc/file.
Riking
1
@Riking: Gracias por sudoedit, ni siquiera sabía que existía. Sin embargo, me encontré con esto mientras buscaba en Google sudoedit. Lo sugeriré, pero déjelo al usuario si lo considera necesario.
trabajo en
sudoedittambién recoge la EDITORvariable, es más fácil establecer eso que configurar alternativas
muru
9

/etcconsta de todos los archivos de configuración, por lo que para editar los archivos bajo los /etcque necesita los permisos de superusuario, pero en algún momento nos olvidamos de usarlos sudo. pero en ese momento también podemos usar

:w !sudo tee %

luego ingrese su contraseña de administrador

:q!

salir con éxito

Aditya Jangid
fuente
1
Puede agregar cmap w!! w !sudo tee > /dev/null %a su .vimrcpara permitir guardar a través de este método con :w!!. Si le interesa saber por qué funciona este método, consulte stackoverflow.com/questions/2600783/…
Gerhard Burger el