Vim
從 Vim 內部成為 root
有時我在
/etc
使用 Vim 時開始編輯配置文件,但忘記使用sudo
啟動 Vim。不可避免的結果是,在完成我的編輯後,我遇到了一個可怕的通知,即我沒有保存文件的權限。大多數編輯都足夠小,我只需退出 Vim 並以 root 身份再次執行整個操作。我當然可以保存到我可以寫入的位置,然後以 root 身份複製,但這也有點煩人。
但我確信有一種更簡單的方法可以
sudo
從 Vim 內部成為 root 或使用,而不必放棄更改。如果該方法不依賴於sudo
為使用者設置,那就更好了。
sudo 不能更改現有程序的有效使用者,它總是創建一個具有提升權限的新程序,並且原始 shell 不受影響。這是 UNIX 設計的基礎。我通常只是將文件保存到 /tmp 作為一種解決方法。如果你真的想直接保存它,你可以嘗試使用 Vim 的一個特性,它可以將文件通過管道傳輸到另一個程序。嘗試使用以下命令保存:
:w !sudo dd of=%
測試和工作。Vim 然後會要求你重新載入文件,但這是不必要的:你可以按
o
以避免重新載入和失去你的撤銷歷史。您甚至可以將其保存到 Vim 命令/函式中,甚至可以將其綁定到鍵上以便於訪問,但我將把它作為練習留給讀者。