命令说明

时间:2011-10-04 19:19:19

标签: linux vim command

  

可能重复:
  How does the vim “write with sudo” trick work?

很多时候我发现自己处于这样一种状态,我最终在vi编辑器中编辑了我没有权限的文件。因此,我们必须将内容复制到其他文件中,并通过更改权限将其复制回原始文件。但我通过搜索网络找到了一个解决方案,我们可以发出命令:w!sudo tee%,而且不需要来回复制。谁能解释一下这是怎么回事!!

2 个答案:

答案 0 :(得分:6)

让我们看看......

:w !{cmd}

执行{cmd},将当前缓冲区输入其标准输入。

此处{cmd}sudo tee %。这会将tee {filename}作为root执行,其中{filename}是您正在编辑的文件的名称。该命令将其标准输入(即vim缓冲区的内容)写入文件,root

干净的技巧,BTW。

答案 1 :(得分:3)

您正在将文件写入命令的STDIN:

sudo tee %

sudo升级你的权限并且tee将STDIN写入文件(在执行命令之前%被vim替换为当前文件名)