Normal模式下输入Terminal后,我不知道如何返回Insert模式...
转义似乎不起作用。

#1 楼

您应该按<C-\><C-n>

有关映射建议,请参阅:help terminal-emulator

评论


在Vim 8.2中,它是:h终端模式。

– MikaelF
20-2-20在3:32

我想这不完全是NeoVim,但这也适用于添加到Vanilla VIM的终端模式

–polynomial_donut
20 May 18 '20:26

或使用@xuan在vi.stackexchange.com/a/27089/2239中提到的 (大写的“ N” !!)。对我来说,这比更自然。

–eli
20年9月7日在12:27

#2 楼

@romainl的答案是正确的,但我想为任何可能像我一样迷失于google的人添加更多信息。 >

终端模式具有自己的映射名称空间,可以使用前缀“ t”进行访问
。可以使用终端映射
自定义与终端的交互。例如,以下是
映射以退出终端模式的方法:

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



有了这些知识,您很可能需要创建一些终端映射保持与当前工作流程(标签/窗口的移动等)保持一致

评论


嗨,我设置了确切的映射,但是按键,没有任何反应。知道为什么吗?

–凯文·伯克(Kevin Burke)
16年2月2日在1:16

如果从Ex模式添加它,结果是否相同?可能正在更新错误的配置文件。

–丹·布拉德伯里(Dan Bradbury)
16年6月2日在1:29

谢谢。这帮助我添加了首选的tnoremap kj映射

–尼克·美林(Nick Merrill)
16-10-30在17:57

#3 楼

退出并关闭
tnoremap <Esc> <C-\><C-n>:q!<CR>

在Vim 8中也可以使用:
tnoremap <ESC> <C-w>:q!<CR>


评论


您不需要 N中的N,只需在之后按:。如果您真的想用所有打开的缓冲区和窗口关闭Vim,那么:qa!也许是更好的选择。但是在那种情况下,人们会放弃所有的改变。

–克里斯蒂安·布拉班特(Christian Brabandt)
18-09-26在14:33

tnoremap :bd!更好,它强制关闭终端缓冲区,而不是整个Vim会话。

–乔什·弗里德兰德
20/07/27在17:48

#4 楼

根据vim文档,有两种方法:


CTRL-W N(注意它是大写的N)
CTRL-\ CTRL-n


使用CTRL-W N(或'termwinkey'N)切换到终端正常模式。
现在终端窗口的内容在Vim的控制下,
作业输出被挂起。 CTRL- \ CTRL-N也是一样。


评论


欢迎来到Vi和Vim!

– D. Ben Knoble♦
20年8月31日在21:23

#5 楼

如果您使用的是Tmux,则可能已经安装了一些类似于“ vim”的绑定,以便在窗口窗格中四处移动,其中包括在Vim有机会使用它之前抢占“ C- \”。如果是这样,请从您的.tmux.conf中删除它们,然后重新启动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

#6 楼

好吧,我很惊讶没有其他评论提到它,所以这也许是一个不好的做法,但我个人讨厌地只是输入了exit并成功了。

评论


不错,但是您误解了我的看法。通常的想法是使终端保持运行,但是在正常模式下短暂地导航一下。您的解决方案结束了该过程(并且不适用于非壳类的东西),而ctrl- \ ctrl-n则允许我导航,拉动等等,然后按i并继续在该终端上工作

– D. Ben Knoble♦
20年6月25日在12:29

只是为了补充答案,会提供文件结束键代码,关闭大多数shell,并通过扩展终端。按下两个键(用一只手)比5个键(用两只手)快。 :)

– mazunki
20年11月6日,9:24