GNU/Linux >> Linux の 問題 >  >> Linux

Sudoedit Vim Force Write(update)終了せずに?

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

Linux
  1. Linuxで上書きせずに同じファイルを読み書きしますか?

  2. .txt ファイルに書き込みますか?

  3. アクセス許可なしで開いたときにvimを使用してファイルを強制的に編集する

  1. Linuxでmvなしでファイルを移動する

  2. プロンプトなしでファイルを更新するテキストエディタ?

  3. 確認せずにファイルを削除する

  1. Linux Vim / Viエディターを終了(終了)する方法

  2. root にならずに USB にファイルを書き込むにはどうすればよいですか?

  3. sudo / rootなしでループバックファイルをマウントして変更することは可能ですか?