Wyjdź z trybu terminala w Neovim

59

Nie mogę wymyślić, jak wrócić do Normaltrybu po wejściu Terminalw Inserttryb ...

Wydaje się, że Escape nie działa.

Dowolny pomysł ?

Stephane Rolland
źródło

Odpowiedzi:

57

Powinieneś naciskać <C-\><C-n>.

Zobacz :help terminal-emulatorsugestię dotyczącą mapowania.

romainl
źródło
2
Strona pomocy nie działała dla mnie. Muszę użyć :help terminal-emulator-input.
jasonszhao,
3
Teraz jest to tylko: h emulator terminala
40

Odpowiedź @romainl jest prawidłowa, ale chciałem dodać trochę więcej informacji dla każdego, kto mógł natknąć się na to z Google tak jak ja.

Bezpośrednio z dokumentów otrzymujemy tę notatkę:

Tryb terminalowy ma własną przestrzeń nazw dla mapowań, do której można uzyskać dostęp za pomocą prefiksu „t”. Możliwe jest użycie odwzorowań terminali w celu dostosowania interakcji z terminalem. Na przykład, oto jak zmapować, aby wyjść z trybu terminala:

:tnoremap <Esc> <C-\><C-n>

Mając tę ​​wiedzę, najprawdopodobniej będziesz musiał utworzyć mapowania terminali, aby zachować zgodność z bieżącym przepływem pracy (ruch tabulatorów / okien itp.)

Dan Bradbury
źródło
Cześć, skonfigurowałem dokładne mapowanie, ale naciskam <Esc> i nic się nie dzieje. Masz pomysł, dlaczego?
Kevin Burke,
jeśli dodasz go z trybu Ex, czy wyniki będą takie same? może aktualizować niewłaściwy plik konfiguracyjny.
Dan Bradbury
1
Dzięki. Pomogło mi to dodać moje ulubione mapowanietnoremap kj <C-\><C-n>
Nick Merrill
2

Wyjdź i zamknij

tnoremap <Esc> <C-\><C-n>:q!<CR>

W Vimie 8 działa to również:

tnoremap <ESC> <C-w>:q!<CR>
Serge Stroobandt
źródło
1
Nie trzeba się Nin <c-w>N, można po prostu nacisnąć :po <c-w>. A jeśli naprawdę chcesz zamknąć Vima ze wszystkimi jego otwartymi buforami i oknami, :qa!może to być lepszy wybór. Ale w takim przypadku można by stracić wszystkie zmiany.
Christian Brabandt,
1

Jeśli używasz Tmuxa, być może zainstalowałeś jakieś „podobne do vima” wiązania, aby poruszać się w oknach okien, które między innymi chwytają „C- \”, zanim Vim będzie mógł z niego skorzystać. Jeśli tak, usuń je .tmux.confi zrestartuj tmux:

bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
bind-key -T copy-mode-vi C-\ select-pane -l

Mark Stosberg
źródło