行号渲染卡顿是因为Sublime为每行生成独立DOM节点并监听交互,百万行触发大量重绘;已打开文件可速用View: Toggle Line Numbers和Toggle Gutter关闭,推荐通过syntax-specific设置对.log等后缀自动禁用line_numbers、gutter和highlight_line。

为什么行号渲染会卡住大文件
行号不是“显示数字”那么简单——Sublime 为每行生成独立 DOM 节点、监听滚动/悬停、配合 gutter(行号区)做高亮联动。对百万行日志,这直接触发数百万次 DOM 操作和重绘,CPU 占用飙到 100%,光标一动就卡顿。它和语法高亮一样,是“默认开启但大文件必须关”的功能。
已打开文件卡死时怎么立刻关掉行号
别等加载完,也别重启,命令面板三秒解决:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS) - 输入
View: Toggle Line Numbers回车 → 行号区立即消失 - 顺手再输
View: Toggle Gutter关掉整个 gutter 区(含断点图标、修改标记等)
注意:Toggle Line Numbers 只关数字,Toggle Gutter 才真正卸载 gutter 渲染引擎——后者对插件(如 GitGutter)残留的图标更彻底。
如何让 .log/.json 等后缀自动不显示行号
全局关 line_numbers 会害你写 Python 时找不到第 42 行 bug。正确做法是按语法类型精准关闭:
- 先打开一个
app.log,确认右下角显示语法为Log或Plain Text - 执行
Preferences → Settings – Syntax Specific,生成对应语法配置文件(如Log.sublime-settings) - 在里面写入:
{ "line_numbers": false, "gutter": false, "highlight_line": false }
这样下次双击任何 .log 文件,从第一帧开始就不建行号节点,加载速度接近 less。语法名不确定?控制台运行 view.settings().get('syntax') 查真实值。
large_file_threshold 和 line_numbers 的关系容易被忽略
large_file_threshold(单位字节)只影响「是否弹警告」,不控制行号开关;即使设成 262144000(250MB),已打开的 150MB 文件仍会渲染行号——除非你手动关或配 syntax-specific。真正的性能拐点不在阈值数字,而在是否让 Sublime 从加载第一行起就放弃“这是代码”的预设。行号只是表象,背后是整套 gutter 渲染链要不要启动。











