Vimでスクリプトを作成していて、sudoeditを使い始めたところです。 。
問題は、:wの場合です 一時ファイルに書き込まれるため、エディターを終了しない限り、スクリプトのテストは実行できません。
オリジナルの更新を強制するにはどうすればよいですか、またはsudoeditのポイントが欠落していますか? ?
承認された回答:
sudoedit 独自のユーザーIDで実行されているエディターでファイルを編集できます。ファイルを一時ファイルにコピーし、エディターが書き込めるようにします。エディターを閉じるとすぐに、編集したファイルがコピーされます。
エディターの実行中に変更を自動的に書き戻す組み込みの可能性はありません。
したがって、どちらかが必要です
- 他のユーザーIDでエディターを実行します(例:
sudo vi /file/to/edit) - ファイルを手動で(別の)シェルにコピーして戻します(
sudo cp /tmp/... /file/to/edit)またはvim:!sudo cp % /file/to/editの内部から 。 vimから、:shでシェルを開始することもできます または、Ctrl + Zを使用してvimをバックグラウンドに置き、fgを使用して復元します。 。 - https://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-workを使用
- 独自のバージョンの
sudoeditを作成する 一時ファイルが変更されるとすぐに変更を書き戻します。これは、いくつかのスクリプトで簡単に実行できるはずです。 Inotifyは、変更を検出するのに役立ちます(たとえば、bashスクリプトをファイルにフックできますか?)