当我使用shell
(或等同于!
)从Stata调用gVim时,Stata不会等待命令完成并继续使用.do文件。我通常指定一个简短sleep
,一切都很好(在Stata邮件列表here上讨论过)。
但有时gVim调用很长,而且长度是先验未知的。例如。我使用gVim的argdo
来删除文本文件夹中的标题。
!gvim -c "argdo 1,3d | update" *sheet*.txt
有什么方法可以强迫gVim不将控制权交还给Stata?或者,我是在.do文件之外或使用pause
/冗长sleep
完成此步骤的最佳选择?谢谢!
哦,我使用gVim 7.3进入Win 8(64位)。
答案 0 :(得分:1)
我认为您需要将此调用作为Stata命令或其等效命令。
也就是说,尝试从do-file编辑器窗口单独运行它,或者将其包含在单独的do文件中。
我意识到这不是一个有吸引力的解决方案,但原则上它似乎是唯一的解决方案。
(sleep
解决方案我不喜欢捏造,但我想原则上没有人喜欢它们。)