Hoe sluit ik de Vim-editor af?

Ik zit vast en kan niet ontsnappen. Er staat:

"type :quit<Enter> to quit VIM"

Maar als ik dat typ, verschijnt het gewoon in de hoofdtekst van het object.


Antwoord 1, autoriteit 100%

Druk op de Esc-toets om naar de “Normale modus” te gaan. Vervolgens kunt u :typen om naar de “Opdrachtregelmodus” te gaan. Er verschijnt een dubbele punt (:) onder aan het scherm en u kunt een van de volgende opdrachten typen. Druk op de Enter-toets om een opdracht uit te voeren.

  • :qom te stoppen (afkorting van :quit)
  • :q!om te stoppen zonder op te slaan (afkorting van :quit!)
  • :wqom te schrijven en af te sluiten
  • :wq!om te schrijven en af te sluiten, zelfs als het bestand alleen leesrechten heeft (als het bestand geen schrijfrechten heeft: forceer schrijven)
  • :xom te schrijven en te stoppen (vergelijkbaar met :wq, maar alleen schrijven als er wijzigingen zijn)
  • :exitom te schrijven en af te sluiten (hetzelfde als :x)
  • :qaom alles af te sluiten (afkorting van :quitall)
  • :cqom te stoppen zonder op te slaan en ervoor te zorgen dat Vim een niet-nulfout retourneert (d.w.z. afsluiten met een fout)

Je kunt Vim ook rechtstreeks afsluiten vanuit de “Normale modus” door ZZte typen om op te slaan en af te sluiten (hetzelfde als :x) of ZQom gewoon te stoppen (hetzelfde als :q!). (Merk op dat hoofdletters hier belangrijk zijn. ZZen ZZbetekenen niet hetzelfde.)

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


Antwoord 2, autoriteit 5%

Afbeeldingen zijn meer dan duizend Unix-commando’s en opties waard:

voer hier de afbeeldingsbeschrijving in

Ik teken dit elk semester voor mijn studenten en ze lijken vi achteraf te begrijpen.

Vi is een eindige-toestandsmachinemet slechts drie toestanden.

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

Als u tekst daadwerkelijk 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: voeg nade cursor toe
  • A: toevoegen aan het einde van de regel
  • o: openeen nieuwe regel onder de huidige regel
  • O: openeen nieuwe regel in de plaats van de huidige regel

Nu de vraag beantwoorden: afsluiten.

Je kunt vi afsluiten vanuit de EX-modus:

  • q: als je geen wijzigingen hebt aangebracht, of ze van tevoren hebt opgeslagen
  • q!: negeert alle wijzigingen en stop
  • wq: opslaan en afsluiten
  • x: dit is gelijk aan wq

wen xaccepteren een bestandsnaamparameter. Als je vi met een bestandsnaam hebt gestart, hoef je deze hier niet opnieuw in te voeren.

Eindelijk het belangrijkste: hoe bereik je de EX-modus?

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

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

Als je het niet zeker weet, druk je op ESC en dat brengt je naar de opdrachtmodus.

De robuuste methode is ESC-:-x-Enter die uw bestand opslaat en afsluit.


Antwoord 3, autoriteit 3%

Voordat je een opdracht invoert, druk je op de Esc-toets. Nadat je het hebt ingevoerd, druk je op Returnom te bevestigen.

Escvoltooit de huidige opdracht en schakelt Vim over naar normale modus . Als u nu op :drukt, verschijnt de :aan de onderkantvan het scherm. Dit bevestigt dat u daadwerkelijk een opdracht typt en het bestand niet bewerkt.

De meeste commando’s hebben afkortingen, met het optionele gedeelte tussen haakjes: c[ommand].

Opdrachten gemarkeerd met ‘*’ zijn alleen voor Vim (niet geïmplementeerd in Vi).

Veilig afsluiten (mislukt als er niet-opgeslagen wijzigingen zijn):

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

Prompt-quit (prompts als er niet-opgeslagen wijzigingen zijn)

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

Schrijf (opslaan) wijzigingen en sluit af:

  • :wqSchrijf het huidige bestand (zelfs als het niet is gewijzigd) en sluit af. 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 details). Schrijf het bestand alleen als het is gewijzigden sluit, :xa[ll]* voor alle vensters.

Wijzigingen negeren en afsluiten:

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

Druk op Returnom de opdracht te bevestigen.

Dit antwoord verwijst niet naar alle schrijf- en stopopdrachten en argumenten van Vim. Er wordt inderdaad naar verwezen in de Vim-documentatie.

Vim heeft uitgebreide ingebouwde hulp, typ Esc:helpReturnom het te openen.


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


Antwoord 4, autoriteit 2%

Als je wilt afsluiten zonder op te slaan in Vim enVim een afsluitcode wilt laten retourneren die niet nul is, kun je :cqgebruiken.

