2015-11-09 9 views
1

Мне нужна помощь в настройке удаленной системы сборки.Настройка удаленной системы Sublime Text build

Система сборки У меня есть под вызовами python на удаленном сервере, но проблема - путь к файлу.

У меня есть удаленный сервер, сопоставленный с моим W: дисководом, поэтому, когда я вызываю систему сборки, она выполняется.

python W:\path\to\script.py 

Необходимо выполнить

python /home/me/path/to/script.py instead. 

Что я хочу сделать, это заменить "\" для "/" и "W:" за "/ главная/мне /"

{ 
"shell_cmd": "python -u \"$file\"", 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
"selector": "source.python", 
"variants": 
[ 
    { 
     "name": "Remote Python", 
     "shell_cmd": "C:/Users/me/Documents/Common/Putty/plink -v -l myName -pw myPass 192.168.0.10 python \"${file}\"", 
    } 
] 

}

Я пробовал комбинации Build System Variables, но не повезло.

У меня также жестко закодирована часть «/ home/me», но мне по-прежнему нужен доступ к другим папкам, т. Е. «Путь/в /».

Я считаю, что ответ будет включать в себя использование «СЭД», но я не могу заставить его работать ...

ответ

1

Вы можете использовать PCRE regex-substitutions и format strings в системе сборки переменных. Таким образом, вместо

\"${file}\" 

в вашей команде plink, используйте следующее:

\"${file/w:/\/home\/me/i}\" 

Sublime автоматически изменяет путь разделители из \ в /, так что мы не должны беспокоиться об этом. Все, что нам нужно сделать, это найти w: и заменить его на /home/me (символы / экранированы, так как / также используется для разделения различных частей регулярного выражения). i в конце является флагом без учета регистра, поэтому он будет работать как с w:, так и с W:.

У меня нет доступа к окну Windows на данный момент, чтобы проверить это, но он должен работать нормально.

+0

Да! Однако я не соглашаюсь (полностью), что разграничители маршрутов автоматически меняются. Использование вашего ответа sublime вызывает «pathtoscript.py» Другими словами, разделители путей и «W:» отбрасываются. Я сделал несколько дополнительных экранов и получил \ "$ {файл/w:/\\\\ home \\\\ me/i} \", который вызывает homemepathtoscript.py, но все еще не имеет разделителя путей. – preezzzy