You're viewing a comment by Joey Hewitt and its responses.

Joey Hewitt Permalink
March 09, 2014, 23:27

Here's one way to get the redirection to happen in a priveleged shell:

:w !sudo sh -c "cat > %"

Warning though, this may need some escaping to ensure strange characters in the filename are passed through correctly. Does the tee solution need escaping?

Also, IMO :cmap is not a good fit for this. Now if I want to search for the string "sudow" in my buffer (by typing "/sudow") it gets expanded. It is also strange in that whenever you type an "su" in command mode, there is a delay to see if the mapping is being used. (Workaround is to insert a pause in your typing so that vim knows you are not using the mapping -- see "timeout" and "timeoutlen" options.)

Igor Mikushkin's solution works for me. The one annoyance is that user-defined commands such as this have to start with an uppercase letter.

Anyway, I have also wrestled with this problem of editing protected files, so it's good to have a solution, thanks!

Reply To This Comment

(why do I need your e-mail?)

(Your twitter handle, if you have one.)

Type the word "computer_417": (just to make sure you're a human)

Please preview the comment before submitting to make sure it's OK.