我想在 vim 分割窗口中查看 bash 命令的输出:split
。为此,我安装了“Conque Shell”,它在分割窗口中显示 bash:ConqueTermSplit bash
。然后我可以运行 shell 命令并在插入模式下观察输出。但是,要返回到另一个窗口,我需要在命令模式下键入 ,因此我需要离开插入模式。因此,仅当我返回此窗口并进入插入模式时,命令输出的显示才会冻结并继续。那么我怎样才能在不离开插入模式的情况下离开“Conque Shell”呢?
请注意,在第二个窗口中查看 bash 输出的其他方法也可能解决我的问题。但是,当我在另一个窗口中工作时,它应该更新,并允许我发出信号,例如 到应用程序。
ConqueTerm 文档说:
3.1.5 持续更新终端缓冲区*ConqueTerm_ReadUnfocused*
如果设置为 1,那么您的 Conque 缓冲区将在您完成后继续更新
切换到另一个缓冲区。
注意:Conque 缓冲区可能会继续更新,但它们不会像
新行将添加到可见缓冲区底部之外。这是一个
Vim 脚本语言的局限性,我还没有找到合适的解决方案
解决方法。
>
让 g:ConqueTerm_ReadUnfocused = 1
AFAIK Vim 不支持异步会话,因此这更多的是对您对潜在替代选项的请求的响应。
我目前解决这个问题的方法是使用tmux http://tmux.sourceforge.net,描述为:
终端多路复用器:它启用多个终端(或窗口),
每个运行一个单独的程序,被创建、访问和
从单个屏幕进行控制。
因此,基本上,您可以使用 tmux 来分割屏幕,而不是在 Vim 中分割屏幕,然后在一个窗口中运行 Vim,在另一个窗口中运行您想要的任何其他程序,该程序将完全独立于 Vim 进行更新。就像 Vim 一样,您可以使用几个按键在窗口(或在 tmux 行话中称为窗格)之间切换。
还有另一个可用的终端多路复用器,称为GNU 屏幕 http://www.gnu.org/software/screen/,这也很受欢迎。我之所以提到这一点是因为我喜欢有选择,而且 Vim 有两个插件可以让你将输出直接发送到附加的屏幕或 tmux 会话。对于 GNU 屏幕,slime.vim http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/,对于 tmux,tslime.vim https://github.com/kikijump/tslime.vim.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)