Vraag Hoe de Vim-editor te verlaten?


Ik zit vast en kan niet ontsnappen. Het zegt:

"type :quit<Enter> to quit VIM"

Maar wanneer ik typ dat het eenvoudig verschijnt in het object lichaam.


2704
2017-08-06 12:25


oorsprong


antwoorden:


Druk op de Esc toets om "Normale modus" in te voeren. Dan kunt u typen : om "Command-line modus" te openen. Een dubbele punt (:) verschijnt onderaan het scherm en u kunt een van de volgende opdrachten typen. Als u een opdracht wilt uitvoeren, drukt u op invoeren sleutel.

  • :q  stoppen (afkorten van :quit)
  • :q! om te stoppen zonder te bewaren (afkorting voor :quit!)
  • :wq schrijven en stoppen
  • :wq! schrijven en afsluiten, zelfs als het bestand alleen leesrechten heeft (als het bestand geen schrijfrechten heeft: force write)
  • :x  schrijven en afsluiten (vergelijkbaar met :wq, maar schrijf alleen als er wijzigingen zijn)
  • :exit om te schrijven en te verlaten (zelfde als :x)
  • :qa om te stoppen met allemaal (afkorting voor :quitall)
  • :cq om te stoppen zonder op te slaan en Vim een ​​niet-nul foutmelding te geven (dat wil zeggen afsluiten met een fout)

Je kunt Vim ook rechtstreeks verlaten vanuit "Command-modus" door te typen ZZ opslaan en afsluiten (zelfde als :x) of ZQ gewoon stoppen (zelfde als :q!). (Merk op dat zaak hier belangrijk is. ZZ en zz bedoel niet hetzelfde.)

Vim heeft uitgebreide hulp - die u kunt openen met de :help commando - waar je antwoorden op al je vragen kunt vinden en een tutorial voor beginners.


3742
2017-08-06 12:46



Voordat u een opdracht invoert, druk op de Esc sleutel. Nadat u het hebt ingevoerd, drukt u op terugkeer bevestigen.

Esc beëindigt de huidige opdracht en schakelt Vim in normale modus. Nu als u op drukt :, de : verschijnt op de bodem van het scherm. Dit bevestigt dat je eigenlijk een opdracht invoert en niet het bestand bewerkt.

De meeste commando's hebben afkortingen, met optioneel deel tussen haakjes: c[ommand].

Commando's gemarkeerd met '*' zijn alleen Vim (niet geïmplementeerd in Vi).

Safe-quit (mislukt als er niet-opgeslagen wijzigingen zijn):

  • :q[uit]  Sluit de stroom af venster. Sluit Vim als dit het laatste venster is. Dit mislukt als de wijzigingen in de huidige zijn aangebracht buffer.
  • :qa[ll]* Sluit alle vensters en Vim, tenzij er enkele buffers zijn die zijn gewijzigd.

Prompt-stop (vraagt ​​of er niet-opgeslagen wijzigingen zijn)

  • :conf[irm] q[uit]* Sluit af, maar geef prompt weer als er enkele buffers zijn die zijn gewijzigd.
  • :conf[irm] xa[ll]* Schrijf alle gewijzigde buffers en verlaat Vim. Roep een prompt op als sommige buffers niet kunnen worden geschreven.

Schrijf (sla) veranderingen op en stop met:

  • :wq Schrijf het huidige bestand (zelfs als het niet is gewijzigd) en stop. Het schrijven mislukt wanneer het bestand alleen-lezen is of de buffer geen naam heeft. :wqa[ll]* voor alle vensters.
  • :wq! Hetzelfde, maar schrijft zelfs alleen-lezen bestanden. :wqa[ll]!* voor alle vensters.
  • :x[it], ZZ(met gegevens). Schrijf alleen het bestand als het was veranderd en stop, :xa[ll]* voor alle vensters.

Wijzigingen verwijderen en afsluiten:

  • :q[uit]!  ZQ* Sluit af zonder te schrijven, ook als zichtbare buffers wijzigingen hebben. Wordt niet afgesloten als er verborgen buffers zijn gewijzigd.
  • :qa[ll]!*, :quita[ll][!]* Sluit Vim af, alle wijzigingen in de buffers (inclusief verborgen) gaan verloren.

druk op terugkeer om de opdracht te bevestigen.

Dit antwoord verwijst niet naar alle Vim-opdrachten en -argumenten en schrijft deze af. Inderdaad, ze zijn waarnaar wordt verwezen in de Vim documentatie.

Vim heeft uitgebreide ingebouwde hulp, type Esc:helpterugkeer om het te openen.

Dit antwoord is geïnspireerd door de een andere, oorspronkelijk geschreven door @dirvine en bewerkt door andere SO-gebruikers. Ik heb meer informatie toegevoegd van Vim-referentie, SO-opmerkingen en enkele andere bronnen. Verschillen voor Vi en Vim worden ook weerspiegeld.


