有時使用vim時忘記輸入sudo,導致編輯了一大堆文字,最後儲存時發現是隻讀檔案,無法儲存,每次儲存都會提示read only。這時可以使用如下命令代替原有的 :wq 命令
:w !sudo tee %
命令:w !{cmd},讓 vim 執行一個外部命令{cmd},然後把當前緩衝區的內容從 stdin 傳入。
tee 是一個把 stdin 儲存到檔案的小工具。
%是vim當中一個只讀暫存器的名字,總儲存著當前編輯檔案的檔案路徑。
所以執行這個命令,就相當於從vim外部修改了當前編輯的檔案。
參考:
https://www.cnblogs.com/foolishnoob/p/5452052.html