在.vimrc中对变量使用子串函数的方法?
我在几个电脑上都有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 个回答
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环境变量中。