Ik gebruik dit de hele tijd omdat ik geen zin heb om te verschuiven voor !. Ik pijp vaak dingen naar Vim die niet in een bestand hoeven te worden opgeslagen. We hebben ook een vreemde SVN-wrapper aan het werk die moet worden afgesloten met een waarde die niet nul is om een check-in af te breken.


Antwoord 5

Dit is voor het worstcasescenario om Vim te verlaten als je gewoon weg wilt, geen idee hebt wat je hebt gedaan en het je niet kan schelen wat er gebeurt met de bestanden die je hebt geopend.

Ctrl-cEnterEnterviEnterCtrl- </kbd>Ctrl-n:qa!Enter

Hierdoor zou je er meestal uit moeten komen.

Enkele interessante gevallen waarin je zoiets als dit nodig hebt:

  • iCtrl-ovg(u gaat naar de invoegmodus, dan de visuele modus en dan de operator in afwachting van de modus)

  • QappendEnter

  • iCtrl-ogQCtrl-r=Ctrl-k(met dank aan porges voor dit geval)

  • :set insertmode(dit is het geval wanneer Ctrl-</kbd>Ctrl-nu terugbrengt naar de normale modus)


Dit antwoord is gecorrigeerd vanwege bovenstaande gevallen. Vroeger was het:

EscEscEsc:qa!Enter

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

viEnter:qa!Enter

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

viEnterEscEscEsc:qa!Enter


Antwoord 6

Als je Vim moet afsluiten in de eenvoudige modus(terwijl je de optie -ygebruikt), kun je de normale Vim-modus openen door op Ctrlte drukken + Len dan zullen alle normale exit-opties werken.


Antwoord 7

Vim heeft drie werkingsmodi: invoermodus, commandomodus & Ex-modus.

Invoermodus- alles wat u typt, alle toetsaanslagen worden weergegeven op het scherm.

Opdrachtmodus of Escape-modus- alles wat u in deze modus typt, wordt geïnterpreteerd als een opdracht.

Ex-modus- dit is een andere editor, bijv. Het is een regeleditor. Het werkt per lijn of op basis van een reeks lijnen. In deze modus verschijnt een :onder aan het scherm. Dit is de ex-editor.

Als je Vim wilt afsluiten, kun je afsluiten terwijl je in de ex-modus of in de opdrachtmodus bent. Je kunt Vim niet afsluiten als je in de invoermodus bent.

Ex-modus verlaten

  1. Je moet er zeker van zijn dat je in de opdrachtmodus bent. Om dat te doen, drukt u gewoon op de Esc-toets.

  2. Ga naar de ex-modus door op de :-toets te drukken

  3. Gebruik een van de volgende combinaties in de ex-modus om af te sluiten:

    :q- stoppen
    :q!- sluit af zonder op te slaan
    :wq- opslaan & stoppen of schrijven & ontslag nemen
    :wq!- hetzelfde als wq, maar forceer schrijven als bestandsrechten alleen-lezen zijn
    :x- schrijf & ontslag nemen
    :qa- sluit alles af. handig wanneer meerdere bestanden worden geopend zoals: vim abc.txt xyz.txt

De opdrachtmodus verlaten

  1. Druk op de escape-toets. Je hebt dit waarschijnlijk al gedaan als je in de opdrachtmodus bent.

  2. Druk op hoofdletter ZZ (shift zz) - opslaan & afsluiten

  3. Druk op hoofdletter ZQ (shift zq) - sluit af zonder op te slaan.


Antwoord 8

Na het indrukken van ESC(of cmd+ Cop mijn computer) moet je op :drukken voor het commando prompt verschijnen. Vervolgens kunt u quitinvoeren.

Het kan zijn dat de machine u niet toestaat te stoppen omdat uw informatie niet is opgeslagen. Als je toch wilt stoppen, voer dan !direct na het afsluiten in (d.w.z. :quit!).


Antwoord 9

Ik heb Vim gekregen door een Git-client op Windows te installeren. :qzou Vim niet voor mij verlaten. :exitdeed het echter...


Antwoord 10

Het qcommando met een cijfer sluit de gegeven splitsing op die positie.

:q<split position>of :<split position>qsluit de splitsing op die positie.

Stel dat je Vim-vensterlay-out als volgt is:

-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------

Als u de opdracht q1uitvoert, wordt de eerste splitsing gesloten. q2sluit de tweede splitsing en vice versa.

De volgorde van de gesplitste positie in het quit-commando doet er niet toe. :2qof :q2sluit de tweede splitsing.

Als de splitsingspositie die u aan de opdracht doorgeeft groter is dan het aantal huidige splitsingen, wordt de laatste splitsing gewoon gesloten.

Als u bijvoorbeeld de q100uitvoert in de bovenstaande vensterconfiguratie waar er slechts drie splitsingen zijn, wordt de laatste splitsing (split 3) gesloten.

De vraag is hiergesteld .


Antwoord 11

Een gegarandeerde manier is om de poort waarop vim draait te doden

! kill - 9 $(ps | grep vim | cut -d " " -f 1)

Other episodes