Jak przełączać się między trybami poleceń i wstawiania w Vimie?

88

Właśnie zacząłem używać Vima jako IDE. Używałem go przez jakiś czas jako edytor testów, więc nie musiałem często przechodzić do trybu poleceń. Ale ponieważ programuję w Javie, muszę przejść do trybu poleceń, aby utworzyć plik, skompilować / uruchomić go ... itd.

Problem w tym, że potrzebuję dobrego sposobu przełączania się między tymi dwoma trybami.

Poszukałem w Internecie i jest napisane, że <Esc>klucz ma to zrobić, ale to nie działa dla mnie (może to nie jest dla gVima? Nie wiem dlaczego).

Muszę naciskać za CTRLOkażdym razem, aby przejść do trybu poleceń; klawisz Escape działa w tym trybie ... przenosi mnie z powrotem do trybu wstawiania. Ale czy istnieje lepszy lub łatwiejszy sposób przełączania się między trybem poleceń a trybem wstawiania?

Ravish Chawla
źródło
2
Esc to zdecydowanie właściwy klawisz do zakończenia wstawiania. Wstawkę można uruchomić na różne sposoby. Małe litery i, aby rozpocząć wstawianie w miejscu kursora, wielkie litery I, aby rozpocząć wstawianie na początku wiersza, itd.
Vaughn Cato
Zaczynając od pustego pliku, następujące znaki powinny dać plik ze słowem „cześć”: ihello<ESC>:w hello.txt<ENTER>
Vaughn Cato
8
ctrl-[działa jako substytut klawisza Esc na wielu klawiaturach.
Vaughn Cato

Odpowiedzi:

52

Wygląda na to, że Twój Vim został uruchomiony w trybie łatwym . Zobacz :help easy.

Dzieje się tak, gdy Vim jest wywoływany z -yargumentem lub jako evim, a może masz :set insertmodegdzieś w swojej .vimrckonfiguracji. Znajdź źródło i wyłącz je; tymczasowo można to również zrobić za pomocą Ctrl+ O :set noim Enter.

Ingo Karkat
źródło
Myślę, że to było to. Miałem włączony tryb wstawiania w moim pliku. Po usunięciu klawisz Escape działa idealnie. Dzięki!
Ravish Chawla
8
to jest łatwy tryb !?
Stachu
5
Tryb prosty Vim, teraz to oksymoron. Czy w tym miejscu można wyjść z Vima?
Davos
1
@Davos to jest tryb, w którym jest uruchamiany w trybie wstawiania, więc jak na ironię jest to tryb, w którym nie można wyjść z vim: p "tryb normalny" jest o wiele łatwiejszy, po prostu alt + :, x XD
Fuseteam
115

Naciśnięcie powoduje ESCwyjście z trybu wstawiania do trybu normalnego, w którym można nacisnąć, :aby wpisać polecenie. Naciśnij iponownie, aby powrócić do trybu wstawiania i gotowe.

Nie jestem guru Vim, więc ktoś inny może być bardziej doświadczony i dać ci inne możliwości.

Ricardo Souza
źródło
3
Dla większości z nas, ale zaakceptowana odpowiedź zawierała odpowiedź na konkretny problem.
Saul Axel Martinez Ortiz
21

Wspomniano o tym w innych pytaniach , ale ctrl + [jest to odpowiednik ESCna wszystkich klawiaturach.

begolf123
źródło
Nigdy tego nie wiedziałem, przydatne, gdy klawisz Escape nie jest obsługiwany
shuva
Wow, dzięki za te informacje! Kopiowanie sekwencji klawiszy Tmux ma teraz znacznie więcej sensu.
Thomas Legris
4

Za pomocą jj

W moim przypadku ustawienie .vimrc (lub w gVimie jest w _vimrc) poniżej.

inoremap jj <Esc>   """ jj key is <Esc> setting
StarMomo
źródło
Jest to typowe mapowanie. Uważam, że ma niewielkie opóźnienie, ponieważ czeka na wprowadzenie dodatkowych znaków. Alternatywnie, przemapuj swój klucz Capslock na esc, używając czegoś takiego jak KeyRemap4MacBook na Macbooku
Koobz
Łatwiej było mi
zmienić przypisanie
3

Pochodząc z emacsa odkryłem, że lubię ctrl +klawisze do robienia różnych rzeczy, aw vimie stwierdziłem, że oba [ctrl + C]i [alt + backspace]wejdą w tryb normalny z trybu wstawiania. Możesz spróbować i sprawdzić, czy któryś z nich zadziała.

maxorcist
źródło
2

U mnie problem polegał na tym, że byłem w trybie nagrywania . Aby wyjść z trybu nagrywania, naciśnij q. Wtedy Esczadziałał zgodnie z oczekiwaniami dla mnie.

betontalpfa
źródło
0

Jest jeszcze jedno rozwiązanie tego rodzaju problemu, który, jak sądzę, jest raczej rzadki i możesz go doświadczyć, jeśli używasz vima na OS X Sierra. Właściwie to problem z przyciskiem Esc - nie z vimem. Na przykład nie mogłem wyjść z pełnoekranowego wideo na youtube za pomocą Esc, ale żyłem z tym przez kilka miesięcy, dopóki nie doświadczyłem tego samego problemu z vimem.

Znalazłem to rozwiązanie. Jeśli jesteś wystarczająco leniwy, aby skorzystać z zewnętrznego łącza, pomogło wyłączenie Siri i zabicie procesu w Monitorze aktywności.

oleander
źródło
0

Możesz użyć Alt + H, J, K, L, aby przesunąć kursor w trybie wstawiania.

Khoi Hoang
źródło
1
Nie, nie możesz. To prawdopodobnie zmiana Twojej konfiguracji.
Saul Axel Martinez Ortiz
@SaulAxelMartinezOrtiz tak, ale technicznie wychodzi z trybu normalnego, po czym można się poruszać w trybie normalnym: p
Fuseteam