VSCode代码行号不显示,95%是editor.lineNumbers被设为"off"或被工作区配置覆盖;最快解决是Ctrl+,搜索line numbers并设为on/relative/off/interval,修改后立即生效无需重启。

VSCode 代码行号不显示,95% 是 editor.lineNumbers 被设成了 "off",或是被工作区配置(.vscode/settings.json)悄悄覆盖了。
怎么立刻确认并打开行号
不用猜、不用重启,两步定位问题:
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置,搜索line numbers,看Editor: Line Numbers当前值是不是off - 右下角状态栏如果显示类似
32:5的位置信息,说明行号逻辑是通的;如果不显示,大概率就是关了 - 临时验证:右键编辑器左侧空白区域 → 点击
Toggle Line Numbers,若立刻出现,证明不是主题/扩展故障,而是配置问题
为什么改了 settings.json 还不生效
常见失效不是语法错,而是优先级和值类型双重踩坑:
-
editor.lineNumbers必须是字符串:"on"、"off"、"relative"、"interval"—— 写成true、1、on(没引号)都会被静默忽略 - 工作区配置(
.vscode/settings.json)永远高于用户设置;右下角若显示Workspace,点进去搜editor.lineNumbers就能看到它被谁设成了"off" - 字段名拼错很隐蔽:比如写成
editor.lineNumber(少个s)或line_numbers(VSCode 不支持下划线),配置直接不加载
"relative" 模式下为什么“像没行号”
不是失效,是显示逻辑变了——当前光标行为 0,上下行分别是 -1、+1、-2……容易误判为“空”。真实影响有:
- 折叠代码块后,下方所有行的相对值会重算(比如展开前是
+5,展开后可能变成+12),这不是 bug,但依赖行号跳转时得先展开目标区域 - 如果你同时开了
"editor.lineNumbers": "on"和"editor.relativeLineNumbers": true,双行号是否可见取决于主题:Dark+ 默认支持,GitHub Dark 需 v2.0+,One Dark Pro 等多数第三方主题不渲染相对数 -
"interval"模式实际价值很低——部分主题只标1、50、100,且间隔不统一,调试时基本没法用
真正容易被忽略的两个点
协作项目里别人提交的 .vscode/settings.json 可能默认关掉行号;"relative" 模式下,跳转到文件末尾时相对数可能是 +842,数字大到失去参照意义——这时候切回 "on" 更实际。


















