繁体   English   中英

如何防止vim bash命令使用全屏?

[英]How can I prevent vim bash commands from using the full screen?

当我从vim窗口内部执行bash命令时,命令的结果占用整个屏幕并且代码消失。 我希望命令的结果只占用它所需的屏幕空间。 这可能吗? 澄清我正在使用该命令

:!echo "my command"

我熟悉多个终端窗口,tmux和iterm。 我真的只是希望能够在没有额外插件的vim窗口中进行,如果可能的话。

Vim将终端切换回原始屏幕(从哪里开始); Vim本身使用备用屏幕显示其UI而没有终端滚动条,并且不会影响原始内容。 没有办法解决这个实现细节。

你可以使用GVIM; 因为那个不在终端中运行,它带有自己的(原始)终端仿真,并且只是在命令行位置附加输出; 原始窗口内容只是从视图中滚出来为shell命令输出腾出空间。 即便如此,在显示输出时也无法进行任何交互; 一旦你确认提示,输出就消失了。

在终端中,您已经提到了可能的替代方案。 直接的解决方案是通过screentmux拆分终端窗口,然后让Vim运行在一个窗口中,shell命令放在另一个窗口中。 这里的一大优势是你可以并行工作并来回切换。

从Vim 8.1开始,Vim内置了基本的终端多路复用功能; 即你可以使用:terminal terminal在Vim窗口中启动:terminal ,然后使用默认的窗口命令在Vim内部切换。

对于Vim 7,不使用外部终端多路复用器,您所能做的就是在暂存缓冲区内捕获shell命令的输出:

:new | 0read !{bash-command}

这是基本配方; 您可以使用临时缓冲区命名,关闭时自动缓冲区删除等扩展它。 有关详细信息,请参阅此Vim Tips Wiki页面

这适用于不需要很长时间执行的非交互式命令; 您没有看到实时输出,也没有看到您键入的输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM