防止gVim将控制返回命令行(从Stata调用时)

防止gVim将控制返回命令行(从Stata调用时),vim,stata,Vim,Stata,当我使用shell(或等效于!)从Stata调用gVim时,Stata不会等待命令完成并继续使用.do文件。我通常指定一个简短的睡眠,一切都很好(在Stata邮件列表中讨论) 但有时gVim调用很长,而且长度是未知的。例如我使用gVim的argdo从文本文件文件夹中删除标题 !gvim -c "argdo 1,3d | update" *sheet*.txt 我有没有办法强迫gVim不把控制权交给Stata?或者,我的最佳选择是在.do文件之外完成此步骤,还是使用暂停/longer睡眠?谢谢

当我使用
shell
(或等效于
)从Stata调用gVim时,Stata不会等待命令完成并继续使用.do文件。我通常指定一个简短的
睡眠
,一切都很好(在Stata邮件列表中讨论)

但有时gVim调用很长,而且长度是未知的。例如我使用gVim的
argdo
从文本文件文件夹中删除标题

!gvim -c "argdo 1,3d | update" *sheet*.txt
我有没有办法强迫gVim不把控制权交给Stata?或者,我的最佳选择是在.do文件之外完成此步骤,还是使用
暂停
/longer
睡眠
?谢谢


哦,我使用的是Win 8(64位)和gVim 7.3。

我认为您需要将此调用设置为Stata命令或等效命令

也就是说,请尝试从do文件编辑器窗口中单独运行此命令,或将其包装在单独的do文件中

我意识到这不是一个有吸引力的解决方案,但原则上它似乎是唯一的解决方案


sleep
解决方案我不喜欢像软糖一样,但我想原则上没有人喜欢它们。)

我认为您需要将此调用作为Stata命令或类似命令

也就是说,请尝试从do文件编辑器窗口中单独运行此命令,或将其包装在单独的do文件中

我意识到这不是一个有吸引力的解决方案,但原则上它似乎是唯一的解决方案


睡眠
解决方案我不喜欢像软糖一样,但我想原则上没有人喜欢它们。)

谢谢,尼克。这就是我一直在做的,但一旦你实现了99%的自动化,你真的希望有办法得到最后一点。谢谢,尼克。这就是我一直在做的,但一旦你有了99%的自动化,你真的希望有办法得到最后一点。