13

Possible Duplicate:
vim re-edit as root

I could have sworn I saw this question asked. But after looking though every search result for "vi" I'm stumped/lazy.

I've opened a file, made an edit and now I realize it's read only and I've opened it as non-root me.

MathewC
  • 6,877
  • 9
  • 38
  • 53

4 Answers4

34

I think you want something like this:

:w !sudo tee "%"

I first saw it on commandlinefu. The quotes are only necessary if the file path contains spaces.

Anthony Lewis
  • 909
  • 7
  • 8
2

i do this occasionally, and if the changes i've made are trivial, i just exit and edit it again as root.

otherwise i save the file to /tmp, and mv/cp it as root to where it really belongs later. and use chown/chgrp/chmod to fix the ownership/perms.

cas
  • 6,653
  • 31
  • 34
  • 1
    Rather than cp/mv and chown etc., you could 'sudo cat tmpfile > realfile && rm -f tmpfile', to keep the ownership and perms of the original but give it new contents. – mlp Jul 12 '09 at 07:58
1

consider adding this line to your vimrc:

" Remaps :SW to sudo save the current file and tell vim to reload it
command SW execute 'w !sudo tee % >/dev/null' | e! %
Jenny D
  • 27,358
  • 21
  • 74
  • 110
0

Try this http://blog.sriunplugged.com/2009/12/how-to-save-file-in-vi-not-opened-with-sudo/ . This is what you want i guess