如何在 VIM 的新选项卡中打开终端?

the*_*arl 9 vim

当我使用 4 个文件时,所有文件都在选项卡(VIM)中打开。我想保存更改并编译它而不必关闭选项卡,即我想在新选项卡中打开一个终端以及现有的 4?

我应该如何在 VIM 中做到这一点?

Qua*_*odo 19

:tab ter
Run Code Online (Sandbox Code Playgroud)

在新选项卡中打开终端而不是在新窗口中打开它:ter。您也可以使用等效的更长的:tab terminal形式。

在此 Reddit 帖子中感谢用户 wolloda 。

额外的信息

  • 使用Ctrl-dexit关闭终端缓冲区终止 shell 。

  • Ctrl-w N或者Ctrl-\ Ctrl-n将缓冲区置于终端正常模式:击键不会转发到外壳程序,而是被 Vim 用作普通缓冲区(尽管外壳程序作业仍在运行)。然后您可以使用gt更改选项卡,键入 Ex 命令,例如:ls等。要使终端缓冲区恢复生机, i, a, ...

  • 如果您要映射它,我建议使用:tab ter++kill=hup,这样当您:qa执行终端作业时,就不会阻止 Vim 退出。这是正常终端仿真器在关闭时发送到其作业的信号。

  • 对于终端模式映射,tnoremap例如使用

    tnoremap <S-Tab> <C-W>:tabprevious<CR>
    tnoremap <C-N>   <C-W>N
    
    Run Code Online (Sandbox Code Playgroud)

有关:help :terminal和 的更多信息:help :tab


425*_*esp 5

2019 年,vim 现在有了终端模式。

:help terminal
Run Code Online (Sandbox Code Playgroud)

例如,您可以像这样使用它。

# go to terminal-job mode
:terminal

# go to terminal-normal mode
ctrl-w N

# go back to terminal-job mode
i
Run Code Online (Sandbox Code Playgroud)


Bre*_*t Y 2

Vim 8.1现在有一个内置终端,可以使用 :term 命令打开。这提供了与 Vim 其余功能的更完整的集成。


原答案:

我建议查看tmuxscreen。我自己使用 tmux,并与vim-tmux-navigator一起使用,在终端和 vim 之间移动非常容易。