Есть ли способ использовать функцию подстроки для переменных в .vimrc? - PullRequest
2 голосов
/ 05 июня 2010

У меня gVim и переносной python хранятся в папке DropBox на нескольких машинах. Расположение папки DropBox отличается на каждом компьютере. Однако я хотел бы иметь возможность настроить .vimrc так, чтобы он автоматически ссылался на нужную папку python, независимо от того, на каком компьютере он находится.

Например, у меня есть gVim в C: \ DropBox \ gVimPortable.

В моем .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 голосов
/ 07 июня 2010

Я смог сделать то, что мне было нужно, используя функции 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 в переменную среды PATH относительно исполняемого файла gVIM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...