¿Cómo se obtiene acceso sudo para un archivo dentro del editor de texto vi? [cerrado]
A menudo, mientras edito archivos de configuración, abro uno con vi y luego, cuando voy a guardarlo, me doy cuenta de que no escribí
sudo vi filename
¿Hay alguna forma de otorgar privilegios a vi sudo para guardar el archivo? Creo recordar haber visto algo sobre esto mientras buscaba algunas cosas sobre vi hace un tiempo, pero ahora no puedo encontrarlo.
%
se reemplaza con el nombre del archivo actual, por lo que puede usar:
:w !sudo tee %
( vim
Detectará que el archivo ha sido modificado y le preguntará si desea volver a cargarlo. Diga sí eligiendo en [L]
lugar de Aceptar).
Como atajo, puedes definir tu propio comando. Pon lo siguiente en tu .vimrc
:
command W w !sudo tee % >/dev/null
Con lo anterior puedes escribir :W<Enter>
para guardar el archivo. Desde que escribí esto, encontré una manera mejor (en mi opinión) de hacer esto:
cmap w!! w !sudo tee >/dev/null %
De esta manera, puede escribir :w!!
y se expandirá a la línea de comando completa, dejando el cursor al final, para que pueda reemplazarlo %
con un nombre de archivo propio, si lo desea.
En general, no puedes cambiar la identificación de usuario efectiva del proceso vi, pero puedes hacer esto:
:w !sudo tee myfile