Este es un problema de usabilidad que me sucede a menudo:
Abro un archivo de sistema de solo lectura con vim, incluso lo edito, porque no estoy lo suficientemente atento o porque el vim en el sistema está mal configurado. Una vez que mis cambios están hechos, me veo obligado a escribirlos en un archivo temporal o perderlos, porque: w! no funciona
¿Existe un comando vim (: W !!!) que le permite escribir el búfer actual como superusuario? (Vim pediría su sudo o su contraseña naturalmente)
sudoedit
comando. Esta pregunta se centra más en olvidarse de escribirla en primer lugar y elevarla después de iniciar el editor.Respuestas:
Explicación: Con
!
, puede ejecutar programas. Al prefijarlo con: w, el contenido del archivo (lo que tiene en vim, no el archivo original, más precisamente: el búfer) se le dará al comando en la entrada estándar.%
se reemplaza por el nombre del archivo y>/dev/null
evita que el contenido se vuelva a imprimir en la pantalla (que es el comportamiento habitual detee
).He encontrado un camino aún más corto.
dd
no se imprime en stdout para que pueda guardar lo nulo.
Lo mismo es para
:r
, que inserta la salida del comando dado, por lo que puede insertar, por ejemplo, la fecha actual en su archivo utilizando:r !date
fuente
Tratar:
fuente