在Sublime Text 3 - python中只构建一行

时间:2018-06-17 20:20:50

标签: python sublimetext3

我对编程非常陌生,而且我使用“以艰难的方式学习Python”,我发现它非常有用。

本书中的一个问题是只运行一行,我觉得在Sublime Text 3中无法做到这一点。我试过google,但我只能找到Sublime Text 2和一些我无法解决的问题做工作。

我不只是使用Sublime Text 3附带的默认构建,有没有办法在Sublime中标记.py文件的某些行并构建那些行?当我按“cmd + b”时,而不是整个文件?

任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:4)

这是一个小插件来完成你所要求的:

class RunSelectionsWithPythonCommand(sublime_plugin.TextCommand):

    def run(self, edit, **kwargs):
        import re
        import tempfile

        chunks = []
        for region in self.view.sel():
            chunks.append(self.view.substr(region))

        if self.view.file_name():
            working_dir = os.path.dirname(self.view.file_name())
        else:
            working_dir = os.getcwd()

        chunks = "\n".join(chunks)
        lines = filter(
            None, [l for l in chunks.split("\n") if l.strip() != ""]
        )
        source_code = "\n".join(lines)

        with tempfile.NamedTemporaryFile(suffix='.py', mode='w', delete=False) as f:
            f.write(source_code)
            window = sublime.active_window()
            window.run_command("exec", {
                "shell_cmd": "python {}".format(f.name),
                "working_dir": working_dir,
                "quiet": False
            })

    def is_enabled(self):
        return len(self.view.sel()) > 0

这是一个小小的演示:

Output

因为你正在努力学习python,所以我将把它作为练习来解决如何安装&使用上面的插件...一个提示,确保SublimeText进程可以使用python。