Dies ist ein Usability-Problem, das mir häufig passiert:
Ich öffne eine schreibgeschützte Systemdatei mit vim und bearbeite sie sogar, weil ich nicht aufmerksam genug bin oder weil das vim auf dem System schlecht konfiguriert ist. Sobald meine Änderungen vorgenommen wurden, muss ich sie nicht mehr in eine temporäre Datei schreiben oder verlieren, weil: w! wird nicht funktionieren.
Gibt es einen vim-Befehl (: W !!!), mit dem Sie als Superuser den aktuellen Puffer schreiben können? (Vim würde natürlich nach Ihrem sudo oder su Passwort fragen)
sudoedit
Befehl gelöst wurde . Diese Frage konzentriert sich mehr darauf, zu vergessen, sie zuerst einzugeben und nach dem Starten des Editors zu erhöhen.Antworten:
Erläuterung: Mit
!
können Sie Programme ausführen. Durch das Präfix: w wird der Inhalt der Datei (das Material, das Sie in vim haben, nicht die Originaldatei, genauer: der Puffer) dem Befehl bei der Standardeingabe übergeben.%
wird durch den Dateinamen ersetzt, und es wird>/dev/null
vermieden, dass der Inhalt erneut auf dem Bildschirm gedruckt wird (was das übliche Verhalten von isttee
).Ich habe einen noch kürzeren Weg gefunden.
dd
wird nicht in stdout gedruckt, sodass Sie die Nullsache speichern können.
Gleiches gilt für
:r
, wodurch die Ausgabe des angegebenen Befehls eingefügt wird, sodass Sie beispielsweise das aktuelle Datum mithilfe von in Ihre Datei einfügen können:r !date
quelle
Versuchen:
quelle