回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在大学用Vim在Windows中编写Stata脚本已经有一段时间了。我现在正在学习R,我想完全改用Linux作为我的操作系统(我最近在笔记本电脑上换成了Ubuntu)。R在Windows和Linux中都可以很好地与Vim配合使用,但是有时我仍然需要使用Stata。在Windows中,我一直在使用Stata用户提供的一个简单的AutoIt脚本将行/整个文件发送到Stata进行评估。这个脚本在Linux中不起作用。在</p>
<p>这就是剧本的样子</p>
<pre><code>; AutoIt v3 script to run a Stata do-file from an external text editor
; Version 3.1, Friedrich Huebler, fhuebler@gmail.com, www.huebler.info, 30 March 2009
; Declare variables
Global $ini, $statapath, $statawin, $dofile, $winpause, $keypause, $clippause
; File locations
; Path to INI file
$ini = @ScriptDir & "\rundo.ini"
; Path to Stata executable
$statapath = IniRead($ini, "Stata", "statapath", "C:\Program Files\Stata10\wsestata.exe")
; Title of Stata window
$statawin = IniRead($ini, "Stata", "statawin", "Stata/SE 10.1")
; Path to do-file that is passed to AutoIt
; Edit line to match editor used, if necessary
$dofile = $CmdLine[1]
; Delays
; Pause after copying of Stata commands to clipboard
$clippause = IniRead($ini, "Delays", "clippause", "100")
; Pause between window-related operations
$winpause = IniRead($ini, "Delays", "winpause", "200")
; Pause between keystrokes sent to Stata
$keypause = IniRead($ini, "Delays", "keypause", "1")
; Set SendKeyDelay and WinWaitDelay to speed up or slow down script
Opt("WinWaitDelay", $winpause)
Opt("SendKeyDelay", $keypause)
; If more than one Stata window is open, the window
; that was most recently active will be matched
Opt("WinTitleMatchMode", 2)
; Check if Stata is already open, start Stata if not
If WinExists($statawin) Then
WinActivate($statawin)
WinWaitActive($statawin)
; Activate Stata Command Window and select text (if any)
Send("^4")
Send("^a")
; Run saved do-file
; Double quotes around $dofile needed in case path contains blanks
ClipPut("do " & '"' & $dofile & '"')
; Pause avoids problem with clipboard, may be AutoIt or Windows bug
Sleep($clippause)
Send("^v" & "{Enter}")
Else
Run($statapath)
WinWaitActive($statawin)
; Activate Stata Command Window
Send("^4")
; Run saved do-file
; Double quotes around $dofile needed in case path contains blanks
ClipPut("do " & '"' & $dofile & '"')
; Pause avoids problem with clipboard, may be AutoIt or Windows bug
Sleep($clippause)
Send("^v" & "{Enter}")
EndIf
; End of script
</code></pre>
<p>在我的vimrc中有以下内容</p>
^{pr2}$
<p>这真的很实用,实际上也是我仍然坚持用窗户的唯一原因。我该怎么为Ubuntu买这样的东西呢?我是linux新手,除了统计之外,我对编程不太了解。非常感谢任何帮助。
(请不要建议emacs,emacs对stata的支持是错误的,尽管它与R的集成要好得多,但我现在还是想继续使用Vim。)</p>
<p>关于一个可能相关的主题:我正在考虑学习Python,因为我可能要处理数据和进行更长时间的实证分析,我认为它可能对某些任务有用,例如解决此类问题或解析网站上的数据。这是推荐的,还是我应该看另一种语言(或者完全忘记这个想法)?在</p>