我如何在Vim窗口中打开一个Shell?

我可以在Vim中使用:shell命令打开一个shell,但是我不能编辑一个文件,同时使用shell。

有没有办法在许多Windows(或标签)中拆分Vim,并在其中之一打开一个shell?

那么这取决于你的操作系统 – 实际上我没有在MS Windows上testing – 但是Conque是最好的插件之一。

事实上,它可以更好,但工作。

:vsp或者:sp :将vim拆分成两个实例,但是不能在其中的一个中使用shell。

为什么不显示terminal的另一个标签而不是另一个vim的标签。 如果你喜欢这个想法,你可以尝试一下: Ctrl-shift-t. 并使用Ctrl - pageupCtrl - pagedown在它们之间移动

如果你只需要几个shell命令,你可以在vim中使用任何shell命令!

例如:!./a.out

如果你还没有发现,你可以使用惊人的屏幕插件 。

Conque也是例外,但我发现屏幕更实用(例如,它不会“ 抛弃 ”你的缓冲区,你可以在你的缓冲区中编辑它们之后发送你真正想要的命令)

您可以使用tmuxscreen (其次是只能做水平拆分没有补丁)拆分您的terminal。 但我不知道在两个窗格中都有一个Vim实例。

最近,但作为一个有用的暗示,通过谷歌到达这里的人。

Neovim现在通过terminal命令本地支持这个。

Shougo的VimShell ,如果与neocomplcache一起使用,可以自动完成文件名

不是绝对的你要求什么,但你可能会感兴趣的插件vim笔记本 ,允许用户保持后台进程活着,并使其评估当前文档的一部分(并在文档中写入输出)。 它旨在用于包含要评估代码片段的笔记本式文档。

我想这是一个相当古老的问题,但现在在2017年。我们有neovim,这是vim的分支,增加了terminal支持。

所以调用:term将打开一个terminal窗口。 与使用tmux(terminal多路复用器)相比,这个解决scheme的优点在于,您将拥有与vim设置相同的窗口绑定。 neovim与vim兼容,所以你可以基本上复制和粘贴你的.vimrc ,它就可以工作。

更多的好处是你可以在打开的terminal上切换到正常模式,你可以做基本的复制和编辑。 这也是非常有用的git提交也我猜,因为你的缓冲区中的一切,你可以使用自动完成。

我会更新这个答案,因为vim也计划发布terminal支持,可能在vim 8.1。 您可以在此处查看进度: https : //groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM

一旦发布,我相信这是比使用tmux更优越的设置。

你可能想打开一个“屏幕”程序,拆分屏幕,打开一个shell和另一个vim。 为我工作。

我目前正在使用tmux。

安装:sudo apt-get install tmux运行它:tmux

Ctrl + b后跟Ctr +%:它将你的terminal窗口分成两半。

Ctrl +“向左箭头|向右箭头”:在terminal之间移动。