vim で 読み取り専用ファイルを強制保存する

1. sudo で開いた場合

1) sudo vim filename
2) 編集する
3) :wq

2. sudo なしで開いた場合編集→コマンドモードで強制保存

1) vim filename
2) 編集する
3) :w !sudo tee %

  • w: 内容を保存する
  • !sudo tee: 「:w」の内容を「!sudo tee」で受け取ることができる
    • !: 「!」をつけるとVim エディタで Linuxコマンドが実行できるようになる
    • sudo: 管理者権限で実行する
    • tee: ファイルの出力と標準出力を同時に行うコマンド。sudo と組み合わせるとファイルを上書き保存する
  • %: 現在のファイル名を指定する

4) q!