GNU/Linux >> Znalost Linux >  >> Linux

Sudoedit Vim Force Write (aktualizace) bez ukončení?

Dělám nějaké skripty s Vim a právě jsem začal používat sudoedit .

Problém je, když :w zapisuje se do dočasného souboru, takže žádné testování skriptu nemůže proběhnout, dokud neukončím editor.

Jak mohu vynutit aktualizaci originálu, nebo mi uniká smysl sudoedit ?

Přijatá odpověď:

sudoedit umožňuje upravovat soubor pomocí editoru běžícího na vašem vlastním uživatelském ID. Zkopíruje soubor do dočasného souboru, do kterého může váš editor zapisovat. Jakmile se editor zavře, upravený soubor se zkopíruje zpět.

Neexistuje žádná vestavěná možnost automatického zápisu změn zpět, když je editor stále spuštěný.

Takže potřebujete buď

  • spusťte editor na jiném ID uživatele (např. sudo vi /file/to/edit )
  • zkopírujte soubor ručně zpět do (samostatného) shellu (sudo cp /tmp/... /file/to/edit ) nebo zevnitř vim :!sudo cp % /file/to/edit . Z vim můžete také spustit shell pomocí :sh nebo umístěte vim na pozadí pomocí Ctrl+Z a obnovte jej pomocí fg .
  • použijte https://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work
  • vytvořte si vlastní verzi sudoedit který zapisuje změny zpět, jakmile se změní dočasné soubory. To by mělo být snadno proveditelné pomocí nějakého skriptování. Inotify vám může pomoci detekovat změny (viz například Může být bash skript připojen k souboru?)

Linux
  1. Přesouvání souborů na Linuxu bez mv

  2. Zapsat do souboru .txt?

  3. Odstraňte soubor bez dotazu

  1. Jak mohu zapisovat soubory na USB, aniž bych byl root?

  2. Použití vim k vynucení úprav souboru při otevření bez oprávnění

  3. Je možné připojit a upravit soubor zpětné smyčky bez sudo/root?

  1. Jak ukončit (ukončit) editor Linux Vim/Vi

  2. Číst a zapisovat do stejného souboru v Linuxu bez přepisování?

  3. Textový editor, který aktualizuje soubor bez vyzvání?