Pytanie Jak wyjść z edytora Vima?


Utknąłem i nie mogę uciec. To mówi:

"type :quit<Enter> to quit VIM"

Ale kiedy wpisuję to po prostu pojawia się w ciele obiektu.


2719
2017-08-06 12:25


pochodzenie


Próbujesz po prostu wyjść z VIM? W takim przypadku naciśnij "escape", a następnie wpisz ": q" - Pop
Nie zapomnij o dwukropek! Powinieneś wpisać :quit a następnie naciśnij [ENTER] klawisz. - Farahmand
Bardzo łatwo jest nauczyć się podstaw vima i jest on wbudowany w Twój system. W terminalu typu "vimtutor". 25 minut później będziesz jechał szybciej niż zwykły edytor tekstu! - Mark Robson
Aby zapobiec git commit wysyłając cię do vima w przyszłości: git config --global core.editor="nano" - Tom Kelly
Linkback do artykułu na blogu SO dla potomności - Hong Ooi


Odpowiedzi:


Uderz w wyjście aby wejść w "Tryb normalny". Następnie możesz wpisać : aby wejść w "Tryb wiersza poleceń". Dwukropek (:) pojawi się u dołu ekranu i możesz wpisać jedno z poniższych poleceń. Aby wykonać polecenie, naciśnij Wchodzić klawisz.

  • :q  zamknąć (skrót od :quit)
  • :q! zamknąć bez zapisywania (skrót od :quit!)
  • :wq pisać i wyjść
  • :wq! pisać i kończyć, nawet jeśli plik ma tylko uprawnienia do odczytu (jeśli plik nie ma uprawnień do zapisu: wymuś zapis)
  • :x  pisać i przerwać (podobne do :wq, ale zapisuj tylko w przypadku zmian)
  • :exit pisać i wyjść (tak samo jak :x)
  • :qa zamknąć wszystkie (skrót od :quitall)
  • :cq wyjść z trybu bez zapisywania i spowodować, że Vim zwróci błąd niezerowy (tzn. zakończy się błędem)

Możesz również wyjść z Vima bezpośrednio z "trybu poleceń", pisząc ZZ zapisać i zamknąć (tak samo jak :x) lub ZQ po prostu zrezygnować (tak samo jak :q!). (Należy pamiętać, że sprawa jest tutaj ważna. ZZ i zz nie oznacza to samo.)

Vim ma szeroką pomoc - do której można uzyskać dostęp za pomocą :help polecenie - gdzie znajdziesz odpowiedzi na wszystkie pytania i samouczek dla początkujących.


3762
2017-08-06 12:46



O ile nie zmapowałeś esc lub masz dziwne odwzorowanie w twoim .vimrc, to zdecydowanie powinno. Jeśli na linuksie wpisz xev i upewnij się, że ucieczka jest kluczową cechą, którą dostajesz, kiedy trafisz w ucieczkę. - dirvine
Pamiętaj, możesz użyć ctrl + c, jeśli nie możesz użyć Esc (tak jak ja, ponieważ moja powłoka znajduje się w TotalTerminal). vim.wikia.com/wiki/Avoid_the_escape_key - dotnetCarpenter
:x == ZZ ale :x ! = :wq. :x plik zapisu plik iff się zmienił, :wq zawsze zapisuj plik (dotyczy np. podczas używania inotify). - Hauleth
Szczerze mówiąc, mam trudniejszy czas korzystania z systemu pomocy Vima niż z samego vima, a przede wszystkim polegam na szybkich kartach ref i dokumentacji online. - bgvaughan
jeśli nie masz uprawnień do pliku, ale masz uprawnienia sudo :w ! sudo tee % - tvlooy


Zanim wprowadzisz polecenie, Uderz w wyjście klawisz. Po wprowadzeniu go, naciśnij Powrót potwierdzać.

wyjście kończy bieżące polecenie i przełącza Vim na Tryb normalny. Teraz, jeśli naciśniesz :, : pojawi się na Dolny ekranu. To potwierdza, że ​​faktycznie piszesz polecenie, a nie edytujesz pliku.

Większość poleceń ma skróty, a część opcjonalna jest zawarta w nawiasach: c[ommand].

Polecenia oznaczone "*" są tylko Vim (nie są implementowane w Vi).

