/etc
で設定ファイルの編集を開始することがあります Vimを使用していますが、sudo
の使用を忘れてください Vimを起動します。必然的な結果として、編集を終えた後、ファイルを保存する権限がないという恐ろしい通知に遭遇します。
ほとんどの場合、編集は十分に小さいので、Vimを終了して、rootとしてすべてをやり直します。もちろん、書き込み可能な場所に保存してからrootとしてコピーすることもできますが、それもやや面倒です。
ただし、rootになるか、sudo
を使用する簡単な方法があると確信しています。 変更を破棄することなく、Vimの内部から。メソッドがsudo
に依存しない場合 さらに良いユーザーのために設定されています。
承認された回答:
sudoは、既存のプロセスの有効なユーザーを変更できません。常に、昇格された特権を持つ新しいプロセスを作成し、元のシェルは影響を受けません。これはUNIX設計の基本です。ほとんどの場合、回避策としてファイルを/tmpに保存します。本当に直接保存したい場合は、ファイルを別のプロセスにパイプできるVimの機能を使用してみてください。次のコマンドで保存してみてください:
:w !sudo dd of=%
テストされ、動作します。 Vimはファイルをリロードするように要求しますが、それは不要です。 oを押すだけです。 再読み込みして元に戻る履歴が失われないようにするため。これをVimコマンド/関数に保存したり、簡単にアクセスできるようにキーにバインドしたりすることもできますが、これは読者の練習問題として残しておきます。