在維護線上服務的時候,常常要編輯一些不屬於操做用戶的文件,就是隻有r權限的那種,每次保存都會提示read only。只能先記下來改了什麼,而後再退出,而後 sudo vim 再作保存。vim
下面的命令能夠不退出vim進程,直接用vim命令獲取sudo權限,而後直接保存文件。工具
1
|
:w !
sudo
tee
%
|
命令:w !{cmd},讓 vim 執行一個外部命令{cmd},而後把當前緩衝區的內容從 stdin 傳入。spa
tee 是一個把 stdin 保存到文件的小工具。code
而 %,是vim當中一個只讀寄存器的名字,總保存着當前編輯文件的文件路徑。進程
因此執行這個命令,就至關於從vim外部修改了當前編輯的文件。ci