Bezpieczne zamykanie (nie powiodło się, jeśli są niezapisane zmiany):

  • :q[uit]  Zamknij bieżący okno. Zamknij Vima, jeśli jest to ostatnie okno. Nie powiedzie się, gdy wprowadzono zmiany w bieżącym bufor.
  • :qa[ll]* Zamknij wszystkie okna i Vima, chyba że są jakieś bufory, które zostały zmienione.

Monit-quit (wyświetla monit, jeśli są niezapisane zmiany)

  • :conf[irm] q[uit]* Zamknij, ale daj podpowiedzi, gdy są jakieś bufory, które zostały zmienione.
  • :conf[irm] xa[ll]* Zapisz wszystkie zmienione bufory i opuść Vima. Wyświetl podpowiedź, gdy nie można zapisać niektórych buforów.

Zapisz (zapisz) zmiany i zakończ:

  • :wq Zapisz bieżący plik (nawet jeśli nie został zmieniony) i zakończ. Zapis kończy się niepowodzeniem, gdy plik jest tylko do odczytu lub bufor nie ma nazwy. :wqa[ll]* dla wszystkich okien.
  • :wq! To samo, ale zapisuje nawet pliki tylko do odczytu. :wqa[ll]!* dla wszystkich okien.
  • :x[it], ZZ(z Detale). Zapisz tylko plik jeśli został zmieniony i rzucić, :xa[ll]* dla wszystkich okien.

Odrzuć zmiany i zakończ:

  • :q[uit]!  ZQ* Wyjdź bez pisania, także wtedy, gdy widoczne są bufory. Nie wychodzi, gdy są zmienione ukryte bufory.
  • :qa[ll]!*, :quita[ll][!]* Zamknij Vima, wszystkie zmiany w buforach (w tym ukryte) zostaną utracone.

naciśnij Powrót aby potwierdzić polecenie.

Ta odpowiedź nie odnosi się do wszystkich poleceń i argumentów zapisujących i kończących Vima. Rzeczywiście, są one przywoływane w Dokumentacja Vima.

Vim ma rozbudowaną wbudowaną pomoc, typ wyjście:helpPowrót aby go otworzyć.

Ta odpowiedź została zainspirowana przez inny, oryginalnie autorstwa @dirvine i edytowany przez innych użytkowników SO. Dodałem więcej informacji z referencji Vima, komentarzy SO i innych źródeł. Różnice w Vi i Vim również zostały odzwierciedlone.


140
2018-06-08 13:34





Zdjęcia są warte tysiąca poleceń i opcji Uniksa:

Enter image description here

Rysuję to moim studentom w każdym semestrze, a oni później wydają się rozumieć.

vi jest a skończona maszyna stanów tylko z trzema stanami.

Po uruchomieniu vi przechodzi do trybu COMMAND, w którym możesz wpisać krótkie, kilka komend znakowych, ślepo. Wiesz, co robisz; to nie jest dla amatorów.

Jeśli chcesz faktycznie edytować tekst, powinieneś przejść do trybu INSERT przy użyciu jednego polecenia:

  • i: przejdź do INSERT w miejscu kursora
  • I: przejdź do trybu INSERT na początku linii
  • a: dołącz po kursor
  • Odp .: dodaj na końcu wiersza
  • o: otwarty nowa linia poniżej aktualnej linii
  • O: otwarty nowa linia w miejscu aktualnej linii

Teraz odpowiadając na pytanie: wyjście.

Możesz wyjść z trybu EX z EX:

  • q: jeśli nie dokonałeś żadnych modyfikacji lub zapisałeś je wcześniej
  • q !: ignoruje wszelkie modyfikacje i porzucić
  • wq: zapisz i zakończ
  • x: jest to równe wq

w i x zaakceptuj parametr nazwy pliku. Jeśli uruchomiłeś vi z nazwą pliku, nie musisz go tutaj podawać ponownie.

Nareszcie najważniejsze: w jaki sposób możesz przejść do trybu EX?

Tryb EX służy do długich poleceń, które możesz zobaczyć w dolnym wierszu ekranu. W trybie COMMAND naciskasz dwukropek, :, a w dolnym wierszu pojawi się dwukropek, w którym możesz wpisać powyższe polecenia.

Z trybu INSERT należy nacisnąć ESC, tj. Przycisk Escape, przechodząc do trybu COMMAND, a następnie: aby przejść do trybu EX.

Jeśli nie masz pewności, naciśnij ESC, aby przejść do trybu poleceń.

