Wie speichere ich mit vim bearbeitete Dateien?


66

Ich kann nach der Bearbeitung keine Änderungen speichern

sudo vi /etc/network/interfaces

Text vor der Bearbeitung:

auto lo
iface lo inet ...

Bearbeitet zu:

auto eth0
iface eth0 inet dhcp

Welche Tastenkombination oder Sequenz muss ich drücken, um dies zu speichern?


7
Wenn Sie mit dem Bearbeiten von Dateien in terminalbasierten Editoren wie vioder nicht vertraut sind vim, würde ich die Verwendung eines grafischen Editors empfehlen gedit, um diese zu öffnen. Ersetzen sudo vidurch gksu gedit.
Aditya

5
Oder benutze die sudo nanoKommandozeile, aber viel intuitiver als vi.
Warren Hill

Antworten:


125

Sie befinden sich wahrscheinlich im Bearbeitungs- / Einfügemodus. Sie müssen die folgende Sequenz eingeben:

  1. Esc, um den Bearbeitungsmodus zu verlassen und in den Befehlsmodus zurückzukehren;
  2. :+ w+ q, Mit einem Start :(Kolon) , dann drücken wund schließlich qzu w rite und q uit (oder nur :wzu schreiben , ohne zu verlassen)
  3. dann drücken, um Enterzu bestätigen.

18

Normalerweise drücke ich ESCund halte Shiftund drücke zzweimal. Genauso wie Sie zwei Z-Großbuchstaben in den Texteditor eingeben möchten :) Dadurch wird Ihr Dokument gespeichert und der Editor geschlossen.


4
Oh Mann, Schicht- und Doppel z, was war das Design Logik hinter dass ich mich frage, „Was ist das Mindeste , intuitive Befehl wir schaffen können“, ubuntu kotzt mich manchmal aus wie verrückt
S ..

4
@Sam, ich wollte nur nitpicken, dass vi nichts spezielles mit Ubuntu zu tun hat. Ubuntu wurde erstmals im Jahr 2004 veröffentlicht, während vi 1976 von Bill Joy kreiert wurde, inspiriert von ed (aus dem Jahr 1971). Dies bedeutet, dass die Verknüpfungen in vi älter sind als in fast allen anderen heute noch gebräuchlichen Hilfsprogrammen. Zufälligerweise wurde 1976 auch die erste Version von Emacs veröffentlicht, die völlig andere seltsame Abkürzungen hat. Die Bemühungen zur Standardisierung erfolgten erst viel später.
yoniLavi

Wow, danke für die Info @yoniLavi, meine Punkte sind aber immer noch die gleichen. Hoffentlich schreiten die Standardisierungsbemühungen weiter voran. :)
S ..

@Sam, vi Tastenkombinationen sind viel mehr Standard als Sie denken; Sie sind praktisch allgegenwärtig. Praktisch jedes Programm kann erstellt werden, um vi-Tastenkombinationen zu emulieren. Selbst die Standard-Gmail-Tastenkombinationen basieren (für einen Vim-Nutzer) offensichtlich auf vi-Tastenkombinationen.
Wildcard

Was ist mit Esc-Taste funktioniert nicht? Einfügemodus, gerade gestoppt.
Schöpfer

3

Überprüfen Sie, ob Sie über Administratorrechte (Root) verfügen, um die Datei zu bearbeiten. benutze diesen Befehl

whoami

Wenn das Ergebnis nicht "root" ist, sollten Sie die Datei nicht bearbeiten.

Verwenden Sie den folgenden Befehl, um sich als Root-Benutzer anzumelden

sudo su

oder

su

Bearbeiten Sie die Datei,

vi /etc/network/interfeces

Speichern Sie die Datei nach den Änderungen mit

  1. Drücken Sie Esc, um den Modus zu ändern
  2. :x um die Datei zu speichern und zu beenden

Das ist alles


0

Diese Frage wurde vor langer Zeit beantwortet, aber falls sie erneut in Suchmaschinen auftaucht, ist dieser Link ein nettes vim-Cheatsheet, das Sie mit einem Lesezeichen versehen möchten, wenn Sie vim häufig verwenden.

Übrigens können Sie :wqzum Speichern und Verlassen der Datei verwenden (Sie sollten zuerst die Esc-Taste drücken, um den Einfüge- oder Ersetzungsmodus zu beenden, und dann die Befehle drücken) und :q!zum Verlassen ohne Speichern verwenden.

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.