Ich habe eine Datei schreibgeschützt geöffnet. Gibt es eine Möglichkeit, den schreibgeschützten Modus zu verlassen?
w
jedem Speichern ein Ausrufezeichen gesetzt zu haben. heh
Ich habe eine Datei schreibgeschützt geöffnet. Gibt es eine Möglichkeit, den schreibgeschützten Modus zu verlassen?
w
jedem Speichern ein Ausrufezeichen gesetzt zu haben. heh
Antworten:
Sie könnten dies tun:
:set noro
Dadurch wird das Nur-Lese-Flag deaktiviert, aber wenn die zugrunde liegende Datei von Ihnen immer noch nicht beschreibbar ist, kann vim immer noch nicht darauf schreiben.
:set ro
.
view
, sie dann jedoch bearbeiten möchten.
Sie können chmod
aus vim heraus ausführen :
:!chmod +w %
!
bedeutet, einen Shell-Befehl auszuführen und %
ist der aktuelle Dateiname. Sie können auch einfach das Schreiben der Datei erzwingen:
:w!
Zusätzlich zu der Antwort von Michael Mrozek.vimrc
können Sie Ihrer Zeile eine Zeile hinzufügen , mit der Sie in eine Datei schreiben können, deren Öffnen Sie mit erhöhten Berechtigungen versäumt haben:
" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null
Wenn die Datei schreibgeschützt ist, müssen Sie nur eingeben :w!!, Sie werden zur Eingabe Ihres Kennworts aufgefordert und anschließend wird erfolgreich in die Datei geschrieben.
Während der :set noro
Ausführung des Auftrags wird nicht geprüft, ob die Datei von einer anderen vim-Instanz geöffnet wurde, oder die Datei wird aktualisiert, wenn sie extern geändert wurde.
Verwenden Sie einfach den Befehl edit (: help edit), um die Datei bearbeitbar zu machen und nach Auslagerungsdateien zu suchen (dies ist die Standardeinstellung zum Öffnen einer Datei mit vim):
:e
Beachten Sie, dass, wenn die Datei seitdem manipuliert wurde (auch außerhalb von vim), die Änderungen im aktuellen Puffer aktualisiert werden (was ich normalerweise wünschenswert finde).
Hier bin ich, obwohl ein bisschen spät, vielleicht hast du deinen Zweifel bereits gelöst;) Ich habe in keinem der Kommentare einen Weg gesehen, den ich mit vim kenne , also füge ich hinzu:
Sobald Sie eine Datei bearbeiten, drücken Sie :w
oder :wq
und Sie sehen die ärgerliche Meldung " E45 'Readonly'-Option ist gesetzt (zum Überschreiben hinzufügen!) ".
Du kannst Tippen
:w !sudo tee %
w
schreibt den Puffer, !sudo
ruft die Shell mit sudo auf, tee
leitet die Ausgabe von vim :w
auf die Ausgabe mit tee um, und%
ist der aktuelle DateinameUnd das sollte den Trick machen. Beachten Sie, dass dies dazu auffordert, die Datei in vim neu zu laden, wenn Sie L drücken müssen
!
demw
Befehl ein hinzufügen , wie Michael ausführte.