在以普通用戶打開的VIM當中以root保存

  1. :w !sudo tee %

這題目讀起來糾結,其實是很常見的,常常忘記了sudo 就直接用vim 編輯/etc 內的文件,(不過也不一定,vim 發現保存的文件無法保存時候會提示)等編輯好了,保存時候才發現沒權限。曲線方法是先保存個臨時文件,退出後再sudo cp 回去。不過實際上在vim 裏面可以直接完成這個過程的,命令就是如此。
查閱vim 的文檔(輸入:help :w),會提到命令:w!{cmd},讓vim 執行一個外部命令{cmd},然後把當前緩衝區的內容從stdin 傳入。

tee 是一個把stdin 保存到文件的小工具。而%,是vim 當中一個只讀寄存器的名字,總保存着當前編輯文件的文件路徑。

所以執行這個命令,就相當於從vim 外部修
改了當前編輯的文件,好完工。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章