Vim:后续shell命令的空白屏幕

时间:2013-09-04 14:41:36

标签: vim

我使用!命令语法

一直从vim运行shell命令

当您在屏幕上显示一个命令的结果并按下时!再次(意图执行另一个命令)。除了底部的命令外,整个屏幕变黑。

为什么会这样? 在我看来,仍然在屏幕上输出前一个shell命令会更有用。

是否有设置可以阻止屏幕在后续命令中变为空白?

1 个答案:

答案 0 :(得分:3)

如果您的意思是当前一个外部命令输出仍然可见,并且Vim显示“按ENTER或键入命令以继续”提示时,:!将确实清除输出。这是因为Vim的命令行(您使用:输入)始终位于屏幕的底部。没有办法解决这个问题。

为了帮助您解决问题,许多人会建议使用 screen tmux 等终端多路复用器,并在两个窗口中使用Vim和单独的shell分割。然后,您可以使用多路复用器的命令移入/移出Vim,并根据您的需要调整相应的窗口大小。

没有它,只使用Vim,解决方法是在暂存缓冲区中捕获命令输出:

:new | 0read !ls

是基本命令;在插件或Vim Tips Wiki上有更复杂的实现。

还有一些插件(比如 ConqueShell ,感谢肯特!)试图在Vim中实现一个终端,但这些插件比上面提到的多路复用器有局限性。