Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.
I am doing a startup!
Cross-browser testing from your browser!
I have written my fourth book!
Be faster than Larry Wall in the shell!
You're viewing a comment by Trey and its responses.
Why not use cat instead of tee?
Because cat only produces output to stdout, and redirections are setup before the command is run in privileged environment.
If you use cat, the command would need to be "!sudo cat > %"
The redirection is what writes the file, but that runs as the calling shell, only the cat command is being run by the superuser, so it will fail to write the file.
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!
(why do I need your e-mail?)
It would be nice if you left your e-mail address. Sometimes I want to send a private message, or just thank for the great comment. Having your e-mail really helps.
I will never ever spam you.
(Your twitter handle, if you have one.)
* use <pre>...</pre> to insert a plain code snippet.
* use <pre lang="lang">...</pre> to insert a syntax highlighted code snippet.
For example, <pre lang="python">...</pre> will insert Python highlighted code.
* use <code>...</code> to highlight a variable or a single shell command.
* use <a href="url" nospam>title</a> to insert links.
<a href="url" nospam>title</a>
* use other HTML tags, such as, <b>, <i>, <blockquote>, <sup>, <sub> for text formatting.
Type the word "apple_417": (just to make sure you're a human)
Please preview the comment before submitting to make sure it's OK.
Peter Krumins' blog about programming, hacking, software reuse, software ideas, computer security, browserling, google and technology.
Reach me at:
Or meet me on:
Subscribe through an RSS feed:
Subscribe through email:
Enter your email address:
Delivered by FeedBurner
See all top articles
See all downloads
See more detailed list of recent articles
See more detailed category information
See more detailed list of all articles