Sudoedit Vim終了せずに強制書き込み(更新)

Sudoedit Vim終了せずに強制書き込み(更新)

私はVimを使っていくつかのスクリプトを書いていますsudoedit

問題は、:w一時ファイルに書き込むときにエディタを終了しない限り、スクリプトテストが発生しないことです。

元のバージョンに強制更新するにはどうすればよいですか?それともポイントを見逃しているのですかsudoedit

ベストアンサー1

sudoedit独自のユーザーIDで実行されているエディタを使用してファイルを編集できます。ファイルを一時ファイルにコピーし、編集者が書き込むことができます。エディタが閉じると、編集したファイルが再度コピーされます。

エディタの実行中に変更を自動的に書き換える機能は組み込まれていません。

だからあなたは必要です

  • 別のユーザーIDでエディタを実行する(例sudo vi /file/to/edit:)
  • (別途)シェル(sudo cp /tmp/... /file/to/edit)またはvim内から手動でファイルをコピーします:!sudo cp % /file/to/edit。 vimでは、Ctrl + Zを使用してシェルを起動する:shか、vimをバックグラウンドにしてからを使用して再起動することもできますfg
  • 使用https://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work
  • sudoedit一時ファイルが変更されたら、変更を書き換える独自のバージョンを作成します。これはいくつかのスクリプトで簡単に可能です。 Inotifyは変更を検出するのに役立ちます(例を参照)。Bashスクリプトをファイルにリンクできますか?)

おすすめ記事