我想要做的是让 Xdebug 调试器在 vim 会话中的文件上运行,所有这些都来自 perl 脚本。如果我想从命令行执行此操作,我会打开 vim,然后在 vim 中发出一个命令(特定于调试器),使 vim 监听端口 9000(在正常模式下按 F5),然后打开页面 I想要在浏览器中调试,这会在 vim 中启动调试会话。我已经成功地做到了这一点。
为了在 perl 中做这件事,我的想法是使用 fork 和系统调用。
use LWP::Simple;
if ($pid = fork) {
system('vi -c ":normal ^[[15~"');
} else {
sleep;
get 'http://localhost/homepage/index.php?XDEBUG_SESSION_START=1';
exit(0);
}
('-c ":normal ^[[15~"' 选项使 vim 通过等待端口 9000 上的新连接来启动。)
这行不通。据我所知,这个问题似乎与套接字有关。有没有办法让太多的进程在 perl 中通过这样的连接相互交谈?