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

时间:2010-06-05 02:41:03

标签: python substring vim

我将gVim和便携式python存储在多台机器上的DropBox文件夹中。 DropBox文件夹的位置在每台计算机上是不同的。但是,我希望能够设置.vimrc,以便它自动引用正确的python文件夹,无论它在什么计算机上。

例如,我在C:\ DropBox \ gVimPortable中有gVim。

在我的.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 个答案:

答案 0 :(得分:2)

我能够使用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环境变量中。