Sublime Text 行号被截断需修改主题文件:安装PackageResourceViewer,打开Default.sublime-theme,在所有"class": "gutter"规则中添加"min_width": 48(或其他合适值),保存后热重载生效。

Sublime Text 行号边距太窄,数字被截断怎么办
行号显示不全(比如 100 只显示成 10 或直接被裁掉),根本原因是 Sublime 默认的行号区域宽度是固定且偏小的,不随最大行数自动伸缩。它靠的是 line_numbers 和底层渲染逻辑共同决定的预留空间,不是 CSS 那种流式布局。
- 修改
Preferences → Settings – User,添加或调整"line_numbers"为true(确保开启) - 关键参数是
"margin"—— 它控制行号区左侧留白,但注意:这个值只影响「行号数字」和编辑区之间的间距,不扩大行号区本身宽度 - 真正起作用的是
"line_number gutter"的隐式宽度,Sublime 不提供直接配置项;唯一可靠方式是通过自定义主题文件调整gutter区域最小宽度
用 PackageResourceViewer 修改 Default.sublime-theme 实现精准控制
Sublime 的行号区(gutter)宽度由主题文件中的 gutter 规则控制,Default 主题里默认没设最小宽度,导致大行数时挤压。必须手动补上。
- 先装
PackageResourceViewer插件(通过 Package Control 安装) - 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入PackageResourceViewer: Open Resource,选Theme - Default→Default.sublime-theme - 在数组里找含
"class": "gutter"的对象,在其"content_margin"后加一行:"min_width": 48(数值按需调,48足够显示 5 位数行号) - 保存后无需重启,主题会热重载;如果没生效,检查是否误加在了错误的
gutter块里(页面顶部/底部也有类似 class)
为什么改 font_size 或 font_face 有时反而让行号更挤
行号区使用的是 editor 的字体设置,但它的渲染宽度计算和主编辑区不完全同步。尤其当用了等宽但字形偏宽的字体(如 "Fira Code"、"JetBrains Mono"),或 font_size 设为奇数(如 13)时,Sublime 对 gutter 宽度的估算容易偏差。
- 避免单独调大
font_size来“撑开”行号区——这只会让文字变糊,gutter 宽度不变 - 如果必须换字体,优先选字符宽度更紧凑的(如
"Source Code Pro"比"Cascadia Code"在小字号下更省空间) - Windows 上启用了 ClearType 或 macOS 开了字体平滑,也可能造成宽度计算误差,可临时关掉对比效果
改完 theme 文件后行号仍错位或背景色异常
这是主题规则冲突的典型表现。Default.sublime-theme 里有多个 gutter 相关 rule,比如 "gutter_addition"、"gutter_subtraction"、"gutter_modified",它们都继承自基础 gutter,但部分 rule 显式设置了 "width" 或 "content_margin",会覆盖你加的 "min_width"。
- 搜索整个
Default.sublime-theme,把所有带"class": "gutter"的 rule 都检查一遍 - 确保每个相关 rule 都显式包含
"min_width": 48,而不仅是第一个 - 如果用了第三方主题(如
ayu、Material Theme),别改 Default,而是打开对应主题的.sublime-theme文件修改
行号边距问题本质是主题层的渲染约束,不是设置开关能解决的。最容易被忽略的是:改了 theme 之后没清 Sublime 缓存(rm -rf ~/Library/Caches/Sublime\ Text\ 3/Cache/ 或对应路径),或者改错了 theme 文件层级。真要一劳永逸,建议 fork 一个轻量主题单独维护 gutter 规则。










