如何让vim发送命令到gnu屏幕会话

时间:2009-10-03 05:41:05

标签: vim scheme gnu gnu-screen

我正在试图弄清楚如何编写脚本以将消息发送到gnu屏幕“窗口”。即我打开了一个屏幕会话,在一个窗口中我有一个vim会话,而在另一个窗口中我有一个方案解释器。当我保存我的vim会话时,我希望它在新环境中加载的另一个窗口中重新启动解释器。我可以找出除了如何在vim中使用“on save”挂钩以外的所有内容,将shell命令发送到另一个“屏幕窗口”,导致脚本终止并重新启动。如果我能弄清楚如何发送命令我可以杀死进程然后开始一个新进程 - 我只需要确保它从正确的“窗口”开始。

2 个答案:

答案 0 :(得分:4)

让vim发出shell命令,并使用screen -X向屏幕发出命令。 :at <other-window> stuff <restart-command>的一些排列。有关更多命令,请参阅man screen的自定义部分。

例如,如果我在屏幕窗口1中,使用vim,并且我在窗口0中有一个irb会话,要重新启动irb会话,我会这样做

:!screen -X at 0 stuff exit^Mirb^M

(通过CTRL-V Enter输入^M)。

答案 1 :(得分:1)

如果让方案解释器每隔很多秒运行就足够了,你可以在第二个屏幕窗口中运行watch /path/to/scheme/interpreter /path/to/scheme/file。可以使用命令行参数调整watch运行命令的时间间隔。 watch手册页包含详细信息。