在 Vim 内 sudo 保存文件

有时候未使用 root 用户在一些较为重要的目录下使用 Vim 编辑文件时,往往会因为权限不足而无法保存,而退出去 sudo 后重新编辑又比较浪费时间。这个时候需要在 Vim 中执行下面这个命令,就可以在不退出 Vim 的前提下 sudo 保存文件。

1
:w !sudo tee %

:w 在 Vim 中是保存文件,这是毫无疑问的。

!后面跟一个命令,表示让 Vim 执行一个外部命令。

tee 是一个把 stdin 保存到文件的小工具,具体用法是:

1
tee {filename}

就能将 stdin 流保存到指定的文件中。

% 是 Vim 当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。