ユーザーのコンピューターにあるjsonファイルからコマンドを抽出し、ターミナルを開いて設定/コマンドを実行する小さなスクリプトを崇高に作成しました。これは機能しますが、実際には端末が開かない点が異なります。コマンドを実行するだけで(私の場合はgccを実行して単純なCファイルをコンパイルするように動作します)、端末を開かずにSTDOUTにパイプします。
import json
import subprocess
import sublime_plugin
class CompilerCommand(sublime_plugin.TextCommand):
def get_dir(self, fullpath):
path = fullpath.split("\\")
path.pop()
path = "\\".join(path)
return path
def get_settings(self, path):
_settings_path = path + "\\compiler_settings.json"
return json.loads(open(_settings_path).read())
def run(self, edit):
_path = self.get_dir(self.view.file_name())
_settings = self.get_settings(_path)
_driver = _path.split("\\")[0]
_command = _driver + " && cd " + _path + " && " + _settings["compile"] + " && " + _settings["exec"]
proc = subprocess.Popen(_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
私はsubprocess.Popen
Pythonが初めてなので、使用するのが正しい方法であるかどうかはわかりません。
繰り返しになりますが、ターミナルを開いてコマンドを実行し、ユーザーが ENTER などを押すまでターミナルを開いたままにしておきます。問題があれば、Windows 7 と Python 3 を実行しています。