2012-06-06 74 views
15

有時當我編輯需要root權限的文件(例如/ etc下的文件)時,但我忘記將vim作爲sudo運行。我可以在不離開vim的情況下獲得root權限嗎?

編輯完成後,鍵入:wq保存並離開,我發現我不能,即使使用!wq,因爲該文件是隻讀的。

如果我離開並重新編輯該文件,我的所有工作都將丟失,但如果沒有,我無法保存我的編輯。那麼,如何在不離開vim的情況下獲得root權限寫入呢?

+0

我不認爲你可以,只要複製你的任何內容,關閉vim,使用sudo運行並粘貼。編輯:或者像darryn.ten一樣回答。 –

+2

您現在可以將答案標記爲正確:) –

+0

@ darryn.ten沒有「正確的」答案。只是'有幫助'和/或'接受'的答案:) – sehe

回答

23

要強制保存使用以下命令

:w !sudo tee % 

它會提示你輸入密碼。

+1

當我需要它時,我永遠不會記得這件事:/ –

+0

我強迫自己記住它,因爲我經常使用它 –

+6

@Michael:一種常用的解決方法,用於擺脫記憶的必要性一個複雜的命令是創建一個自定義命令:':command! W w!sudo tee%>/dev/null'。 –

3

tee提到的技巧是不錯的;如果你經常需要這個,我會推薦SudoEdit plugin,它提供了一個:SudoWrite命令(甚至一個sudo:協議處理程序)。

相關問題