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