: wq in Vim speichert nicht


8

Ich versuche, :wqeine Textdatei zu speichern, die ich in Vim bearbeitet habe, aber wenn ich sie eingebe :wq, wird der Fehler angezeigt

E45: 'readonly' option is set (add ! to override)`  

Als ich hinzufügen !zu :wqmögen :wq!, ich diese:

"/etc/dhcp/dhcpd.conf"

"/etc/dhcp/dhcpd.conf" E212: Can't open file for writing

Die Datei, die ich bearbeiten möchte, befindet sich dhcpdim /etc/dhcpdPfad.

Wie kann ich das machen?


Bevorzugen :xoder ZZbeenden und speichern. Es wird nur bei Änderung geschrieben.
Hauleth

Antworten:


14

Sie müssen die Datei mit Superuser-Berechtigungen wie folgt öffnen:

sudo vi /etc/dhcp/dhcpd.conf

Bearbeiten Sie die Datei durch Drücken iund dann Speichern und beenden Sie sie durch Drücken von Escund dann entweder :wqoder :xoder nur :wzum Speichern.


Vielen Dank an Riking für den Vorschlag sudoedit: Sie können sudoedit /path/to/file/filenameDateien von root bearbeiten, anstatt sie zu verwenden sudo <editor> /pat/to/file/filename. Dies ist nützlich für Maschinen oder Produktionsmaschinen auf Unternehmensebene, da sich sudoedit bei anmeldet /var/log/auth.log.

Wenn Sie den Standardeditor für sudoedit ändern möchten, gehen Sie wie folgt vor:

sudo update-alternatives --config editor

Drücken Sie dann Returnund wählen Sie den Editor Ihrer Wahl und drücken Sie erneut Return.


Siehe auch: Eine Diskussion über Redit darüber, warum Sudoedit vorteilhaft sein kann


3
Ich bevorzuge sudoeditdiese Situationen - es erstellt eine temporäre Kopie, führt den Editor aus und kopiert das Ergebnis. Wenn Sie zuvor nanodiesen Befehl ausgewählt haben, führen Sie ihn aus EDITOR=vi sudoedit /etc/file.
Riking

1
@Riking: Danke für sudoedit, wusste nicht einmal, dass es existiert. Allerdings kam über diese während googeln sudoedit. Ich werde es vorschlagen, aber überlasse es dem Benutzer, wenn er es für notwendig hält.
Job

sudoeditnimmt auch die EDITORVariable auf, es ist einfacher, das einzustellen, als Alternativen zu konfigurieren
muru

9

/etcbesteht aus allen Konfigurationsdateien. Um die Dateien unter zu bearbeiten /etc, benötigen Sie die Superuser-Berechtigungen, aber manchmal vergessen wir, sie zu verwenden sudo. aber zu diesem Zeitpunkt können wir auch verwenden

:w !sudo tee %

Geben Sie dann Ihr Administratorkennwort ein

:q!

erfolgreich beenden


1
Sie können cmap w!! w !sudo tee > /dev/null %zu Ihrem hinzufügen , .vimrcum das Speichern über diese Methode mit zu ermöglichen :w!!. Wenn Sie daran interessiert sind, warum diese Methode funktioniert, lesen
Gerhard Burger
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.