15

Sometimes when I edit a file which require root permission (e.g. files under /etc), but I forget run vim as sudo.

After edit finished, and type :wq to save and leave, I find I can't, even using !wq, because the file is readonly.

If I leave and re-edit the file, all my work will lost, but if not, I cannot save my edit. So, how can I gain root permission to write without leaving vim?

Yongqiang Zhou
  • 322
  • 1
  • 12

2 Answers2

24

To force a save use the following command

:w !sudo tee %

It will prompt you for your password.

darryn.ten
  • 6,784
  • 3
  • 47
  • 65
3

The mentioned trick with tee is nice; if you need this often I'd recommend the SudoEdit plugin, which offers a :SudoWrite command (and even a sudo: protocol handler).

Ingo Karkat
  • 167,457
  • 16
  • 250
  • 324