我试图弄清楚如何编写 vim 脚本以向 gnu 屏幕“窗口”发送消息。即,我打开了一个屏幕会话,在一个窗口中我有一个 vim 会话,而在另一个窗口中有一个方案解释器。当我保存我的 vim 会话时,我希望它在新环境中加载的另一个窗口中重新启动解释器。除了如何在 vim 中使用“on save”钩子将 shell 命令发送到另一个“屏幕窗口”导致脚本终止并重新启动之外,我可以弄清楚其他所有内容。如果我能弄清楚如何发送命令,我可以终止进程然后启动一个新进程——我只需要确保它在正确的“窗口”中启动。
问问题
1685 次
2 回答
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
(^M
通过 CTRL-V Enter 输入)。
于 2009-10-03T17:49:21.153 回答
1
如果你让方案解释器每隔这么多秒运行一次就足够了,你可以watch /path/to/scheme/interpreter /path/to/scheme/file
在第二个屏幕窗口中运行。调整运行命令的时间间隔watch
可以使用命令行参数进行调整。watch
手册页包含详细信息。
于 2009-10-03T07:57:23.153 回答