2012-06-06 6 views
15

Manchmal, wenn ich eine Datei bearbeiten, die root-Berechtigung erfordern (z. B. Dateien unter/etc), aber ich vergesse vim als sudo ausführen.Kann ich die Root-Berechtigung erhalten, ohne vim zu verlassen?

Nach Bearbeitung beendet, und geben Sie :wq zu speichern und verlassen, ich finde ich kann nicht, auch mit !wq, weil die Datei readonly ist.

Wenn ich die Datei verlassen und neu bearbeite, werden alle meine Arbeit verloren, aber wenn nicht, kann ich meine Bearbeitung nicht speichern. Also, wie kann ich Root-Erlaubnis erhalten, zu schreiben, ohne vim zu verlassen?

+0

Ich glaube nicht, dass Sie können, kopieren Sie einfach, was Sie darin haben, schließen Sie vim, laufen Sie mit Sudo und einfügen. edit: oder mach wie drarryn.ten geantwortet. –

+2

Sie können die Antwort jetzt als richtig markieren :) –

+0

@ darryn.ten Es gibt keine "richtigen" Antworten. Nur 'hilfreich' und/oder 'akzeptierte' Antworten :) – sehe

Antwort

23

zu zwingen, eine den folgenden Befehl

:w !sudo tee % 

Es Sie nach Ihrem Passwort fragt Speichern verwenden.

+1

Ich kann mich nie daran erinnern, wenn ich es brauche:/ –

+0

Ich zwang mich, es zu erinnern, wie ich es ziemlich regelmäßig benutze –

+6

@Michael: Eine gemeinsame Workaround verwendet, um die Notwendigkeit zu vergessen, zu vergessen Ein komplexer Befehl ist es, einen benutzerdefinierten Befehl zu erstellen: ': command! W w! Sudo tee%>/dev/null'. –

3

Der erwähnte Trick mit tee ist nett; Wenn Sie dies oft benötigen, empfehle ich die SudoEdit plugin, die einen :SudoWrite Befehl bietet (und sogar einen sudo: Protokollhandler).