Jak zamknąć vima z linii poleceń?

46

Wiem, że to bardziej ogólne pytanie o Linuksa, ale w / e. Więc kiedy wchodzę do programu takiego jak vim w wierszu polecenia, wyświetla cały tekst w pliku i mogę go edytować itp. Ale nie mogę wymyślić, jak zamknąć lub zapisać plik i wrócić do wiersza poleceń bez zabijania proces. Każda pomoc jest mile widziana.

Letseatlunch
źródło

Odpowiedzi:

72

W vimie są 3 różne tryby:

  • Wstaw - umożliwia normalne pisanie i edytowanie
  • Visual - służy do wybierania kopiuj / wklej itp.
  • Normalny - używany do poleceń

Aby wrócić do trybu normalnego, zawsze możesz nacisnąć esc.

Po przejściu do trybu normalnego Naciśnij, :aby rozpocząć polecenie (zobaczysz je w lewym dolnym rogu). Następujące polecenia są związane z wychodzeniem z vima:

  • :q - wyjdź, jeśli nie zostaną wprowadzone żadne zmiany
  • :q! - wyjdź i zniszcz wszelkie dokonane zmiany
  • :wq - zapisz zmiany (zapisz) i wyjdź
  • :x- podobnie do :wq, zapisz plik tylko, jeśli dokonano zmian, a następnie zakończ
jondavidjohn
źródło
4
i :xjest skrótem do:wq
Ward Muylaert
2
Ty po prostu zapomniał tryb „normalny”. łał. W rzeczywistości mode()funkcja vim może zwrócić 18 różnych wartości.
Benoit
Jak wspomina Benoit, w tej odpowiedzi myląco użyto terminu „tryb poleceń” w odniesieniu do tego, co dokumentacja vim nazywa „trybem normalnym”. Dokumenty vim uważają tryb poleceń za wprowadzany przez naciśnięcie :w trybie normalnym. Jeśli trafisz esc, wrócisz do normalnego trybu. -1 za wprowadzanie w błąd osób próbujących nauczyć się standardowej terminologii (i w konsekwencji móc zrozumieć system pomocy).
intuicyjnie
6
@intuited Każdy może zasugerować zmiany, które prawdopodobnie będą bardziej pomocne na dłuższą metę niż głosowanie negatywne i dobra rada, która zostanie zakopana w komentarzach.
Michael Martin-Smucker,
Dzięki za informację, powinna być również wyświetlona gdzieś w VIM, aby można było wiedzieć ... jej wyszukiwanie w Internecie jest takie śmieszne.
shridutt kothari
14

Najpierw naciśnij escapeklawisz. 1

Następnie wpisz ZZ(to dwie duże litery Z z rzędu).
Lub wpisz :x. Albo zapisze wszelkie zmiany i wyjdzie.
Możesz także użyć:wq

Alternatywnie możesz wpisać :q (aka: „ wyjdź, proszę ”). Wyjdzie to tylko, jeśli nie dokonałeś edycji.

Jeśli wprowadziłeś zmiany i chcesz je odrzucić i wyjść, wpisz :q!(aka „ przestań, cholera !”)

1 : Zapewnia to przejście do trybu „komend”. Które chcesz wpisywać polecenia, takie jak te potrzebne do wyjścia.

Belacqua
źródło
4

Ku naszej niedogodności nie ma ogólnej metody wychodzenia z programów wiersza poleceń, podobnie jak przycisk „X” dla programów graficznych.

Wiele programów wiersza poleceń korzysta z opcji Q(np. manI top) lub Ctrl+ C(np. pingI watch), aby wyjść, ale różni się to znacznie, szczególnie w przypadku edytorów tekstu:

  • W szczególności Vim używa niejasnej kombinacji :q!ówczesnej Enter, zwykle poprzedzonej kilkoma naciśnięciami „ Escna miarę”.
  • Emacs , kolejny klejnot, preferuje Ctrl+, Xa następnie Ctrl+ C.

Takie edytory to pułapki dla niedoświadczonych. Moją osobistą preferencją i zaleceniem jest, aby zmuszony do edytowania tekstu w wierszu poleceń używać bardziej zrozumiałego edytora Joe's Own Editor (JOE) .

ændrük
źródło
4
Powiedziałbym, że nanojest to znacznie bardziej uniwersalny, intuicyjny edytor tekstowy konsoli.
jondavidjohn
@jondavidjohn Twoje spory są dyskusyjne. Zgadzam się, że nano jest bez wątpienia bardziej uniwersalny i nie twierdzę, że jest mniej zrozumiały niż JOE. Moje preferencje dotyczące JOE wynikają z rozszerzonego zestawu funkcji , a na moją rekomendację dla niedoświadczonych użytkowników wpływają subtelności, takie jak użycie terminu Save zamiast archaicznego WriteOut .
ændrük
Zasadniczo możesz użyć ^ Z do zawieszenia procesu. Następnie możesz go zabić, zignorować, umieścić w tle lub przywrócić. (zabij% 1 lub zabij% x, bg, fg). W każdym razie istnieje pewna jedność kontroli pracy.
belacqua,
3

