输出面板不换行可加"word_wrap": true和"quiet": false;中文乱码需用"cmd"数组、"encoding": "utf-8"、python绝对路径加-u;跳转需正确配置"file_regex";语法高亮由"syntax"字段指定路径控制。

输出面板不换行、文字挤成一团怎么办
默认构建输出会横向滚动,长日志根本没法看。关键不是改 Sublime 全局设置,而是让构建系统自己控制输出行为。
在 .sublime-build 文件里加这两项就能解决:
-
"word_wrap": true:强制开启自动换行 -
"quiet": false:显示完整命令和启动信息,方便确认是否真在跑你的配置(静默模式下只显示“Finished”,出错也看不到)
注意:"word_wrap" 必须写在顶层 JSON 对象里,不是嵌套在 env 或 variants 里;"quiet": true 是很多教程默认写的,但调试阶段务必设为 false。
中文输出全是问号或方块?别碰 chcp 和 PYTHONIOENCODING
乱码根源是 Sublime 解码子进程 stdout 字节流时用错了编码,不是终端或 Python 自身的问题。
必须同时满足这三点才有效:
- 用
"cmd"数组写法("shell_cmd"模式下"encoding"字段完全被忽略) -
"encoding": "utf-8"(大小写、短横线全写对,"UTF-8"或"utf8"都无效) - Python 解释器路径写绝对路径,并带
-u参数,例如:["D:/Python312/python.exe", "-u", "$file"]
验证是否生效:写个 test.py,内容只有一行 import sys; print(sys.stdout.encoding)。运行后输出必须是 utf-8,否则说明构建系统没真正加载或配置有拼写错误。
想让错误信息点一下就跳转到对应行?file_regex 得写准
双击报错行能跳转,靠的是 "file_regex" 正则匹配输出中的文件名和行号。Python 默认错误格式是 File "xxx.py", line 123,但不同解释器或工具输出略有差异。
推荐用这个兼容性更强的写法:
"file_regex": "^[ ]*File \"([^\"]*)\", line ([0-9]*)"
常见失效原因:
- 正则里用了单引号或没转义双引号,JSON 解析失败导致整个构建系统静默不加载
- 匹配不到——比如你用的是
pytest,它报错格式是test_foo.py:15:,就得换正则:"file_regex": "^([^:]*):([0-9]*):" - 路径含空格或特殊字符时,正则捕获组没用括号包住,Sublime 拿不到完整路径
输出面板语法高亮怎么关/开?syntax 字段只认路径
Sublime 不会自动识别输出内容类型,所以默认是纯文本。你想让 JSON 输出带高亮,或 Python traceback 显示颜色,得手动指定语法文件路径。
例如让输出按 Python 错误格式高亮:
"syntax": "Packages/Python/Python.sublime-syntax"
注意:
- 路径必须以
Packages/开头,不能用相对路径或本地文件系统路径 - macOS/Linux 和 Windows 路径写法一致,不用转义斜杠
- 不确定语法名?打开一个 .py 文件 → 右键 → Open all with current extension as… → 看菜单里显示的名称,去掉空格和括号,转成斜杠分隔格式即可
如果只是想彻底关闭高亮,设 "syntax": "Packages/Text/Plain text.tmLanguage",这是最轻量的纯文本语法。











