You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Sublime Text运行上次使用的构建命令?

在Sublime Text中任意标签页运行main.py的几种方案

方案1:用默认快捷键重复上次构建

  • 先切换到main.py,按Ctrl+B(Windows/Linux)或Cmd+B(Mac)运行一次
  • 之后不管当前在哪个标签页(比如module.py),按Ctrl+Shift+B(Windows/Linux)或Cmd+Shift+B(Mac)就能直接重复上次的构建命令(也就是运行main.py)
  • 如果第一次按Ctrl+Shift+B弹出构建选择框,直接选之前运行main.py的选项,后续再按就会自动执行上次选中的命令
  • 可选优化:打开用户设置(Preferences -> Settings),添加"repeat_last_build": true,强化自动复用最近构建命令的逻辑

方案2:自定义构建系统(永久指定运行main.py)

这个方法会让Ctrl+B不管当前打开哪个文件,都直接运行main.py:

  1. 点击顶部菜单 Tools -> Build System -> New Build System
  2. 替换默认内容为以下配置(根据你的Python版本调整python为python3或实际命令):
{
    "cmd": ["python3", "$file_path/main.py"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "working_dir": "$file_path",
    "name": "Python - Run main.py"
}
  1. 保存文件到默认的Packages/User目录,命名为PythonMain.sublime-build
  2. 回到Sublime,点击Tools -> Build System,选中刚才创建的Python - Run main.py
  3. 现在不管你在module.py还是其他同目录文件,按Ctrl+B都会直接运行main.py

方案3:自定义插件(灵活扩展)

如果需要更个性化的逻辑(比如指定不同目录的main.py),可以写个极简插件:

  1. 点击Tools -> Developer -> New Plugin
  2. 替换默认代码为:
import sublime
import sublime_plugin

class RunMainPyCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        window = self.view.window()
        # 优先取项目根目录,没有的话取当前文件所在目录
        base_path = window.folders()[0] if window.folders() else self.view.file_name().rsplit('/', 1)[0]
        main_py = f"{base_path}/main.py"
        # 执行构建
        window.run_command('exec', {
            'cmd': ['python3', main_py],
            'file_regex': "^[ ]*File \"(...*?)\", line ([0-9]*)",
            'working_dir': base_path
        })
  1. 保存到Packages/User目录,命名为RunMainPy.py
  2. 绑定快捷键:打开Preferences -> Key Bindings,在右侧用户配置里添加:
{
    "keys": ["ctrl+alt+b"], // 可自定义快捷键
    "command": "run_main_py"
}
  1. 现在按你设置的快捷键,就能随时运行main.py,不受当前标签页影响

内容的提问来源于stack exchange,提问作者iMath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:25:16