Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Vim中运行Stata do文件_Vim_Stata_Vim Plugin - Fatal编程技术网

如何在Vim中运行Stata do文件

如何在Vim中运行Stata do文件,vim,stata,vim-plugin,Vim,Stata,Vim Plugin,我正在寻找一种从Vim运行Stata的.do文件的方法 以下是我到目前为止已签出的内容: 在此链接中:,建议使用Vim功能 rundo.exe文件可以从以下位置下载: 但是,在按照建议更改.ini文件之后,我仍然无法运行以下Vim函数,该函数在_vimrc中定义: fun! RunDoLines() let selectedLines = getbufline('%', line("'<"), line("'>")) if col("'>") < str

我正在寻找一种从Vim运行Stata的.do文件的方法

以下是我到目前为止已签出的内容:

  • 在此链接中:,建议使用Vim功能
  • rundo.exe文件可以从以下位置下载:
  • 但是,在按照建议更改.ini文件之后,我仍然无法运行以下Vim函数,该函数在_vimrc中定义:

    fun! RunDoLines()
        let selectedLines = getbufline('%', line("'<"), line("'>"))
    
        if col("'>") < strlen(getline(line("'>")))
            let selectedLines[-1] = strpart(selectedLines[-1], 0, col("'>"))
        endif
        if col("'<") != 1
            let selectedLines[0] = strpart(selectedLines[0], col("'<")-1)
        endif
    
        let temp = tempname() . ".do"
        call writefile(selectedLines, temp)
    
        " *** CHANGE PATH AND NAME TO REFLECT YOUR SETUP. USE \\ INSTEAD OF \ ***
        exec "!start C:\\Program Files\\Scripts\\rundo.exe " . temp
    
        " Delete the temp file after Vim closes
        au VimLeave * exe "!del -y" temp
    endfun
    

    问题:如果.do文件包含错误并且Stata对此进行投诉,则按住
    Ctrl
    键(或
    Alt
    键)。这使得按
    Tab
    键就像按
    Alt-Tab
    键一样移动窗口。仅在按下
    Ctrl
    一次后才能释放钥匙锁

    老实说,是我对函数
    RunDoLines()
    的滥用造成了这个问题。该功能仍然与Windows 8.1上的Vim兼容

    要调用此函数,请执行以下操作:

  • vnoremap
    添加到
    映射中
  • 目视选择(多个)行
  • F9
  • 如果只将光标放在一行上,它将不起作用。必须目视选择该行。该函数需要填写一个“选定行”,就我而言,应目视选择该行。通过拖动鼠标在插入模式下选择一行代码不会生成函数所需的参数


    保持正常模式,然后按
    V
    运行代码块

    请澄清“无法运行”的含义。有任何错误消息吗?我注意到的一点是.ini引用了Stata 13,而当前版本是13.1,如果您已经更新了它的话。
    fun! RunIt()
        wa
        !start /min "C:\Users\Linfeng\rundo.exe" "%:p"
    endfun