Obok odpowiedzi jondavidjohna, oto dwa linki, które zawierają niezbędne informacje na temat używania vima.

  1. To jest grafika klawiatury, która pokazuje, co robi każdy klawisz, w zależności od tego, czy jesteś w trybie edycji, trybie poleceń lub trybie wizualnym:

    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

  2. To najlepszy samouczek vim, jaki kiedykolwiek przepracowałem. Jest konwersacyjny i łatwy do zrozumienia, co wynika z jego formatu IRC / wiadomości błyskawicznych.

    http://www.vi-improved.org/tutorial.php

Wreszcie są tacy jak aendruk, którzy po prostu nie chcą używać zaawansowanych edytorów tekstu wiersza poleceń. W szczególności Vim ma stromą krzywą uczenia się i rzeczywiście wymaga początkowego wysiłku, aby się przyzwyczaić. Ale jest bardzo szybki i bardzo silny. Jeśli interesujesz się linuksem wykraczającym poza podstawowe użycie pulpitu, warto zainwestować czas w naukę przyzwoitego edytora tekstu wiersza poleceń, takiego jak Vim lub Emacs. Jeśli chcesz po prostu edytować tekst i nie przejmujesz się tym bardziej, spróbuj gedit filename.txtzamiast tego wpisać . Uruchomi znany program graficzny, podobnie jak Notatnik w systemie Windows.

djeikyb
źródło
@ djeikyb: Rozumiem, że rozróżniasz podstawowe użycie pulpitu od zaawansowanej edycji tekstu w wierszu poleceń. Siłą Ubuntu w porównaniu z innymi dystrybucjami Linuksa jest zdolność do udostępniania pulpitu Linuksa codziennym użytkownikom komputerów, którzy na swoją korzyść są teraz coraz bardziej postrzegani jako wyjątkowy luksus, polegający na tym, że nigdy nie trzeba wiedzieć, kim są nawet redaktorzy tacy jak Vim.
ændrük
... Z myślą o tej szczególnej wolności podejmuję decyzję, by pracować tak wysoko, jak tradycyjne metody wiersza poleceń Linuksa, na co mam cierpliwość podczas codziennego korzystania z komputera. Staram się wykorzystywać tylko proste i dostępne narzędzia, głównie dlatego, że mogę sobie na to pozwolić . Niewłaściwe byłoby stwierdzenie, że po prostu nie lubię edytorów tekstu wiersza poleceń. Przeciwnie, lubię Vima z jego wtyczką VimOutliner i jestem mu wdzięczny za jego wpływ na projekt Vimperator / Pentadactyl.
ændrük
... Jednak moje osobiste użycie tych narzędzi postrzegam jako odchylenie od typowego użytkowania komputera. Uważam, że byłoby zdrowym postępem dla społeczności Ubuntu, aby mniej chętnie sugerować nowym użytkownikom, że codzienne korzystanie z zaawansowanych narzędzi o stromych krzywych uczenia się jest normą wśród codziennych użytkowników.
ændrük
@ Letseatlunch, jeśli Twoim celem jest opanowanie Vima, to zdecydowanie zachęcam do kontynuowania tego. Chcę tylko powiedzieć, że chociaż, co ważne, Ubuntu oferuje wiele tak zaawansowanych narzędzi, których zupełnie brakuje innym systemom operacyjnym, nauka korzystania z nich nigdy nie powinna być wymogiem korzystania z Ubuntu.
ændrük
Świetne wyjaśnienie! Zmodyfikuję swoją odpowiedź, aby lepiej to odzwierciedlić. Ponadto szczególnie poleciłem gedit nad nano, ponieważ gedit jest wyższy poziom ze znanym GUI, a ponieważ nano początkowo było dla mnie absurdalnie mylące (co oznacza symbol karetki? Jak wyjść? Jak mam zapisać?) . Co jest zabawne, biorąc pod uwagę, że vim jest moim ulubionym redaktorem.
djeikyb
2

jeśli Esc :q!nie działa,

spróbuj najpierw Ctrl+ q(aby odblokować ekran, który został zablokowany za pomocą Ctrl+ s)

następnie spróbuj ponownie Esc :q!(aby wyjść bez zapisywania) lub Esc :wq(aby zapisać i wyjść)

Gael P.
źródło
0

Chcesz wyjść bez zapisywania:

  1. Trafienie ESC
  2. Trafienie ZQ

Wyjdź z zapisz:

  1. Trafienie ESC
  2. Trafienie ZZ
Zoltan
źródło