みなさん、Vim使ってますか?
vimでファイルを編集し終わって、よし、保存しようと思い、
:w
E45: 'readonly' オプションが設定されています (! を追加で上書き)
「ああああ、sudo vimしてない」てなことが結構有ります。
そんな時には、このコマンドを使って無理やり保存してしまいます。
:w !sudo tee % > /dev/null
Vimコマンドでは、! がシェルコマンドの呼び出し、
% が編集中のファイル名です。
すなわち、root権限でteeを実行し、編集中のファイルと同名のファイルに無理やり書き込んでいるのです。
このコマンドを実行後に、「編集中に上書きされました」と警告が出ますが、気にせずそのまま「q!」で終了しても問題ありません。
変更は書き込まれています。
あまりにも重宝するので、僕は、.vimrcに以下の設定を加えて「w!!」にエイリアスしています。
cmap w!! w !sudo tee % > /dev/null
現場からは以上です。