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スクリプトをファイルにフックできますか?)