138
2018-06-08 13:34



Foto's zijn duizend Unix-commando's en opties waard:

Enter image description here

Ik teken dit elk semester aan mijn studenten en ze lijken het daarna te begrijpen.

vi is een eindigetoestandsautomaat met slechts drie staten.

Bij het opstarten gaat vi naar de COMMAND-modus, waar je korte, weinig karaktercommando's kunt typen, blindelings. Je weet wat je doet; dit is niet voor amateurs.

Wanneer u daadwerkelijk tekst wilt bewerken, moet u naar de INSERT-modus gaan met een opdracht van één teken:

  • i: ga naar INSERT op de plaats van de cursor
  • I: ga naar de INSERT-modus aan het begin van de regel
  • a: toevoegen na de cursor
  • A: toevoegen aan het einde van de regel
  • O: Open een nieuwe regel onder de huidige regel
  • O: Open een nieuwe regel op de plaats van de huidige regel

Nu, de vraag beantwoorden: afsluiten.

U kunt Vi afsluiten vanuit de EX-modus:

  • q: als u geen wijzigingen hebt aangebracht of deze van tevoren hebt opgeslagen
  • q !: negeert eventuele wijzigingen en ophouden
  • wq: opslaan en afsluiten
  • x: dit is gelijk aan wq

w en x accepteer een bestandsnaamparameter. Als je vi hebt gestart met een bestandsnaam, hoef je dit hier niet opnieuw te geven.

Eindelijk het belangrijkste: hoe kun je de EX-modus bereiken?

EX-modus is voor lange opdrachten die u kunt zien typen op de onderste regel van het scherm. Vanuit de COMMAND-modus druk je op de dubbele punt, :en een dubbele punt verschijnt op de onderste regel, waar u de bovenstaande commando's kunt typen.

Vanuit de INSERT-modus moet je op ESC drukken, d.w.z. de Escape-knop, naar de COMMAND-modus gaan en dan: om naar de EX-modus te gaan.

Als u niet zeker bent, drukt u op ESC en dat brengt u naar de bedieningsmodus.

De robuuste methode is dus ESC -: - x-Enter waarmee je je bestand kunt opslaan en afsluiten.


69
2018-05-26 12:24



Als je wilt stoppen zonder op te slaan in Vim en Laat Vim een ​​niet-nul-exitcode retourneren die je kunt gebruiken :cq.

Ik gebruik dit de hele tijd omdat ik niet de moeite kan nemen om naar Pinky te schakelen !. Ik pijp vaak dingen naar Vim die niet in een bestand hoeven te worden opgeslagen. We hebben ook een oneven SVN-wrapper op het werk die moet worden afgesloten met een niet-nulwaarde om een ​​controle af te breken.


65
2018-01-28 10:59



Dit is in het ergste geval van het verlaten van Vim als je gewoon uit wilt, geen idee hebt wat je hebt gedaan en het je niet kan schelen wat er zal gebeuren met de bestanden die je hebt geopend.

Ctrl-cinvoereninvoerenviinvoerenCtrl- \Ctrl-n:qa!invoeren

Dit zou je het grootste deel van de tijd moeten uitschakelen.

Enkele interessante gevallen waar je zoiets als dit nodig hebt:

  • iCtrl-ovg (u komt in de invoegmodus, vervolgens de visuele modus en vervolgens in de wachtrijmodus van de operator)

  • Qappendinvoeren

  • iCtrl-ogQCtrl-r=Ctrl-k (dankzij porges voor deze zaak)

  • :set insertmode (dit is een geval wanneer Ctrl- \Ctrl-n keert terug naar de normale modus)


Bewerken: dit antwoord is gecorrigeerd vanwege bovenstaande gevallen. Het was:

EscEscEsc:qa!invoeren

Dat werkt echter niet als u de Ex-modus hebt ingevoerd. In dat geval zou u moeten doen:

viinvoeren:qa!invoeren

Dus een compleet commando voor "Ik wil niet weten wat ik heb gedaan en ik wil niets bewaren, ik wil nu gewoon weg!" zou zijn

viinvoerenEscEscEsc:qa!invoeren


37
2018-06-24 13:38



In het geval dat je Vim moet verlaten in eenvoudige modus (Tijdens het gebruik -y optie) kunt u de normale Vim-modus openen door op te raken Ctrl + L en dan zal elk van de normale uitstappunten werken.


32
2017-07-18 13:48



Na het slaan ESC (of cmd + C op mijn computer) moet je slaan : om de opdrachtprompt te laten verschijnen. Daarna kunt u binnengaan quit.

Mogelijk merkt u dat het apparaat u niet zal toestaan ​​te stoppen omdat uw gegevens niet zijn opgeslagen. Als je toch wilt stoppen, voer je in ! direct na de quit (d.w.z. :quit!).


23
2017-11-28 15:25