我在 sublime 中制作了一个小脚本,它将从用户计算机上的 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)
我不确定 usingsubprocess.Popen
是否是正确的方法,因为我是 Python 新手。
所以重新迭代;我希望它打开终端,运行命令,并让终端保持打开状态,直到用户按下 ENTER 或其他键。如果这很重要,我正在运行 Windows 7 和 Python 3。