Sto facendo degli script con Vim e ho appena iniziato a usare sudoedit
.
Il problema è che quando :w
scrive nel file temporaneo, quindi qualsiasi test dello script non può essere eseguito a meno che non esca dall'editor.
Come posso forzare un aggiornamento dell'originale, o mi manca il punto di sudoedit
?
Risposta accettata:
sudoedit
ti consente di modificare un file con un editor in esecuzione sul tuo ID utente. Copia il file in un file temporaneo in cui il tuo editor può quindi scrivere. Non appena l'editor viene chiuso, il file modificato viene ricopiato.
Non esiste la possibilità incorporata di riscrivere automaticamente le modifiche mentre l'editor è ancora in esecuzione.
Quindi hai bisogno di entrambi
- esegui l'editor sull'altro ID utente (ad es.
sudo vi /file/to/edit
) - copia il file manualmente in una shell (separata) (
sudo cp /tmp/... /file/to/edit
) o dall'interno di vim:!sudo cp % /file/to/edit
. Da vim puoi anche avviare una shell con:sh
oppure metti vim in background con Ctrl+Z e ripristinalo confg
. - usa https://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work
- crea la tua versione di
sudoedit
che riscrive le modifiche non appena i file temporanei vengono modificati. Questo dovrebbe essere facilmente realizzabile con alcuni script. Inotify può aiutarti a rilevare le modifiche (vedi ad esempio Uno script bash può essere agganciato a un file?)