vimでreadonlyのファイルを編集後、sudoで強制的に上書き保存する方法。
readonly (読み込み専用) のファイルを忘れて編集
readonly (読み込み専用) のファイルを開きました。
そのまま、いろいろと編集を行いました。
保存しようとしました。
あ、sudoで開くの忘れていた、保存できない。。
大量に編集してしまった時は、ショックが大きい。
なかった事にしてやり直すことなど、出来れば避けたいです。
解決策
そんな時の解決策があります。
readonly のまま編集してしまったファイル(バッファ)を sudo を使って強制的に保存する方法です。
コマンドモードで下記を実行します。
1 |
:w !sudo tee % |
w : ファイルの保存
!sudo tee : ! にて コマンド「sudo tee」を指示
% : 現在開いているファイル
このようにすると、現在開いているファイルに対して、tee コマンドで強制的に上書きすることになります。
上記を実行後は
1 |
:q! |
で終了します。
編集内容は保存されています。
コメント