Tak więc niezawodną metodą jest ESC -: - x-Enter, która zapisuje twój plik i kończy pracę.


71
2018-05-26 12:24



Dziękuję, obraz jest bardzo pomocny. Jednak dla mnie w nie zmienia się z trybu Ex na Command, ale Esc robi. Co ja robię źle? - Nick Volynkin
Jeśli napiszesz w-Enter, który zapisuje twój plik i wraca do trybu COMMAND. Napisałem go, aby uzyskać pełen obraz poleceń składowania i zamykania. - Gergely
och, więc masz na myśli :w. To ma sens. Nawiasem mówiąc, czy istnieje polecenie ponownego załadowania z dysku (to znaczy, aby przywrócić zmiany, ale nie zamykać pliku)? Jeśli tak, może być obok w na diagramie. - Nick Volynkin
@Gergely Właśnie zorientowałem się w zamieszaniu! Z dokumentów jest również wywoływany tryb normalny tryb poleceń! A więc tryb poleceń! = Tryb linii poleceń. Łał! - jpaugh
@NickVolynkin polecenie do ponownego załadowania z dysku jest :e (lub bardziej prawdopodobne :e! ponieważ ostrzeże Cię o niezapisanych zmianach bez !) - JDS


Jeśli chcesz wyjść bez zapisywania w Vimie i Vim zwraca niezerowy kod wyjścia, możesz go użyć :cq.

Używam go przez cały czas, ponieważ nie mogę się przejmować zmianą na różowo !. Często przesyłam rzeczy do Vima, które nie muszą być zapisywane w pliku. Mamy również dziwne opakowanie SVN w pracy, które musi zostać zakończone z niezerową wartością, aby przerwać meldowanie.


65
2018-01-28 10:59



Używam tego również do przerwania commit git, visudo lub crontab, ... - Josh Lee


To jest najgorszy możliwy scenariusz wyjścia z Vima, jeśli tylko chcesz, nie masz pojęcia, co zrobiłeś i nie obchodzi cię, co stanie się z plikami, które otworzyłeś.

Ctrl-cWchodzićWchodzićviWchodzićCtrl- \Ctrl-n:qa!Wchodzić

To powinno ci pomóc przez większość czasu.

Kilka ciekawych przypadków, w których potrzebujesz czegoś takiego:

  • iCtrl-ovg (wchodzisz w tryb wstawiania, następnie tryb wizualny, a następnie tryb oczekiwania operatora)

  • QappendWchodzić

  • iCtrl-ogQCtrl-r=Ctrl-k (dzięki porcjom w tym przypadku)

  • :set insertmode (To jest przypadek, kiedy Ctrl- \Ctrl-n powraca do normalnego trybu)


Edycja: ta odpowiedź została poprawiona ze względu na powyższe przypadki. Kiedyś było:

wyjściewyjściewyjście:qa!Wchodzić

To jednak nie działa, jeśli wszedłeś w tryb Ex. W takim przypadku musisz:

viWchodzić:qa!Wchodzić

Tak więc kompletna komenda dla "Nie chcę wiedzieć, co zrobiłem i nie chcę niczego zapisywać, po prostu chcę teraz!" byłoby

viWchodzićwyjściewyjściewyjście:qa!Wchodzić


38
2018-06-24 13:38



Ach, jaka wspaniała skuteczność. Mam na myśli, że to tylko 7 naciśnięć klawiszy, aby wykonać często potrzebne działanie - cavalcade
@cavalcade Jest to niezwykle ogólna metoda zapewniania, że ​​edytor jest w trybie normalnym, a następnie bezpiecznie rezygnuje. W normalnym użytkowaniu wszystko, czego potrzebujesz, to :qlub :wq - Dan Passaro
Niezbyt ogólny! A co jeśli zrobię to ja (początkujący) i<Ctrl-O>gQ<Ctrl-R>=<Ctrl-K>? - porges
Łatwiej jest się nauczyć, jak działają tryby vim, niż zapamiętywać tę sekwencję. - jwg
@jwg Poczekaj, aż nauczysz się pisać tę sekwencję klawiszy do bufora, a la ^V, i yank to w makro! ;-) - jpaugh


Jeśli chcesz wyjść z Vima łatwy tryb (podczas używania -y opcja) można przejść do normalnego trybu Vima, naciskając Ctrl + L a następnie będzie działać jakakolwiek normalna opcja wyjścia.


32
2017-07-18 13:48



