¿Cómo se obtiene acceso sudo para un archivo dentro del editor de texto vi? [cerrado]

Resuelto Paul Wicks asked hace 16 años • 10 respuestas

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.

Paul Wicks avatar Aug 04 '08 10:08 Paul Wicks
Aceptado

%se reemplaza con el nombre del archivo actual, por lo que puede usar:

:w !sudo tee %

( vimDetectará 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.

 avatar Aug 31 '2008 19:08

En general, no puedes cambiar la identificación de usuario efectiva del proceso vi, pero puedes hacer esto:

:w !sudo tee myfile
Mark Harrison avatar Aug 04 '2008 06:08 Mark Harrison