Vim 强制保存只读类型文件的方法
<p><span><strong>发现问题:</strong></span></p>
<p>
在使用vim时,当我们以普通用户去打开一个只有root用户才有权限操作的文件时,我们编辑完成之后,正要保存,却发现,这个文件我们没有权限修改。</p>
<p>
每次遇到这样的问题,我都很头疼,好不容易把文件编辑完了,却无法保存,就只能放弃,然后退出,再以root权限打开,重新编辑。</p>
<p>
我总是相信,所有的问题都有解决的方法。通过查阅资料,终于解决了这个问题。</p>
<p>
<span><strong>解决方案:</strong></span></p>
<p>
底行命令模式执行:<code> :w !sudo tee %</code></p>
<p>
w: 表示保存文件</p>
<p>
!: 表示执行外部命令</p>
<p>
tee: linux命令,这个有点复杂,可以查看linux命令帮助</p>
<p>
%: 在执行外部命令时,%会扩展成当前文件名;这个%区别于替换时的%,替换时%的意义是代表整个文件,而不是文件名</p>
<p>
上述方式非常完美的解决了不能保存只读文件的问题,但毕竟命令还是有些长,为了避免每次输入一长串的命令,可以将它映射为一个简单的命令加到 .vimrc 中:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_787372">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">" Allow saving of files as sudo when I forgot to start vim using sudo.</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain spaces"> </code><code class="plain plain">cmap w!! w !sudo tee > /dev/null %</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
这样,简单的运行<code>:w!!</code>即可。命令后半部分<code>> /dev/null</code>作用为显式的丢掉标准输出的内容。</p>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是关于Vim强制保存只读文件的方法,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。</p>
<p>
原文链接:http://kuanghy.github.io/2015/12/30/sudo-vim</p>
頁:
[1]