Era un poco complicado poner título a esta entrada, no obstante seguro que a todos nos ha pasado que comenzamos a editar un fichero desde vim o vi y a la hora de grabar nos damos cuenta que no tenemos privilegios para guardarlo (ya sea porque es propietario root u otro usuario), recibimos un error similar a:
W10: Advertencia: cambiando un fichero de sólo lectura 58,1 Final
E45: Está activa la opción «readonly» (añada «!» para forzar).
E212: No puedo abrir el fichero para escribir en él.
Si tenemos la posibilidad de hacer uso de sudo con nuestro usuario, la solución para poder grabar el fichero sin necesidad de salir de vim es del siguiente modo. Tenemos que entrar en modo comandos (ESC) y ejecutar lo siguiente:
:w !sudo tee % [sudo] password for alex:
Nos pedirá la clave de sudo y podremos guardar el fichero ;)
¡Genial aporte! (gracias)
Y yo limitándome a :w /tmp/copia.txt y luego copiarlo al sitio correcto :)
Elegante. Cuantas veces tuve que repetir lo ya hecho en vi, todo por los «!»#$$#*&% permisos.
Gracias por el aporte.
Vale, pero y cuando no tienes la posibilidad de introducir la clave del sudo? Como puedo salir de vim aunque sea sin guardar los cambios?