Jeszcze inna opcja: możesz użyć Ctrl+O aby tymczasowo wyjść z trybu INSERT, a następnie wejść :q. Sztuczka z tą kombinacją jest przydatna w normalnym vimie do wykonywania pojedynczego polecenia i powrotu do trybu INSERT. - Andrey Starodubtsev


Po uderzeniu WYJŚCIE (lub cmd + do na moim komputerze) musisz trafić : aby pojawił się wiersz polecenia. Następnie możesz wejść quit.

Może się okazać, że urządzenie nie pozwoli Ci wyjść, ponieważ Twoje informacje nie zostały zapisane. Jeśli mimo wszystko chcesz zrezygnować, wpisz ! bezpośrednio po wyjściu (tj. :quit!).


23
2017-11-28 15:25





Vim ma trzy tryby działania: tryb wprowadzania, tryb poleceń i tryb Ex.

Tryb wprowadzania - wszystko, co wpisujesz, wszystkie naciśnięcia klawiszy są wyświetlane na ekranie.

Tryb poleceń lub tryb Escape - wszystko, co wpiszesz w tym trybie, zostanie zinterpretowane jako polecenie.

Tryb Ex - to jest inny edytor, np. To edytor linii. Działa na linię lub na podstawie zakresu linii. W tym trybie, a : pojawia się u dołu ekranu. To jest edytor ex.

Aby wyjść z Vima, możesz wyjść, gdy jesteś w trybie ex lub w trybie poleceń. Nie możesz wyjść z Vima, gdy jesteś w trybie wprowadzania.

Wyjście z trybu ex

  1. Musisz być pewien, że jesteś w trybie dowodzenia. Aby to zrobić, po prostu naciśnij wyjście klawisz.

  2. Przejdź do trybu ex, naciskając : klawisz

  3. Użyj jednej z następujących kombinacji w trybie ex, aby wyjść:

    :q - porzucić :q! - Wyjdź bez zapisywania :wq - zapisz i zakończ lub zapisz i zakończ :wq! - tak samo jak wq, ale wymusza zapis w przypadku, gdy uprawnienia do plików są tylko do odczytu :x - napisz i wyjdź :qa - przestań. przydatne, gdy otwieranych jest wiele plików, takich jak: vim abc.txt xyz.txt

Wyjście z trybu poleceń

  1. Naciśnij klawisz Escape. Prawdopodobnie zrobiłeś to już, jeśli jesteś w trybie dowodzenia.

  2. Kapitał zakładowy ZZ (shift zz) - wyjście bezpieczeństwa

  3. Press capital ZQ (shift zq) - zamknąć bez zapisania.


22
2018-05-24 02:46



To, co nazywasz "trybem ex", jest faktycznie wywoływane tryb wiersza poleceń. Pozwala na wprowadzanie poleceń ex, ale z niektórymi ważne różnice. - jpaugh
Dzięki @jpaugh. Te linki są obecnie wyłączone. Ale rozumiem. - tovishalck


Dostałem Vima instalując klienta Git w systemie Windows. :q nie opuszczę Vima dla mnie. :exit jednak ...


14
2018-02-05 11:30



Podobnie dla vima, który robi git na makintoszu, zadziałało to. - Joel
@ Joel właśnie to sprawdziłem na moim Macu, oba polecenia są legalne (vim -version 7.3). - Nick Volynkin
Dla Git Bash w oknach, w Vim czasami ESC nie działa. posługiwać się CTRL + [ zamiast. - Val


Chciałbym dodać moje dwa centy na to. Pytanie zostało zadane tutaj.

The q polecenie z numerem zamyka dany podział w tej pozycji.

:q<split position>lub :<split position>q zamknie podział w tej pozycji.

Załóżmy, że twój układ okna Vima wygląda następująco:

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

Jeśli uruchomisz q1 polecenie, zamknie pierwszy podział. q2 zamknie drugi podział i na odwrót.

Kolejność podziału pozycji w poleceniu quit nie ma znaczenia. :2qlub :q2 zamknie drugi podział.

Jeśli podzielona pozycja, którą przekazujesz do polecenia, jest większa niż liczba bieżących podziałów, po prostu zamknie ostatni podział.

Na przykład, jeśli uruchomisz q100 na powyższym oknie konfiguracji, gdzie są tylko trzy podziały, zamknie ostatni podział (Split 3).


2
2018-02-12 23:41