我使用!命令语法
一直从vim运行shell命令当您在屏幕上显示一个命令的结果并按下时!再次(意图执行另一个命令)。除了底部的命令外,整个屏幕变黑。
为什么会这样? 在我看来,仍然在屏幕上输出前一个shell命令会更有用。
是否有设置可以阻止屏幕在后续命令中变为空白?
答案 0 :(得分:3)
如果您的意思是当前一个外部命令输出仍然可见,并且Vim显示“按ENTER或键入命令以继续”提示时,:!
将确实清除输出。这是因为Vim的命令行(您使用:
输入)始终位于屏幕的底部。没有办法解决这个问题。
为了帮助您解决问题,许多人会建议使用 screen 或 tmux 等终端多路复用器,并在两个窗口中使用Vim和单独的shell分割。然后,您可以使用多路复用器的命令移入/移出Vim,并根据您的需要调整相应的窗口大小。
没有它,只使用Vim,解决方法是在暂存缓冲区中捕获命令输出:
:new | 0read !ls
是基本命令;在插件或Vim Tips Wiki上有更复杂的实现。
还有一些插件(比如 ConqueShell ,感谢肯特!)试图在Vim中实现一个终端,但这些插件比上面提到的多路复用器有局限性。