sublime text 原生不支持相对行号,且无可用插件实现该功能;替代方案为使用 ctrl+g/cmd+g 输入±偏移跳转,或结合状态栏行列显示心算差值。

Sublime Text 不支持相对行号
Sublime Text 原生不提供 relative_line_numbers 或类似 VSCode 的 "editor.lineNumbers": "relative" 功能。这不是设置没找对,而是根本不存在——所有声称“开启相对行号”的教程,要么混淆了其他编辑器,要么依赖已失效/未维护的旧插件(如 RelativeNumber,在 Sublime Text 4+ 中无法正常工作)。
为什么你搜到的“相对行号插件”大概率无效
常见错误现象:装了插件后行号消失、状态栏报错 ImportError: No module named 'sublime_plugin'、或光标移动时行号不更新。
- Sublime Text 4+ 彻底重构了 Python API,多数老插件未适配,调用
view.rowcol()或监听on_selection_modified时会崩溃或静默失败 - 即使插件能运行,它通常靠“重绘 gutter 文本”模拟相对行号,但 Sublime 不开放 gutter 内容自定义接口,结果就是数字错位、闪烁、或只在部分语法下生效
- 官方从未将相对行号列入 roadmap;社区讨论中明确表示“gutter 渲染由核心控制,插件无权注入动态内容”
替代方案:用原生功能组合逼近效果
虽然不能显示“当前行是 127,上面第 3 行标为 -3”,但你可以快速定位相对位置:
- 按
Ctrl+G(Windows/Linux)或Cmd+G(macOS),输入+5回车 → 光标下移 5 行;输入-8→ 上移 8 行 - 输入
127:5可直接跳到第 127 行第 5 列,适合从当前行算偏移后手动换算 - 开启
line_numbers+ 状态栏行列显示(View → Status Bar),抬头看状态栏就能知道当前行号,心算差值比盯着 gutter 更快
别白费力气折腾主题或 CSS
有人试图用 Adaptive.sublime-theme 自定义 gutter 区域,加 CSS 规则覆盖行号文本——这完全无效。Sublime 的 gutter 行号是原生绘制的 bitmap,不是可被 CSS 选择器(如 .gutter-line-number)控制的 DOM 元素。改来改去只会让整个 gutter 消失,或者触发渲染异常。
真正卡住的人,往往是在插件市场翻了三页、试了五个“Relative Number”名字的包之后,才发现问题不在自己,而在 Sublime 的设计边界上。











