2010-05-06 70 views
81

我可以在Vim中使用:shell命令打开shell,但是我无法编辑文件并同时使用shell。如何在Vim窗口中打开Shell?

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

+1

曾经有一个用于vim的shell补丁,但它不再编译afaik。最接近真正的shell的是使用screen或tmux。这是我在vim中想念的最重要的东西。 – 2010-05-06 20:53:07

+2

看起来像http://stackoverflow.com/questions/1236563/how-to-run-a-terminal-inside-of-vim – 2015-10-01 14:33:19

回答

43

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

其实,它可以更好,但工作。

+4

如果您使用Vundle来管理插件,您可以将Bundle'jewes/Conque-Shell'添加到.vimrc文件中,然后运行:BundleInstall进行安装。 – 2014-02-08 09:33:33

+0

有一点需要注意:vi的+ python或+ python3需求可能会在某些工作环境中成为杀手锏。 – cfi 2015-10-29 07:26:58

+0

这是更新的URL(带截图):https://github.com/wkentaro/conque.vim – 2016-11-15 06:07:43

17

:vsp:sp - 将vim拆分为两个实例,但不能在其中一个shell中使用:shell。

为什么不显示终端的另一个选项卡而不是vim的另一个选项卡。如果你喜欢这个想法,你可以尝试一下:Ctrl-shift-t.,如果你想短短的shell命令,你可以使用!

例如:!./a.out使VIM任何shell命令它们之间用Ctrl - pageupCtrl - pagedown

移动。

+1

的副本要运行一个当前打开的可执行文件,你可以使用'vim' path magic like所以:':!./%' – cprn 2015-08-25 20:51:18

7

您可以使用tmuxscreen(其次是只能进行水平分割而无补丁)来分割您的终端。但我不知道在两个窗格中都有一个Vim实例。

+3

屏幕可以做垂直分割,如果你从git构建它。 – 2010-05-06 20:55:01

8

如果你还没有找到,你可以使用惊人的screen plugin

Conque也是一个例外,但我发现屏幕更加实用(它不会“垃圾”您的缓冲区例如,你可以在你的缓冲区进行编辑后仅发送您真正想要的命令)

3

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

1

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

0

你可能想要打开一个“屏幕”程序, 拆分屏幕,在一个打开壳和在另一个vim。 适合我。

+0

取消-1因为没有解释。 此外,我测试了vim屏幕插件解决方案,它与mrcybul的解决方案没有什么不同。 @mrcybul:试图帮助的坦克。为了避免被低估,请仔细阅读其他答案,并且只有在您认为它带来新内容时才添加自己的答案。还包括为什么你的解决方案在某些情况下可能会更好。 – Titou 2017-05-03 11:44:14

6

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

Neovim现在通过terminal命令本地支持此功能。

+2

也可在vim 8中使用,完全相同的命令。 – roryrjb 2017-11-09 17:39:21

0

我目前正在使用tmux。

安装:sudo易于得到安装TMUX 运行:TMUX

按Ctrl + B,接着点击率+%:这将您的终端窗口在两个垂直半。

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

2

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

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

更多优势是您可以在打开的终端上切换到正常模式,并且您可以进行基本的复制和编辑。对于git提交也是非常有用的,因为我猜,因为缓冲区中的所有内容都可以用于自动完成。

我会更新此答案,因为vim也计划发布终端支持,可能在vim 8.1中。你可以按照这里的进展: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM

一旦它被释放,我相信这是一个比使用tmux更优越的设置。

+1

我认为它是在Vim 8.0中发布的 – LangeHaare 2017-11-22 15:35:19

相关问题