Sublime Text 的 Ctrl+B 默认不运行选中代码,仅执行整个文件;SublimeREPL 可发送选中代码至交互式解释器但需先启动,且不支持 input();Terminus 配合自定义 Build System 才能真正实现选中运行,需注意 $selected_text 变量、多行语法及编码问题。

Ctrl+B 默认不运行选中代码,只运行整个文件
Sublime Text 的 Ctrl+B(Windows/Linux)或 Cmd+B(macOS)本质是调用 Build System,而默认所有内置构建系统都只认 $file(当前文件路径),根本不读取选区内容。你选中 3 行 Python 代码按 Ctrl+B 没反应,不是配置问题,是设计如此。
SublimeREPL 是最接近“一键运行选中代码”的方案
它在编辑器内启动一个交互式解释器(如 Python REPL),支持把选中文本发过去执行。但要注意:
- 必须先手动打开 REPL:按
Ctrl+Shift+P→ 输入SublimeREPL: Python(或其他语言)→ 回车 - 之后选中代码,按
Ctrl+Shift+H(默认快捷键,可查 Key Bindings)发送到 REPL - 不支持带
input()的交互式输入——REPL 接收后直接执行,不会停住等你输 - 多行代码必须语法完整(比如不能只选
if x:而不选缩进块),否则报IndentationError或SyntaxError
示例:选中
print("hello")
x = 2 + 3
print(x)
再按 Ctrl+Shift+H,会在右侧 REPL 面板输出结果。
用 Terminus + 自定义 Build System 实现真·选中运行
比 SublimeREPL 更可靠,尤其适合含输入、需环境隔离的场景:
- 安装
Terminus插件(通过 Package Control) - 创建新 Build System:
Tools → Build System → New Build System… - 替换为以下内容(以 Python 为例):
{ "target": "terminus_exec", "cancel": "terminus_cancel_build", "cmd": ["python", "-c", "$selected_text"], "selector": "source.python", "windows": { "cmd": ["python", "-c", "$selected_text"] } } - 保存为
PythonSelected.sublime-build - 选中代码 →
Ctrl+Shift+B→ 选择该构建系统
注意点:
-
$selected_text是 Terminus 提供的变量,原生 Build System 不识别 -
-c参数要求代码写成单行表达式或语句;多行需用分号连接,或改用python -i -c "exec('''...''')"(复杂且易出错) - 中文字符需确保终端编码为 UTF-8(Windows 下可能需加
chcp 65001 &&前缀)
容易被忽略的关键细节
Ctrl+L 选中的是逻辑行(不含换行符),但 Terminus 构建系统里 $selected_text 会保留换行;如果选区末尾有空行或注释,可能引发语法错误。真正安全的做法是:先用 Ctrl+Shift+J 选缩进块(确保函数/循环结构完整),再运行;若光标在 Plain Text 模式下,Ctrl+Shift+J 会失效——务必右下角确认语言模式为 Python、JavaScript 等,而不是 Plain text。


















