我在Windows 8.1上使用Stata 14.1并将我的个人.ado文件移动到GitHub存储库。这将foo.ado放在“C:/ Users / Richard / Documents / GitHub / foo /”中,bar.ado放在“C:/ Users / Richard / Documents / GitHub / bar /”中,依此类推。
我使用adopath
将GitHub根目录添加到adopath + "C:/Users/Richard/Documents/GitHub/"
,但Stata没有搜索.ado文件的“foo”,“bar”和其他子目录。我通过添加带有adopath + "C:/Users/Richard/Documents/GitHub/foo"
的foo.ado存储库来修复此问题,依此类推。
我希望Stata以递归方式搜索“C:/ Users / Richard / Documents / GitHub /”,因为它会对BASE
,SITE
和PLUS
执行此操作。递归搜索是否仅限于默认的adopath
目录?
公平地说,向adopath
添加十个目录并不困难,但我想遵循最佳实践。除了adopath
和1996 FAQ之外,我找不到help adopath
的更多内容。
答案 0 :(得分:5)
Stata并不完全递归搜索BASE,SITE和PLUS。它搜索每个目录,并在目录中,将在一个子目录中搜索,该子目录的名称是要搜索的命令的第一个字母。
在PERSONAL中,我创建了子目录f
并将其放置在foo.ado
中。当我在Stata的命令窗口中输入命令foo
时,Stata找到foo.ado
并在其中运行该程序。
这并不能直接解决您的问题,但它确实表明Stat会将PERSONAL与其他目录保持一致,从而降低说服StataCorp实施您的建议的可能性,但确认您的解决方案似乎是&#34 ;最佳实践"比如他们。
在我的Mac上,我将目录f
重命名为gnxl
,然后在终端窗口中重命名
cd ~/Library/Application Support/Stata/ado/personal
ln -s gnxl/foo.ado .
之后,退出并重新启动Stata后,foo
命令按预期执行。也许这为您指明了一个方向,通过一些自动化来生成符号链接,因为在您的存储库中创建了新的ado文件。我不知道GitHub是否足够知道它的框架是否可行。