代码之家  ›  专栏  ›  技术社区  ›  Jim

有没有办法在.vimrc中的变量上使用子字符串函数?

  •  2
  • Jim  · 技术社区  · 15 年前

    我把gvim和portable python存储在多台机器的Dropbox文件夹中。Dropbox文件夹在每台计算机上的位置不同。但是,我希望能够设置.vimrc,以便它自动引用正确的python文件夹,不管它在哪台计算机上。

    例如,我在c:\dropbox\gimportable中有gvim。

    在my.vimrc中,我有以下内容:

    let s:pp = 'C:\DropBox\PortablePython_1.1_py2.5.4'  " netbook  
    if (has('win32') || has('win64')) && isdirectory(s:pp) 
        let $PATH .= ';' . s:pp 
    endif 
    

    有没有一种方法可以做到以下几点?

    let s:pp = $VIMRUNTIME.substring(0, regex.match(/gVimPortable/))."\PortablePython_1.1_py2.5.4" 
    if (has('win32') || has('win64')) && isdirectory(s:pp) 
        let $PATH .= ';' . s:pp 
    endif 
    

    基本上,我不想硬编码我的python运行时所在的文件夹。相对于GVIM应用程序,它将始终位于同一位置。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Jim    15 年前

    我可以使用strpart和strlen函数来完成我需要的工作。

    let s:pp = strpart($VIMRUNTIME, 0, strlen($VIMRUNTIME)-strridx($VIMRUNTIME, "DropBox")+1) . "\\Apps\\PortablePython_1.1_py2.5.4\\App"
    if (has('win32') || has('win64')) && isdirectory(s:pp) 
        let $PATH .= ';' . s:pp 
    endif 
    

    上面的脚本将自动将python添加到与gvim可执行文件相关的path环境变量中。