Estoy haciendo algunas secuencias de comandos con Vim y acabo de empezar a usar sudoedit
.
El problema es que cuando :w
escribe en el archivo temporal, por lo que no se puede realizar ninguna prueba del script a menos que cierre el editor.
¿Cómo puedo forzar una actualización del original, o me estoy perdiendo el punto de sudoedit
? ?
Respuesta aceptada:
sudoedit
le permite editar un archivo con un editor que se ejecuta en su propia identificación de usuario. Copia el archivo a un archivo temporal en el que su editor puede escribir. Tan pronto como se cierra el editor, el archivo editado se vuelve a copiar.
No existe la posibilidad integrada de volver a escribir automáticamente los cambios mientras el editor aún se está ejecutando.
Así que necesitas cualquiera
- ejecutar el editor en la otra identificación de usuario (por ejemplo,
sudo vi /file/to/edit
) - copie el archivo manualmente en un shell (separado) (
sudo cp /tmp/... /file/to/edit
) o desde dentro de vim:!sudo cp % /file/to/edit
. Desde vim también puede iniciar un shell con:sh
o pon vim en segundo plano con Ctrl+Z y restáuralo confg
. - use https://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work
- crea tu propia versión de
sudoedit
que vuelve a escribir los cambios tan pronto como se modifican los archivos temporales. Esto debería ser fácilmente factible con algunas secuencias de comandos. Inotify puede ayudarlo a detectar cambios (consulte, por ejemplo, ¿Se puede vincular un script bash a un archivo?)