Blog de Felipe Jaramillo Fonnegra

300 Baudios

Guardar un archivo con otro usuario en Vim

Este es uno de los problemas que me molesta mucho cuando uso vim y veo que le pasa a casi todos los desarrolladores.

El caso es simple, abrimos un archivo en vim con un usuario que no tiene permisos suficientes para guardarlo, pero sí para leer. Y no nos damos cuenta.

‘vi’ nos dice que es read-only (solo lectura) pero seguimos editando. Después de varios minutos le damos guardar con :w y nos dice E212: Can't open file for writing. Normalmente debemos salir y volver a editar el archivo con más permisos, usualmente con sudo vi [nombre de archivo]

Encontré la respuesta gracias a Adam Culp (el de la foto). Adam es el creador de la conferencia SunshinePHP y ahora miembro del equipo de Zend.

La solución: :w !sudo tee %

Así de fácil. Sin salir y en el editor, fuera de modeo inserción (usar la tecla ESC) debemos escribir:

:w !sudo tee %

Con whisky, ¡sudo té al 100%!.

No encontré una mejor manera de recordarlo, pero con esa frase evito que se me olvide:

Con whisky sudo te al 100%.