VSCode行号仅在编辑器主区域显示,与代码运行无关;常见失效原因包括配置值非法(须为"on"/"off"/"relative"/"interval"字符串)、工作区设置覆盖及UI扩展冲突。

行号不是“运行代码”时才显示的——它只在编辑器主区域生效,跟代码是否运行、用什么方式运行完全无关。 你看到终端、调试控制台、输出面板里没行号,不是设置错了,是 VSCode 本来就不在那里渲染行号。
为什么改了 settings.json 还不显示行号
最常见三个原因:
-
editor.lineNumbers值写成了true、1或没加引号(比如写成on而非"on")——VSCode 只认"on"、"off"、"relative"、"interval"这四个字符串,错一个就静默忽略 - 工作区设置(
.vscode/settings.json)覆盖了用户设置,右下角若显示Workspace,点进去搜editor.lineNumbers就能看到被谁设成了"off" - 某些 UI 类扩展(如旧版 Bracket Pair Colorizer、部分主题变体)会强制重置该配置,禁用后重启 VSCode 再试
editor.lineNumbers 的四种取值怎么选
别凭感觉切,按真实使用场景来:
-
"on":适合大多数日常开发,Git blame、报错定位、Code Review 时一眼看清绝对位置 -
"relative":Vim 模式用户或重度键盘跳转者首选,光标所在行为0,5j就是往下 5 行,但注意折叠代码块后下方所有行的相对值会重算(不是 bug) -
"interval":仅部分主题支持,且间隔不统一(有的每 10 行,有的只标 1/50/100),实际价值很低,纯日志查看可考虑 -
"off":极少数全屏写文档或演示时临时关闭,不建议长期启用
别被“相对+绝对双行号”误导
网上有些教程说可以同时开 editor.lineNumbers: "on" 和 editor.relativeLineNumbers: true 来叠加显示——这是过时信息。VSCode 当前版本(截至 2026 年 4 月)只支持一种模式生效:editor.relativeLineNumbers 是个布尔开关,但它只在 editor.lineNumbers 设为 "on" 时才有意义,且开启后显示的是「绝对行号 + 当前行左侧小字号相对数」,前提是当前主题支持双渲染(如默认 Dark+ 支持,GitHub Dark 需 v2.0+)。更常见的做法是直接设 "relative",干净利落。
真正容易被忽略的点有两个:一是工作区设置优先级永远高于用户设置,协作项目里别人提交的 .vscode/settings.json 可能悄悄关掉你的行号;二是 "relative" 模式下,折叠展开动作会让数字跳变,这不是故障,但如果你依赖行号做精确跳转,得养成先展开相关区域的习惯。


















