如何在vim中从终端切换回编辑器?

5
我是vim的新手,并且了解到您可以在vim中以两种方式与终端进行交互。第一种是输入:!。第二种是使用:term,当您在源代码旁边拥有一个终端时。一旦我按下:term,我的光标就在终端中。如何切换回我的源代码,反之亦然?这里的答案并没有真正帮助我。我尝试了键组合C-W,然后:bn,但它只退出终端,然后又回到终端。 (我如何在Vim内运行终端?)

2
你应该在这里提问vim相关问题:https://vi.stackexchange.com/ - Martin York
1
我投票关闭此问题,因为它属于https://vi.stackexchange.com/。 - Martin York
@MartinYork,vi.stackexchange.com也许是一个更好的论坛,但我认为它并不是离题的,因为这是一个软件开发人员经常使用的工具,显然在这个论坛是允许的。这只是我的建议。 :-) - John Szakmeister
听起来你需要练习分屏导航。当你输入:term时,vim默认为水平分屏。如果你阅读:help :split的条目,并练习在分屏之间移动,我认为你就可以了。 - Patrick Bacon
3个回答

7
:help :terminal 所述,您始终可以使用<Ctrl-\><Ctrl-N>:help CTRL-\_CTRL-N)退出到正常模式。 使用i返回到终端交互。

这个答案真是帮了我省下一次按键的麻烦。之前我一直使用<Ctrl-W><Shift-N>,直到看到了这个答案。 - fde-capu

3

您可以使用:shell:sh来切换终端,使用exit返回到Vim。您也可以使用C-zfg组合键以相同的方式。


0
正如其他人指出的那样,使用终端并输入:terminal后,您将进入终端模式。您可以使用<Ctrl-\><Ctrl-N>切换回正常模式,然后切换到您的源代码缓冲区。
要从某个缓冲区切换到一个已存在的终端,请考虑将以下快捷方式添加到您的配置文件中:
" switch to an existing terminal
" by typing `<c-t>` in normal mode.
" It works by simply switching to a buffer that
" starts with the `term` keyword.
nmap <c-t> :b term<CR>i

在NeoVim中,你可以将快捷键<Ctrl-N>绑定到终端模式下的<Ctrl-\><Ctrl-N>,以使你的生活更加轻松。
" Escape to normal mode from inside the terminal by typing <C-n>
:tnoremap <C-n> <C-\><C-n>

更好的是,在Neovim中,你可以通过以下配置,在终端中使用<C-t>快速切换回上一个缓冲区。
" Switch back to code buffer from terminal using <C-t>
:tnoremap <C-t> <C-\><C-n> :b#<CR>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接