vim – 通过执行命令在shell中维护一个会话

vim有许多方法可以在vim中执行shell命令。 可以跳转到shell并返回到使用shell vim, ctrl+z当前进程并返回使用fg 。 选定/当前行可以使用!w bash执行。

但是,所有这些方法仅对运行一个命令有帮助。 一旦执行命令,shell就会被终止进程。

我想知道是否有办法在shell中继续执行代码片段,并让shell从上一个命令中logging函数/variables(类似于将代码片段复制到shell提示符)来debugging代码。 为此,shell会话将不得不以某种方式持久化。

我经常遇到需要在shell上执行一些函数的情况,然后通过调用它们来进行testing。 标准的方法是复制粘贴到不同的shell然后执行它们。 如何从vim内做到这一点?

如果你的Vim是用Python支持构建的(大多数Unix版本,Windows / Cygwin版本都不是),你可能需要看一下Conque Shell插件,它允许在Vim缓冲区内运行一个shell。

编辑:校正,显然Vim 7.3的Windows现在也提供了Python支持(因此Conque兼容性)。

你可以从shell启动vim(不是gvim),然后使用<CZ>暂停vim。 你返回到调用shell(而不是一个子shell),并恢复与fg vim。 根据文档,这工作“在许多Unix系统”。

 :help suspend