Cómo guardar archivos como root en vim.
A veces me he encontrado con que edito un archivo con vim sin haber usado sudo, y luego no puedo guardarlo, con un error en pantalla al ejecutar :wq! que dice algo similar a "advertencia: cambiando un archivo de solo lectura".
Si hemos podido leer el fichero significa que podemos guardarlo con otro nombre; no hace falta salir y editar el fichero con sudo. Vim permite hacer esto usando el comando:
:w otro_nombre
No obstante, esta no es la mejor opción, dado que tendríamos que ejecutar una instrucción adicional para reemplazar el archivo que estamos editando:
!sudo mv otro_nombre %
% equivale a poner la ruta del archivo que estamos editando.
! al principio indica a vim que ejecute una instrucción usando el intérprete del sistema.
Para evitar tener que escribir dos instrucciones, podemos ejecutar la siguiente instrucción, todo en uno:
:w!sudo dd of=%
:w ! lo que sigue a ! se ejecuta tomando el búfer (es decir, el archivo) como entrada estándar.
sudo nos permite ejecutar la instrucción con permisos de root.
dd of=% toma la entrada estándar y escribe su contenido en el archivo que estamos editando.
Como usamos sudo, deberemos introducir nuestra contraseña. Luego pulsamos O y despúes Enter.
Como vim permite guardar comandos personalizados, podemos crear el siguiente comando:
cmap w!! w !sudo dd of=%
Así, la próxima vez que editemos un archivo sin haber usado sudo, bastará con ejecutar:
:w!!
Esto nos permitirá guardarlo sin problemas.
0 comentarios:
Publicar un comentario