2012-11-08 50 views
0

我想将一个进程自动化为php应用程序。所以我使用这个插件,启动调试过程中(F5)后,它显示在命令行此消息:在vim中清除命令行?

等待在端口9000建立新连接5秒......

因此,之后立即抛出该消息,我想调用一个在我的home文件夹中的bash脚本。所以,我创建了一个关键的招投标是这样的:

map gm <F5> :!sh ~/refresh_browser.sh<enter> 

我的问题:因为消息waiting ...是不可能在命令行写命令。

那么,有没有什么办法可以在执行bash脚本之前清除命令行以删除waiting..消息?如果没有,你有什么建议?

编辑:后英戈Karkat的答案终于我创建了一个关键的像这样绑定:

map gm :! ~/my_script.sh &<enter><F5> 

与此脚本:

#!/bin/sh 
xdotool windowfocus `xdotool search --name "Mozilla Firefox" | head -1` 
sleep 2 
xdotool key F5 
xdotool windowactivate `xdotool search --name "GVIM" | head -1` 
xdotool key F4 #to go to the breakpoint 
+0

'控制''z' ...做一些东西...'fg%1':\呃呃呃...我更喜欢你的解决方案,所以你留在vim。顺便说一下,你应该回答你的问题。它会更明显。 – dylnmc

回答

2

waiting...消息,事实上,你不能发出额外的命令意味着Vim仍然被阻塞;可能,该插件正在执行外部命令或正在轮询某些内容。由于Vim本质上是单线程的,因此您无法在其中执行任何操作。 (好吧,除了从Vimscript转到允许并行处理的Perl,Python,Ruby等)。

另一方面,您打算启动的Bash脚本能够启动其他进程背景(附加&),所以我建议你将你想要的调用顺序颠倒过来,并在插件之前调用脚本。