59

I can't figure out how to go back to Normal mode after entering Terminal in Insert mode...

Escape just doesn't seem to work.

Any idea ?

57

You are supposed to press <C-\><C-n>.

See :help terminal-emulator for a mapping suggestion.

  • 2
    The help page didn't work for me. I have to use :help terminal-emulator-input. – jasonszhao Oct 10 '16 at 1:19
  • 3
    Now it's just :h terminal-emulator – user859 Sep 19 '17 at 13:09
40

The answer by @romainl is correct but I wanted to add a bit more info for anyone that may have stumbled on this from google like I did.

Directly from the docs we get this note:

Terminal mode has its own namespace for mappings, which is accessed with the "t" prefix. It's possible to use terminal mappings to customize interaction with the terminal. For example, here's how to map to exit terminal mode:

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

With that knowledge you will most likely need to create some terminal mappings to stay inline with your current workflow (tab/window movement, etc.)

  • Hi, I set up that exact mapping, but I'm pressing <Esc> and nothing happens. Any idea why? – Kevin Burke Jun 2 '16 at 1:16
  • if you add it from Ex mode are the results the same? might be updating the wrong config file.. – Dan Bradbury Jun 2 '16 at 1:29
  • 1
    Thanks. This helped me add my preferred mapping of tnoremap kj <C-\><C-n> – Nick Merrill Oct 30 '16 at 17:57
2

Exit & close

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

In Vim 8, this also works:

tnoremap <ESC> <C-w>:q!<CR>
  • 1
    You don't need the N in <c-w>N, you can simply press : after <c-w>. And if you really want to close Vim with all its open buffers and windows, than :qa! might be the better choice. But one would loose all changes in that case. – Christian Brabandt Sep 26 '18 at 14:33
1

If you are using Tmux, you may have installed some "vim-like" bindings to move around in the window panes which among other things grab the "C-\" before Vim has a chance to use it. If so, remove these from your .tmux.conf and restart 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.