: 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?


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


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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.